summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorPauloftheWest <paulofthewest@google.com>2014-08-18 20:00:36 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-08-16 04:32:18 +0000
commit31584ec3e99ded3dd96de06bcb1aa8e4dc408cce (patch)
treeecacee96efebfce7bfab75f82316a45baa36808d /src/com
parent6a2b1a44d2ed5bc0b5025ec62a51662850499d71 (diff)
parent3280dc144f18a406cca3c1b5292a3031e0b470e7 (diff)
downloadpackages_apps_Settings-31584ec3e99ded3dd96de06bcb1aa8e4dc408cce.tar.gz
packages_apps_Settings-31584ec3e99ded3dd96de06bcb1aa8e4dc408cce.tar.bz2
packages_apps_Settings-31584ec3e99ded3dd96de06bcb1aa8e4dc408cce.zip
Merge "Fixed a crash when rotating a saved networks dialog." into lmp-dev
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index a91d153f2..10c86dc93 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -53,6 +53,9 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
private Bundle mAccessPointSavedState;
private AccessPoint mSelectedAccessPoint;
+ // Instance state key
+ private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state";
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -69,6 +72,13 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
+
+ if (savedInstanceState != null) {
+ if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) {
+ mAccessPointSavedState =
+ savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE);
+ }
+ }
}
private void initPreferences() {
@@ -150,6 +160,11 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
public Dialog onCreateDialog(int dialogId) {
switch (dialogId) {
case WifiSettings.WIFI_DIALOG_ID:
+ if (mDlgAccessPoint == null) { // For re-launch from saved state
+ mDlgAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState);
+ // Reset the saved access point data
+ mAccessPointSavedState = null;
+ }
mSelectedAccessPoint = mDlgAccessPoint;
mDialog = new WifiDialog(getActivity(), this, mDlgAccessPoint, false);
return mDialog;
@@ -159,6 +174,20 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment
}
@Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+
+ // If the dialog is showing, save its state.
+ if (mDialog != null && mDialog.isShowing()) {
+ if (mDlgAccessPoint != null) {
+ mAccessPointSavedState = new Bundle();
+ mDlgAccessPoint.saveWifiState(mAccessPointSavedState);
+ outState.putBundle(SAVE_DIALOG_ACCESS_POINT_STATE, mAccessPointSavedState);
+ }
+ }
+ }
+
+ @Override
public void onClick(DialogInterface dialogInterface, int button) {
if (button == WifiDialog.BUTTON_FORGET && mSelectedAccessPoint != null) {
mWifiManager.forget(mSelectedAccessPoint.networkId, null);