summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoshan Pius <rpius@google.com>2020-02-05 09:12:17 -0800
committerRoshan Pius <rpius@google.com>2020-02-05 11:18:41 -0800
commite836930a4d699b7044cef273290f63c7cd949045 (patch)
treeac3de05ea473af1a48616feeea7437a391e8159f
parent16a54ef163cbd1b6f98c809c3ead3de63620e877 (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.java18
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java21
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());
+ }
}