summaryrefslogtreecommitdiffstats
path: root/service/java
diff options
context:
space:
mode:
Diffstat (limited to 'service/java')
-rw-r--r--service/java/com/android/server/wifi/WifiConfigStore.java18
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java1
2 files changed, 19 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiConfigStore.java b/service/java/com/android/server/wifi/WifiConfigStore.java
index b8701b7..61f31f3 100644
--- a/service/java/com/android/server/wifi/WifiConfigStore.java
+++ b/service/java/com/android/server/wifi/WifiConfigStore.java
@@ -1156,6 +1156,24 @@ public class WifiConfigStore extends IpConfigStore {
}
}
+ void unblackListDriverRoamedBSSID(String bssid) {
+ for (WifiConfiguration config : mConfiguredNetworks.values()) {
+ ScanDetailCache cache = getScanDetailCache(config);
+ if (cache != null) {
+ ScanResult result = cache.get(bssid);
+ if (result != null) {
+ if (result.autoJoinStatus == (ScanResult.AUTO_ROAM_DISABLED + 1)) {
+ if (DBG) {
+ Log.d(TAG,"unblacklisted driver roamed BSSID = "+result.BSSID);
+ }
+ result.setAutoJoinStatus(ScanResult.ENABLED);
+ }
+ }
+ }
+ }
+ }
+
+
void noteRoamingFailure(WifiConfiguration config, int reason) {
if (config == null) return;
config.lastRoamingFailure = System.currentTimeMillis();
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index 20a549d..58e7841 100644
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -9411,6 +9411,7 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiPno
if (toBSSID != null && !toBSSID.equals(mWifiInfo.getBSSID())) {
mWifiConfigStore.driverRoamedFrom(mWifiInfo);
}
+ mWifiConfigStore.unblackListDriverRoamedBSSID(toBSSID);
return NOT_HANDLED;
case WifiMonitor.NETWORK_DISCONNECTION_EVENT:
long lastRoam = 0;