diff options
author | Nate Jiang <qiangjiang@google.com> | 2020-02-20 02:09:44 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-02-20 02:09:44 +0000 |
commit | 13a767cb474ea4ea22099582635cf90a1131fb80 (patch) | |
tree | 1e1bd42eefb107acf1aa80bd09287aae15636628 /service | |
parent | 3076deea79ac9ace03649fe578b55dd86f0707f1 (diff) | |
parent | a9befe44d41ef88383c28975262e5ef11fea818c (diff) |
Merge "Only remove suggestion PerNetwork score card when suggestion is removed."
Diffstat (limited to 'service')
-rw-r--r-- | service/java/com/android/server/wifi/WifiHealthMonitor.java | 6 | ||||
-rw-r--r-- | service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java | 18 |
2 files changed, 21 insertions, 3 deletions
diff --git a/service/java/com/android/server/wifi/WifiHealthMonitor.java b/service/java/com/android/server/wifi/WifiHealthMonitor.java index d1fde2e5d..402032d2c 100644 --- a/service/java/com/android/server/wifi/WifiHealthMonitor.java +++ b/service/java/com/android/server/wifi/WifiHealthMonitor.java @@ -935,7 +935,11 @@ public class WifiHealthMonitor { @Override public void onNetworkRemoved(WifiConfiguration config) { - if (config == null) return; + if (config == null || (config.fromWifiNetworkSuggestion && !config.isPasspoint())) { + // If a suggestion non-passpoint network is removed from wifiConfigManager do not + // remove the ScoreCard. That will be removed when suggestion is removed. + return; + } mWifiScoreCard.removeNetwork(config.SSID); } diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java index 7fe7caf11..204c98773 100644 --- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java +++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java @@ -597,7 +597,7 @@ public class WifiNetworkSuggestionsManager { extNetworkSuggestionsForScanResultMatchInfo.add(extNetworkSuggestion); } - private void removeFromScanResultMatchInfoMap( + private void removeFromScanResultMatchInfoMapAndRemoveRelatedScoreCard( @NonNull ExtendedWifiNetworkSuggestion extNetworkSuggestion) { ScanResultMatchInfo scanResultMatchInfo = ScanResultMatchInfo.fromWifiConfiguration( @@ -620,6 +620,9 @@ public class WifiNetworkSuggestionsManager { // Remove the set from map if empty. if (extNetworkSuggestionsForScanResultMatchInfo.isEmpty()) { mActiveScanResultMatchInfoWithBssid.remove(lookupPair); + if (!mActiveScanResultMatchInfoWithNoBssid.containsKey(scanResultMatchInfo)) { + removeNetworkFromScoreCard(extNetworkSuggestion.wns.wifiConfiguration); + } } } else { extNetworkSuggestionsForScanResultMatchInfo = @@ -634,10 +637,21 @@ public class WifiNetworkSuggestionsManager { // Remove the set from map if empty. if (extNetworkSuggestionsForScanResultMatchInfo.isEmpty()) { mActiveScanResultMatchInfoWithNoBssid.remove(scanResultMatchInfo); + removeNetworkFromScoreCard(extNetworkSuggestion.wns.wifiConfiguration); } } } + private void removeNetworkFromScoreCard(WifiConfiguration wifiConfiguration) { + WifiConfiguration existing = + mWifiConfigManager.getConfiguredNetwork(wifiConfiguration.getKey()); + // If there is a saved network, do not remove from the score card. + if (existing != null && !existing.fromWifiNetworkSuggestion) { + return; + } + mWifiInjector.getWifiScoreCard().removeNetwork(wifiConfiguration.SSID); + } + private void addToPasspointInfoMap(ExtendedWifiNetworkSuggestion ewns) { Set<ExtendedWifiNetworkSuggestion> extendedWifiNetworkSuggestions = mPasspointInfo.get(ewns.wns.wifiConfiguration.FQDN); @@ -932,7 +946,7 @@ public class WifiNetworkSuggestionsManager { ewns.wns.wifiConfiguration.getKey(), null); removeFromPassPointInfoMap(ewns); } else { - removeFromScanResultMatchInfoMap(ewns); + removeFromScanResultMatchInfoMapAndRemoveRelatedScoreCard(ewns); } } // Disconnect suggested network if connected |