summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2020-02-20 02:09:44 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-02-20 02:09:44 +0000
commit13a767cb474ea4ea22099582635cf90a1131fb80 (patch)
tree1e1bd42eefb107acf1aa80bd09287aae15636628 /service
parent3076deea79ac9ace03649fe578b55dd86f0707f1 (diff)
parenta9befe44d41ef88383c28975262e5ef11fea818c (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.java6
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java18
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