From 295793928d1b937247dc6ca0a8e3d338fb153b21 Mon Sep 17 00:00:00 2001 From: Vinit Deshpande Date: Fri, 3 Apr 2015 16:41:36 -0700 Subject: [PATCH] Implement 'Available via Passpoint' feature This also fixes the issues related to explicit connection to passpoint AP, and fixes occassional mention of 'connected via Wi-Fi Assistent' Change-Id: Ib4de956f2ea29709d0212fbcb392815644800e78 --- res/values/strings.xml | 2 ++ src/com/android/settings/wifi/AccessPoint.java | 7 +++++-- .../android/settings/wifi/WifiConfigController.java | 12 +++++++++--- src/com/android/settings/wifi/WifiSettings.java | 7 +++++++ 4 files changed, 23 insertions(+), 5 deletions(-) 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()) {