From 36760c108b4b427da95afee23bc0ac7aeace9323 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 27 Oct 2014 11:35:16 -0400 Subject: [PATCH] Allow QS to launch adding network dialog This allows QS to set an extra that will launch the adding network dialog directly for a specified ssid. It will be used to take users straight from QS to the password entry, when a secure network is selected. Bug: 17722817 Change-Id: I570596af906de005c505678b539f915c06e6fd14 --- .../android/settings/wifi/WifiSettings.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 6c58bc156c9..1ef9cce1c01 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -145,6 +145,9 @@ public class WifiSettings extends RestrictedSettingsFragment // this boolean extra specifies whether to disable the Next button when not connected. Used by // account creation outside of setup wizard. private static final String EXTRA_ENABLE_NEXT_ON_CONNECT = "wifi_enable_next_on_connect"; + // This string extra specifies a network to open the connect dialog on, so the user can enter + // network credentials. This is used by quick settings for secured networks. + private static final String EXTRA_START_CONNECT_SSID = "wifi_start_connect_ssid"; // should Next button only be enabled when we have a connection? private boolean mEnableNextOnConnection; @@ -326,6 +329,23 @@ public class WifiSettings extends RestrictedSettingsFragment mEmptyView = initEmptyView(); registerForContextMenu(getListView()); setHasOptionsMenu(true); + + if (intent.hasExtra(EXTRA_START_CONNECT_SSID)) { + String ssid = intent.getStringExtra(EXTRA_START_CONNECT_SSID); + updateAccessPoints(); + PreferenceScreen preferenceScreen = getPreferenceScreen(); + for (int i = 0; i < preferenceScreen.getPreferenceCount(); i++) { + Preference preference = preferenceScreen.getPreference(i); + if (preference instanceof AccessPoint) { + AccessPoint accessPoint = (AccessPoint) preference; + if (ssid.equals(accessPoint.ssid) && accessPoint.networkId == -1 + && accessPoint.security != AccessPoint.SECURITY_NONE) { + onPreferenceTreeClick(preferenceScreen, preference); + break; + } + } + } + } } @Override