From 550f7d4dc9fe21d0fc51db88614af5857edb3300 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Wed, 9 Jan 2019 17:07:19 -0800 Subject: Add correct RSSI for OSU entries in wifi picker OSU entries should now display the correct RSSI retrieved from its scan results. Tracking bug for adding robolectric tests: b/122849296 Bug: 118705403 Test: manual, build and check scan results in verbose mode Change-Id: Ie89bb94cfcef20f5dec6d4419e536aadaaed4ca5 --- .../com/android/settingslib/wifi/AccessPoint.java | 4 +--- .../com/android/settingslib/wifi/WifiTracker.java | 26 +++++++++++----------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 78f8a7287db1..1267898d24b9 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -321,9 +321,7 @@ public class AccessPoint implements Comparable { public AccessPoint(Context context, OsuProvider provider) { mContext = context; mOsuProvider = provider; - mRssi = 1; - // TODO: This placeholder SSID is here to avoid null pointer exceptions. - ssid = ""; + ssid = provider.getFriendlyName(); updateKey(); } diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index 3805eea47807..58c93e4727eb 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java @@ -624,7 +624,6 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro } // Add Passpoint OSU Provider AccessPoints - // TODO(b/118705403): filter out OSU Providers which we already have credentials from. Map> providersAndScans = mWifiManager.getMatchingOsuProviders(cachedScanResults); Set alreadyProvisioned = mWifiManager @@ -632,13 +631,10 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro providersAndScans.keySet()).keySet(); for (OsuProvider provider : providersAndScans.keySet()) { if (!alreadyProvisioned.contains(provider)) { - // TODO(b/118705403): use real scan results for this provider AccessPoint accessPointOsu = - getCachedOrCreateOsu(null, cachedAccessPoints, provider); - // TODO(b/118705403): Figure out if we would need to update an OSU AP (this will - // be used if we need to display it at the top of the picker as the "active" AP) - // Otherwise OSU APs should ignore attempts to update the active connection info - // accessPointOsu.update(connectionConfig, mLastInfo, mLastNetworkInfo); + getCachedOrCreateOsu(providersAndScans.get(provider), + cachedAccessPoints, provider); + accessPointOsu.update(connectionConfig, mLastInfo, mLastNetworkInfo); accessPoints.add(accessPointOsu); } } @@ -709,17 +705,21 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro List scanResults, List cache, OsuProvider provider) { + AccessPoint matchedAccessPoint = null; ListIterator lit = cache.listIterator(); while (lit.hasNext()) { - final AccessPoint ret = lit.next(); - if (ret.getKey().equals(AccessPoint.getKey(provider))) { + AccessPoint currentAccessPoint = lit.next(); + if (currentAccessPoint.getKey().equals(AccessPoint.getKey(provider))) { lit.remove(); - // TODO(b/118705403): Use real scan results for this. - // ret.setScanResults(scanResults); - return ret; + matchedAccessPoint = currentAccessPoint; + break; } } - return new AccessPoint(mContext, provider); + if (matchedAccessPoint == null) { + matchedAccessPoint = new AccessPoint(mContext, provider); + } + matchedAccessPoint.setScanResults(scanResults); + return matchedAccessPoint; } private void updateNetworkInfo(NetworkInfo networkInfo) { -- cgit v1.2.3-59-g8ed1b