summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2020-02-18 18:16:52 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-02-18 18:16:52 +0000
commitbeb9fe4d1848ada5fe2de19b99af747404cc800a (patch)
tree06c83f31e4eeff0309e67369cc84af644ee7965c
parentbfa2abd3e7a00aac0dedbaa4860a214ab0b20877 (diff)
parentb044f125648b28398774397da23481614522bffc (diff)
Merge "Clear last user selection on wifi disable"
-rw-r--r--service/java/com/android/server/wifi/WifiConfigManager.java2
-rw-r--r--service/java/com/android/server/wifi/WifiConnectivityManager.java5
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSelector.java7
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java2
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java6
5 files changed, 20 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index 9bb43e8d7..6c32ff695 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -2162,7 +2162,7 @@ public class WifiConfigManager {
* Helper method to clear out the {@link #mNextNetworkId} user/app network selection. This
* is done when either the corresponding network is either removed or disabled.
*/
- private void clearLastSelectedNetwork() {
+ public void clearLastSelectedNetwork() {
if (mVerboseLoggingEnabled) {
Log.v(TAG, "Clearing last selected network");
}
diff --git a/service/java/com/android/server/wifi/WifiConnectivityManager.java b/service/java/com/android/server/wifi/WifiConnectivityManager.java
index af2c3b568..70fe66659 100644
--- a/service/java/com/android/server/wifi/WifiConnectivityManager.java
+++ b/service/java/com/android/server/wifi/WifiConnectivityManager.java
@@ -1464,7 +1464,6 @@ public class WifiConnectivityManager {
if (!mRunning) return;
mRunning = false;
stopConnectivityScan();
- mBssidBlocklistMonitor.clearBssidBlocklist();
resetLastPeriodicSingleScanTimeStamp();
mOpenNetworkNotifier.clearPendingNotification(true /* resetRepeatDelay */);
mLastConnectionAttemptBssid = null;
@@ -1493,6 +1492,10 @@ public class WifiConnectivityManager {
public void setWifiEnabled(boolean enable) {
localLog("Set WiFi " + (enable ? "enabled" : "disabled"));
+ if (mWifiEnabled && !enable) {
+ mNetworkSelector.resetOnDisable();
+ mBssidBlocklistMonitor.clearBssidBlocklist();
+ }
mWifiEnabled = enable;
updateRunningState();
}
diff --git a/service/java/com/android/server/wifi/WifiNetworkSelector.java b/service/java/com/android/server/wifi/WifiNetworkSelector.java
index 717b37792..1e5b6c12d 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSelector.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSelector.java
@@ -650,6 +650,13 @@ public class WifiNetworkSelector {
}
/**
+ * Cleans up state that should go away when wifi is disabled.
+ */
+ public void resetOnDisable() {
+ mWifiConfigManager.clearLastSelectedNetwork();
+ }
+
+ /**
* Select the best network from the ones in range. Scan detail cache is also updated here.
*
* @param scanDetails List of ScanDetail for all the APs in range
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
index e2549e2bd..435577b52 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiConnectivityManagerTest.java
@@ -1553,6 +1553,8 @@ public class WifiConnectivityManagerTest extends WifiBaseTest {
// Verify the BSSID blacklist is cleared again.
verify(mBssidBlocklistMonitor, times(2)).clearBssidBlocklist();
+ // Verify WifiNetworkSelector is informed of the disable.
+ verify(mWifiNS).resetOnDisable();
}
/**
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
index 0f67bf126..1e72cb758 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSelectorTest.java
@@ -1368,4 +1368,10 @@ public class WifiNetworkSelectorTest extends WifiBaseTest {
assertEquals("Expect null configuration", null, candidate);
assertTrue(mWifiNetworkSelector.getConnectableScanDetails().isEmpty());
}
+
+ @Test
+ public void resetOnDisableCallsClearLastSelectedNetwork() {
+ mWifiNetworkSelector.resetOnDisable();
+ verify(mWifiConfigManager).clearLastSelectedNetwork();
+ }
}