diff options
author | Ahmed ElArabawy <arabawy@google.com> | 2020-05-09 22:46:10 -0700 |
---|---|---|
committer | Ahmed ElArabawy <arabawy@google.com> | 2020-05-12 09:33:25 -0700 |
commit | 8863a835cb26ff3b89fac176c6f3a8f72782800c (patch) | |
tree | aec3e4198e28debb1cb4965de0a30b4e2476512a | |
parent | f7ccda05642b55700d67a288462bada488fc7f5e (diff) |
Wifi: Add constant and utility method for bands
This commit adds a constant WIFI_BAND_ALL to refer to bit mask
for all bands.
It also adds a method to check on if previous scan covers all
supported bands.
Bug: 156053158
Test: atest android.net.wifi
Change-Id: I426dd3940b7efd67eaf6e12f862a1e3f0ebc177a
-rw-r--r-- | wifi/java/android/net/wifi/WifiScanner.java | 20 | ||||
-rw-r--r-- | wifi/tests/src/android/net/wifi/WifiScannerTest.java | 18 |
2 files changed, 36 insertions, 2 deletions
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java index d299cdc6cad8..94771ac4ad78 100644 --- a/wifi/java/android/net/wifi/WifiScanner.java +++ b/wifi/java/android/net/wifi/WifiScanner.java @@ -131,10 +131,10 @@ public class WifiScanner { public @interface WifiBand {} /** - * Max band value + * All bands * @hide */ - public static final int WIFI_BAND_MAX = 0x10; + public static final int WIFI_BAND_ALL = (1 << WIFI_BAND_COUNT) - 1; /** Minimum supported scanning period */ public static final int MIN_SCAN_PERIOD_MS = 1000; @@ -168,6 +168,22 @@ public class WifiScanner { } /** + * Test if scan is a full scan. i.e. scanning all available bands. + * For backward compatibility, since some apps don't include 6GHz in their requests yet, + * lacking 6GHz band does not cause the result to be false. + * + * @param bandScanned bands that are fully scanned + * @param excludeDfs when true, DFS band is excluded from the check + * @return true if all bands are scanned, false otherwise + * + * @hide + */ + public static boolean isFullBandScan(@WifiBand int bandScanned, boolean excludeDfs) { + return (bandScanned | WIFI_BAND_6_GHZ | (excludeDfs ? WIFI_BAND_5_GHZ_DFS_ONLY : 0)) + == WIFI_BAND_ALL; + } + + /** * Returns a list of all the possible channels for the given band(s). * * @param band one of the WifiScanner#WIFI_BAND_* constants, e.g. {@link #WIFI_BAND_24_GHZ} diff --git a/wifi/tests/src/android/net/wifi/WifiScannerTest.java b/wifi/tests/src/android/net/wifi/WifiScannerTest.java index 4881200aa2b7..b68616f560f3 100644 --- a/wifi/tests/src/android/net/wifi/WifiScannerTest.java +++ b/wifi/tests/src/android/net/wifi/WifiScannerTest.java @@ -613,4 +613,22 @@ public class WifiScannerTest { verify(mExecutor, never()).execute(any()); verify(mScanListener, never()).onResults(mScanData); } + + /** + * Tests isFullBandScan() method with and without DFS check + */ + @Test + public void testIsFullBandScan() throws Exception { + assertFalse(WifiScanner.isFullBandScan(WifiScanner.WIFI_BAND_24_GHZ, true)); + assertFalse(WifiScanner.isFullBandScan(WifiScanner.WIFI_BAND_5_GHZ, true)); + assertFalse(WifiScanner.isFullBandScan(WifiScanner.WIFI_BAND_6_GHZ, true)); + assertFalse(WifiScanner.isFullBandScan( + WifiScanner.WIFI_BAND_6_GHZ | WifiScanner.WIFI_BAND_5_GHZ, true)); + assertTrue(WifiScanner.isFullBandScan( + WifiScanner.WIFI_BAND_24_GHZ | WifiScanner.WIFI_BAND_5_GHZ, true)); + assertFalse(WifiScanner.isFullBandScan( + WifiScanner.WIFI_BAND_24_GHZ | WifiScanner.WIFI_BAND_5_GHZ, false)); + assertTrue(WifiScanner.isFullBandScan(WifiScanner.WIFI_BAND_BOTH_WITH_DFS, true)); + assertTrue(WifiScanner.isFullBandScan(WifiScanner.WIFI_BAND_BOTH_WITH_DFS, false)); + } } |