diff --git a/res/values/strings.xml b/res/values/strings.xml
index b3aadaedc40..bd9da05aca6 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1335,6 +1335,8 @@
Connected via Wi\u2011Fi assistant
Connected via %1$s
+
+ Available via %1$s
Cast screen
diff --git a/src/com/android/settings/wifi/AccessPoint.java b/src/com/android/settings/wifi/AccessPoint.java
index 1d5f8ce1fed..cb48f1f6531 100644
--- a/src/com/android/settings/wifi/AccessPoint.java
+++ b/src/com/android/settings/wifi/AccessPoint.java
@@ -401,6 +401,7 @@ class AccessPoint extends Preference {
void update(WifiConfiguration config) {
mConfig = config;
+ networkId = config.networkId;
refresh();
}
@@ -631,8 +632,10 @@ class AccessPoint extends Preference {
mConfig.providerFriendlyName : null;
summary.append(Summary.get(context, getState(),
networkId == WifiConfiguration.INVALID_NETWORK_ID, passpointProvider));
- } else if (mConfig != null
- && mConfig.hasNoInternetAccess()) {
+ } else if (mConfig != null && mConfig.isPasspoint()) {
+ String format = context.getString(R.string.available_via_passpoint);
+ summary.append(String.format(format, mConfig.providerFriendlyName));
+ } else if (mConfig != null && mConfig.hasNoInternetAccess()) {
summary.append(context.getString(R.string.wifi_no_internet));
} else if (mConfig != null && ((mConfig.status == WifiConfiguration.Status.DISABLED &&
mConfig.disableReason != WifiConfiguration.DISABLED_UNKNOWN_REASON)
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index f13ecc37721..38ceead441e 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -269,9 +269,15 @@ public class WifiConfigController implements TextWatcher,
mConfigUi.setSubmitButton(res.getString(R.string.wifi_connect));
} else {
if (state != null) {
- addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(),
- state, mAccessPoint.networkId ==
- WifiConfiguration.INVALID_NETWORK_ID));
+ WifiConfiguration config = mAccessPoint.getConfig();
+ if (config != null && config.isPasspoint()) {
+ addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(),
+ state, false, config.providerFriendlyName));
+ } else {
+ addRow(group, R.string.wifi_status, Summary.get(mConfigUi.getContext(),
+ state, mAccessPoint.networkId ==
+ WifiConfiguration.INVALID_NETWORK_ID));
+ }
}
if (signalLevel != null) {
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 2fd695d838d..10175ecc1dd 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -778,6 +778,13 @@ public class WifiSettings extends RestrictedSettingsFragment
accessPoint.update(lastInfo, lastNetworkInfo);
}
+ if (result.passpointNetwork) {
+ WifiConfiguration config = wifiManager.getMatchingWifiConfig(result);
+ if (config != null) {
+ accessPoint.update(config);
+ }
+ }
+
if (lastInfo != null && lastInfo.getBSSID() != null
&& lastInfo.getBSSID().equals(result.BSSID)
&& connectionConfig != null && connectionConfig.isPasspoint()) {