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
This commit is contained in:
Vinit Deshpande
2015-04-03 16:41:36 -07:00
parent 05075242db
commit 295793928d
4 changed files with 23 additions and 5 deletions

View File

@@ -1335,6 +1335,8 @@
<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>
<!-- Status message of Wi-Fi when network has matching passpoint credentials. [CHAR LIMIT=NONE] -->
<string name="available_via_passpoint">Available via %1$s</string>
<!-- Wifi Display settings. The title of the screen. [CHAR LIMIT=40] -->
<string name="wifi_display_settings_title">Cast screen</string>

View File

@@ -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)

View File

@@ -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) {

View File

@@ -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()) {