summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Peter Qiu <zqiu@google.com> 2017-02-01 11:49:15 -0800
committer Peter Qiu <zqiu@google.com> 2017-02-01 14:40:34 -0800
commit2c3b5ee2be5da70a6ac19e7348da3d94cf2eddae (patch)
tree1854f1d61f095a36f7b72e644782ff4a7a19c5c8
parent741ec3ed1d9ded60acf869604d8d6108300e96b0 (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.java6
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java41
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);
}