summaryrefslogtreecommitdiff
path: root/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
diff options
context:
space:
mode:
authorQuang Luong <qal@google.com>2020-02-05 12:23:11 -0800
committerQuang Luong <qal@google.com>2020-02-26 01:20:01 +0000
commit270e37c94bb67b338b3adbf49e6eb2c6ab493464 (patch)
treec2356cd2de572336dfac647c1fc7ef5f141caf6e /libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
parent9d62bc1c10c29d162fe7fb94df8c187606f7af76 (diff)
downloadwifi-270e37c94bb67b338b3adbf49e6eb2c6ab493464.tar.gz
[WifiTrackerLib] Fix Passpoint entry scan updates
Fixed PasspointWifiEntry handling in wifi picker, saved networks page, and network details page to update correctly with empty scans when out of range. Test: atest WifiTrackerLibTests Bug: 70983952 Change-Id: I8761aee5b478e3d225e026cb69d21bab69168955 (cherry picked from commit 6d77b880dad02eccb44b5c75d97eaf20de669a27) Merged-In: I8761aee5b478e3d225e026cb69d21bab69168955
Diffstat (limited to 'libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java')
-rw-r--r--libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java13
1 files changed, 13 insertions, 0 deletions
diff --git a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
index f6016677f..be0c7fd94 100644
--- a/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
+++ b/libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java
@@ -51,6 +51,8 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
import java.util.function.Function;
import java.util.stream.Collectors;
@@ -217,11 +219,13 @@ public class SavedNetworkTracker extends BaseWifiTracker {
private void updatePasspointWifiEntryScans(@NonNull List<ScanResult> scanResults) {
checkNotNull(scanResults, "Scan Result list should not be null!");
+ Set<String> seenKeys = new TreeSet<>();
List<Pair<WifiConfiguration, Map<Integer, List<ScanResult>>>> matchingWifiConfigs =
mWifiManager.getAllMatchingWifiConfigs(scanResults);
for (Pair<WifiConfiguration, Map<Integer, List<ScanResult>>> pair : matchingWifiConfigs) {
final WifiConfiguration wifiConfig = pair.first;
final String key = uniqueIdToPasspointWifiEntryKey(wifiConfig.getKey());
+ seenKeys.add(key);
// Skip in case we don't have a PasspointWifiEntry for the returned unique identifier.
if (!mPasspointWifiEntryCache.containsKey(key)) {
continue;
@@ -231,6 +235,15 @@ public class SavedNetworkTracker extends BaseWifiTracker {
pair.second.get(WifiManager.PASSPOINT_HOME_NETWORK),
pair.second.get(WifiManager.PASSPOINT_ROAMING_NETWORK));
}
+
+ for (PasspointWifiEntry entry : mPasspointWifiEntryCache.values()) {
+ if (!seenKeys.contains(entry.getKey())) {
+ // No AP in range; set scan results and connection config to null.
+ entry.updateScanResultInfo(null /* wifiConfig */,
+ null /* homeScanResults */,
+ null /* roamingScanResults */);
+ }
+ }
}
/**