summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2020-04-02 14:36:49 -0700
committerNate Jiang <qiangjiang@google.com>2020-04-02 15:13:07 -0700
commit7347b91f448800656c79c0eb0cca39b83861e575 (patch)
tree004193d086faa76b8ba01b28440731ea554d6459 /service
parent48a31819c11d3ee7508f3fb364617925684c362b (diff)
Duplicate ScanResult should return only one matched suggestion
Bug: 153010858 Test: atest com.android.server.wifi Change-Id: Ia4254fd407e8ff12cdf9d45d07a280ea7b5ffcdf
Diffstat (limited to 'service')
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
index 19c9da156..5539f8131 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
@@ -1615,6 +1615,8 @@ public class WifiNetworkSuggestionsManager {
*/
public @NonNull List<WifiConfiguration> getWifiConfigForMatchedNetworkSuggestionsSharedWithUser(
List<ScanResult> scanResults) {
+ // Create a HashSet to avoid return multiple result for duplicate ScanResult.
+ Set<String> networkKeys = new HashSet<>();
List<WifiConfiguration> sharedWifiConfigs = new ArrayList<>();
for (ScanResult scanResult : scanResults) {
ScanResultMatchInfo scanResultMatchInfo =
@@ -1648,7 +1650,9 @@ public class WifiNetworkSuggestionsManager {
if (existingConfig == null || !existingConfig.fromWifiNetworkSuggestion) {
continue;
}
- sharedWifiConfigs.add(existingConfig);
+ if (networkKeys.add(existingConfig.getKey())) {
+ sharedWifiConfigs.add(existingConfig);
+ }
}
return sharedWifiConfigs;
}