diff options
author | Roshan Pius <rpius@google.com> | 2020-02-05 09:12:17 -0800 |
---|---|---|
committer | Roshan Pius <rpius@google.com> | 2020-02-05 11:18:41 -0800 |
commit | e836930a4d699b7044cef273290f63c7cd949045 (patch) | |
tree | ac3de05ea473af1a48616feeea7437a391e8159f | |
parent | 16a54ef163cbd1b6f98c809c3ead3de63620e877 (diff) |
WCM: Allow forceConnectivityScan when autojoin disabled
Bug: 141889280
Test: atest com.android.server.wifi
Change-Id: I1333bbbe871653debdd918ebc8858afe46d13d3f
-rw-r--r-- | service/java/com/android/server/wifi/WifiConnectivityManager.java | 18 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java | 21 |
2 files changed, 32 insertions, 7 deletions
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java index 0667793bb..c49b1b815 100644 --- a/service/java/com/android/server/wifi/WifiConnectivityManager.java +++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java @@ -190,7 +190,7 @@ public class WifiConnectivityManager { } // A periodic/PNO scan will be rescheduled up to MAX_SCAN_RESTART_ALLOWED times - // if the start scan command failed. An timer is used here to make it a deferred retry. + // if the start scan command failed. A timer is used here to make it a deferred retry. private final AlarmManager.OnAlarmListener mRestartScanListener = new AlarmManager.OnAlarmListener() { public void onAlarm() { @@ -975,11 +975,7 @@ public class WifiConnectivityManager { } // Start a single scan - private void startSingleScan(boolean isFullBandScan, WorkSource workSource) { - if (!mWifiEnabled || !mAutoJoinEnabled) { - return; - } - + private void startForcedSingleScan(boolean isFullBandScan, WorkSource workSource) { mPnoScanListener.resetLowRssiNetworkRetryDelay(); ScanSettings settings = new ScanSettings(); @@ -1009,6 +1005,13 @@ public class WifiConnectivityManager { mWifiMetrics.incrementConnectivityOneshotScanCount(); } + private void startSingleScan(boolean isFullBandScan, WorkSource workSource) { + if (!mWifiEnabled || !mAutoJoinEnabled) { + return; + } + startForcedSingleScan(isFullBandScan, workSource); + } + // Start a periodic scan when screen is on private void startPeriodicScan(boolean scanImmediately) { mPnoScanListener.resetLowRssiNetworkRetryDelay(); @@ -1418,10 +1421,11 @@ public class WifiConnectivityManager { * Handler for on-demand connectivity scan */ public void forceConnectivityScan(WorkSource workSource) { + if (!mWifiEnabled) return; localLog("forceConnectivityScan in request of " + workSource); mWaitForFullBandScanResults = true; - startSingleScan(true, workSource); + startForcedSingleScan(true, workSource); } /** diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java index 0ec4849eb..1678d67a8 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java @@ -2302,4 +2302,25 @@ public class WifiConnectivityManagerTest extends WifiBaseTest { mWifiConnectivityManager.setBluetoothConnected(false); verify(mWifiNS).setBluetoothConnected(false); } + + /** + * Verify that WifiChannelUtilization is updated + */ + @Test + public void verifyForceConnectivityScan() { + // Auto-join enabled + mWifiConnectivityManager.setAutoJoinEnabledExternal(true); + mWifiConnectivityManager.forceConnectivityScan(WIFI_WORK_SOURCE); + verify(mWifiScanner).startScan(any(), any(), any(), any()); + + // Auto-join disabled + mWifiConnectivityManager.setAutoJoinEnabledExternal(false); + mWifiConnectivityManager.forceConnectivityScan(WIFI_WORK_SOURCE); + verify(mWifiScanner, times(2)).startScan(any(), any(), any(), any()); + + // Wifi disabled, no new scans + mWifiConnectivityManager.setWifiEnabled(false); + mWifiConnectivityManager.forceConnectivityScan(WIFI_WORK_SOURCE); + verify(mWifiScanner, times(2)).startScan(any(), any(), any(), any()); + } } |