From 02f0a4aff3349513e69ea6697151c60088f75dcd Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Wed, 13 May 2015 10:17:33 -0400 Subject: [PATCH] Fix connecting to secure wifi from QS Sometimes the preference isn't created yet, so we need to hold on to the ssid until the preference for that access point gets created. Bug: 20975085 Change-Id: Ib5804611793550106f6059b1afe016de4e89bc64 --- .../android/settings/wifi/WifiSettings.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index 5cb486982f5..0c28db3c1c9 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -147,6 +147,7 @@ public class WifiSettings extends RestrictedSettingsFragment private Bundle mWifiNfcDialogSavedState; private WifiTracker mWifiTracker; + private String mOpenSsid; /* End of "used in Wifi Setup context" */ @@ -252,20 +253,8 @@ public class WifiSettings extends RestrictedSettingsFragment setHasOptionsMenu(true); if (intent.hasExtra(EXTRA_START_CONNECT_SSID)) { - String ssid = intent.getStringExtra(EXTRA_START_CONNECT_SSID); + mOpenSsid = intent.getStringExtra(EXTRA_START_CONNECT_SSID); onAccessPointsChanged(); - PreferenceScreen preferenceScreen = getPreferenceScreen(); - for (int i = 0; i < preferenceScreen.getPreferenceCount(); i++) { - Preference preference = preferenceScreen.getPreference(i); - if (preference instanceof AccessPointPreference) { - AccessPoint accessPoint = ((AccessPointPreference) preference).getAccessPoint(); - if (ssid.equals(accessPoint.getSsid()) && !accessPoint.isSaved() - && accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) { - onPreferenceTreeClick(preferenceScreen, preference); - break; - } - } - } } } @@ -642,6 +631,12 @@ public class WifiSettings extends RestrictedSettingsFragment AccessPointPreference preference = new AccessPointPreference(accessPoint, getActivity(), false); + if (mOpenSsid != null && mOpenSsid.equals(accessPoint.getSsid()) + && !accessPoint.isSaved() + && accessPoint.getSecurity() != AccessPoint.SECURITY_NONE) { + onPreferenceTreeClick(getPreferenceScreen(), preference); + mOpenSsid = null; + } getPreferenceScreen().addPreference(preference); accessPoint.setListener(this); }