diff options
Diffstat (limited to 'service/java')
-rw-r--r-- | service/java/com/android/server/wifi/WifiConfigStore.java | 18 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 1 |
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; |