diff options
| author | 2017-02-01 11:49:15 -0800 | |
|---|---|---|
| committer | 2017-02-01 14:40:34 -0800 | |
| commit | 2c3b5ee2be5da70a6ac19e7348da3d94cf2eddae (patch) | |
| tree | 1854f1d61f095a36f7b72e644782ff4a7a19c5c8 | |
| parent | 741ec3ed1d9ded60acf869604d8d6108300e96b0 (diff) | |
SettingsLib: wifi: Fixed AccessPoint tracking for Passpoint networks
Previously, we were using provider name as the "SSID" for
Passpoint networks, and use it to compare against real SSIDs,
which obvious doesn't match. So fix it.
Also removed the Passpoint specific logics in WifiTracker for
tracking Passpoint networks, since there shouldn't any
difference in tracking Passpoint APs and normal APs.
Additional work is still needed for managing installed
Passpoint configurations in the "Saved networks" page,
and it is being tracked by b/34207710. The Passpoint configuration
is not an "Access Point" per se, it is a network profile.
Bug: 34455883
Test: Install a Globla Reach Passpoint profile on a bullhead,
verify device auto connects to a Global Reach AP and UI
(QS, QS+, and Settings) correctly reflects it.
Change-Id: I63e66f683f8cb96e664516b130f5e7bc02358a10
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java | 6 | ||||
| -rw-r--r-- | packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java | 41 |
2 files changed, 16 insertions, 31 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java index 06ea4459b3ff..d79c5dbd40ee 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java @@ -765,11 +765,7 @@ public class AccessPoint implements Comparable<AccessPoint> { } void loadConfig(WifiConfiguration config) { - if (config.isPasspoint()) - ssid = config.providerFriendlyName; - else - ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID)); - + ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID)); bssid = config.BSSID; security = getSecurity(config); networkId = config.networkId; diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java index c6179943b4d3..fe144b393d91 100644 --- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java +++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java @@ -479,29 +479,22 @@ public class WifiTracker { } AccessPoint accessPoint = getCachedOrCreate(config, cachedAccessPoints); if (mLastInfo != null && mLastNetworkInfo != null) { - if (config.isPasspoint() == false) { - accessPoint.update(connectionConfig, mLastInfo, mLastNetworkInfo); - } + accessPoint.update(connectionConfig, mLastInfo, mLastNetworkInfo); } if (mIncludeSaved) { - if (!config.isPasspoint() || mIncludePasspoints) { - // If saved network not present in scan result then set its Rssi to MAX_VALUE - boolean apFound = false; - for (ScanResult result : results) { - if (result.SSID.equals(accessPoint.getSsidStr())) { - apFound = true; - break; - } + // If saved network not present in scan result then set its Rssi to MAX_VALUE + boolean apFound = false; + for (ScanResult result : results) { + if (result.SSID.equals(accessPoint.getSsidStr())) { + apFound = true; + break; } - if (!apFound) { - accessPoint.setRssi(Integer.MAX_VALUE); - } - accessPoints.add(accessPoint); } - - if (config.isPasspoint() == false) { - apMap.put(accessPoint.getSsidStr(), accessPoint); + if (!apFound) { + accessPoint.setRssi(Integer.MAX_VALUE); } + accessPoints.add(accessPoint); + apMap.put(accessPoint.getSsidStr(), accessPoint); } else { // If we aren't using saved networks, drop them into the cache so that // we have access to their saved info. @@ -538,20 +531,16 @@ public class WifiTracker { } if (result.isPasspointNetwork()) { + // Retrieve a WifiConfiguration for a Passpoint provider that matches + // the given ScanResult. This is used for showing that a given AP + // (ScanResult) is available via a Passpoint provider (provider friendly + // name). WifiConfiguration config = mWifiManager.getMatchingWifiConfig(result); if (config != null) { accessPoint.update(config); } } - if (mLastInfo != null && mLastInfo.getBSSID() != null - && mLastInfo.getBSSID().equals(result.BSSID) - && connectionConfig != null && connectionConfig.isPasspoint()) { - /* This network is connected via this passpoint config */ - /* SSID match is not going to work for it; so update explicitly */ - accessPoint.update(connectionConfig); - } - accessPoints.add(accessPoint); apMap.put(accessPoint.getSsidStr(), accessPoint); } |