diff options
author | Quang Luong <qal@google.com> | 2020-02-05 12:23:11 -0800 |
---|---|---|
committer | Quang Luong <qal@google.com> | 2020-02-26 01:20:01 +0000 |
commit | 270e37c94bb67b338b3adbf49e6eb2c6ab493464 (patch) | |
tree | c2356cd2de572336dfac647c1fc7ef5f141caf6e /libs/WifiTrackerLib/src/com/android/wifitrackerlib/SavedNetworkTracker.java | |
parent | 9d62bc1c10c29d162fe7fb94df8c187606f7af76 (diff) | |
download | wifi-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.java | 13 |
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 */); + } + } } /** |