summaryrefslogtreecommitdiffstats
path: root/packages/SettingsLib
diff options
context:
space:
mode:
authorVinit Deshpande <vinitd@google.com>2015-04-15 18:10:55 -0700
committerVinit Deshpande <vinitd@google.com>2015-04-29 16:32:01 -0700
commitfc40600e30e281712f6c2fc899fc3894b8ad0050 (patch)
tree025473199fa8a01b5aa35e503566e46fe767d6c6 /packages/SettingsLib
parentc0667853ffad211a5dd40202ff1a4601449b745e (diff)
downloadframeworks_base-fc40600e30e281712f6c2fc899fc3894b8ad0050.zip
frameworks_base-fc40600e30e281712f6c2fc899fc3894b8ad0050.tar.gz
frameworks_base-fc40600e30e281712f6c2fc899fc3894b8ad0050.tar.bz2
Fix settings UI for passpoint networks [DO NOT MERGE]
This change includes showing the friendly name in saved networks list and 'Connected via provider' addition for passpoint connections. Change-Id: If330baa96dedb099d5989b3df5b9778bbbcb15e3 (cherry picked from commit 597f49cdda63fef1b583e2053341485e8d4e2371)
Diffstat (limited to 'packages/SettingsLib')
-rw-r--r--packages/SettingsLib/res/values/strings.xml2
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java34
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java16
3 files changed, 46 insertions, 6 deletions
diff --git a/packages/SettingsLib/res/values/strings.xml b/packages/SettingsLib/res/values/strings.xml
index b5e49ce..8fd56cb 100644
--- a/packages/SettingsLib/res/values/strings.xml
+++ b/packages/SettingsLib/res/values/strings.xml
@@ -67,6 +67,8 @@
<!-- Status message of Wi-Fi when it is connected by a Wi-Fi assistant application. [CHAR LIMIT=NONE] -->
<string name="connected_via_wfa">Connected via Wi\u2011Fi assistant</string>
+ <!-- Status message of Wi-Fi when it is connected by Passpoint configuration. [CHAR LIMIT=NONE] -->
+ <string name="connected_via_passpoint">Connected via %1$s</string>
<!-- Bluetooth settings. Message when a device is disconnected -->
<string name="bluetooth_disconnected">Disconnected</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index e8ab220..458d002 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -26,6 +26,7 @@ import android.net.wifi.WifiConfiguration.KeyMgmt;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
+import android.text.TextUtils;
import android.util.Log;
import android.util.LruCache;
@@ -274,8 +275,10 @@ public class AccessPoint implements Comparable<AccessPoint> {
StringBuilder summary = new StringBuilder();
if (isActive()) { // This is the active connection
+ String passpointProvider = (mConfig != null && mConfig.isPasspoint()) ?
+ mConfig.providerFriendlyName : null;
summary.append(getSummary(mContext, getDetailedState(),
- networkId == WifiConfiguration.INVALID_NETWORK_ID));
+ networkId == WifiConfiguration.INVALID_NETWORK_ID, passpointProvider));
} else if (mConfig != null
&& mConfig.hasNoInternetAccess()) {
summary.append(mContext.getString(R.string.wifi_no_internet));
@@ -559,7 +562,11 @@ public class AccessPoint implements Comparable<AccessPoint> {
}
void loadConfig(WifiConfiguration config) {
- ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID));
+ if (config.isPasspoint())
+ ssid = config.providerFriendlyName;
+ else
+ ssid = (config.SSID == null ? "" : removeDoubleQuotes(config.SSID));
+
security = getSecurity(config);
networkId = config.networkId;
mConfig = config;
@@ -643,11 +650,21 @@ public class AccessPoint implements Comparable<AccessPoint> {
return reorder;
}
+ void update(WifiConfiguration config) {
+ mConfig = config;
+ }
+
public static String getSummary(Context context, String ssid, DetailedState state,
- boolean isEphemeral) {
+ boolean isEphemeral, String passpointProvider) {
if (state == DetailedState.CONNECTED && isEphemeral && ssid == null) {
- // Special case for connected + ephemeral networks.
- return context.getString(R.string.connected_via_wfa);
+ if (TextUtils.isEmpty(passpointProvider) == false) {
+ // Special case for connected + ephemeral networks.
+ String format = context.getString(R.string.connected_via_passpoint);
+ return String.format(format, passpointProvider);
+ } else if (isEphemeral && ssid == null) {
+ // Special case for connected + ephemeral networks.
+ return context.getString(R.string.connected_via_wfa);
+ }
}
String[] formats = context.getResources().getStringArray((ssid == null)
@@ -661,7 +678,12 @@ public class AccessPoint implements Comparable<AccessPoint> {
}
public static String getSummary(Context context, DetailedState state, boolean isEphemeral) {
- return getSummary(context, null, state, isEphemeral);
+ return getSummary(context, null, state, isEphemeral, null);
+ }
+
+ public static String getSummary(Context context, DetailedState state, boolean isEphemeral,
+ String passpointProvider) {
+ return getSummary(context, null, state, isEphemeral, passpointProvider);
}
public static String convertToQuotedString(String string) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index 2eb7abf..3240d0f 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -220,14 +220,21 @@ public class WifiTracker {
/** Lookup table to more quickly update AccessPoints by only considering objects with the
* correct SSID. Maps SSID -> List of AccessPoints with the given SSID. */
Multimap<String, AccessPoint> apMap = new Multimap<String, AccessPoint>();
+ WifiConfiguration connectionConfig = null;
final List<WifiConfiguration> configs = mWifiManager.getConfiguredNetworks();
if (configs != null) {
mSavedNetworksExist = configs.size() != 0;
for (WifiConfiguration config : configs) {
+ if (mLastInfo != null && mLastInfo.getNetworkId() == config.networkId) {
+ connectionConfig = config;
+ }
if (config.selfAdded && config.numAssociation == 0) {
continue;
}
+ if (config.isPasspoint()) {
+ continue;
+ }
AccessPoint accessPoint = getCachedOrCreate(config);
if (mLastInfo != null && mLastNetworkInfo != null) {
accessPoint.update(mLastInfo, mLastNetworkInfo);
@@ -264,6 +271,15 @@ public class WifiTracker {
if (mLastInfo != null && mLastNetworkInfo != null) {
accessPoint.update(mLastInfo, mLastNetworkInfo);
}
+
+ 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);
+ }
+
mAccessPoints.add(accessPoint);
apMap.put(accessPoint.getSsid(), accessPoint);
}