wifi: allow manual connection to a Passpoint provided network

While connected to other WiFi network, a Passpoint AP with its
provider installed will shown as "<SSID> available via
<Provider Name>", since the installed provider contained
necessary credentials needed to connect to that AP.

This CL will trigger a connection to that AP when the user
taps on it for manual connection.

Bug: 36357280
Test: manual connecting to a Passpoint network while connected
      to other network

Change-Id: Idec440aa1606e80bcea56054e77ef2dc50a7ac93
This commit is contained in:
Peter Qiu
2017-04-04 13:58:02 -07:00
parent 3c0d5ff3d1
commit 36b68df4d4

View File

@@ -516,7 +516,10 @@ public class WifiSettings extends RestrictedSettingsFragment
if (mSelectedAccessPoint.isActive()) {
return super.onPreferenceTreeClick(preference);
}
/** Bypass dialog and connect to unsecured or previously connected saved networks. */
/**
* Bypass dialog and connect to unsecured networks, or previously connected saved
* networks, or Passpoint provided networks.
*/
WifiConfiguration config = mSelectedAccessPoint.getConfig();
if (mSelectedAccessPoint.getSecurity() == AccessPoint.SECURITY_NONE) {
mSelectedAccessPoint.generateOpenNetworkConfig();
@@ -525,6 +528,10 @@ public class WifiSettings extends RestrictedSettingsFragment
&& config.getNetworkSelectionStatus() != null
&& config.getNetworkSelectionStatus().getHasEverConnected()) {
connect(config, true /* isSavedNetwork */);
} else if (mSelectedAccessPoint.isPasspoint()) {
// Access point provided by an installed Passpoint provider, connect using
// the associated config.
connect(config, true /* isSavedNetwork */);
} else {
showDialog(mSelectedAccessPoint, WifiConfigUiBase.MODE_CONNECT);
}