summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/SettingsPreferenceFragment.java
diff options
context:
space:
mode:
authorHung-ying Tyan <tyanh@google.com>2011-01-28 16:17:27 +0800
committerHung-ying Tyan <tyanh@google.com>2011-01-28 23:39:45 +0800
commit18eb39d085c69d99188e59b01678a092ff36b557 (patch)
treebf8a9f29ab017844d924bcf9a5e4d6e5f04942ea /src/com/android/settings/SettingsPreferenceFragment.java
parenta5082305e8c4f3107ec1802b9fd911aba1c288f3 (diff)
downloadpackages_apps_Settings-18eb39d085c69d99188e59b01678a092ff36b557.zip
packages_apps_Settings-18eb39d085c69d99188e59b01678a092ff36b557.tar.gz
packages_apps_Settings-18eb39d085c69d99188e59b01678a092ff36b557.tar.bz2
Clear mDialogFragment when it's detached
and re-associate it when it's re-created. Before this CL, the association is gone when fragment goes through the pause-resume cycle. Similarly, restore onDismiss and onCancel listeners in VpnSettings.onCreateDialog(), restore states in onCreate() instead of onActivityCreated() so that screen rotation can be handled correctly. Now that profiles are shared between Settings instances, always handle state change in VpnSettings.changeState() so that state changed in one instance can be conveyed to the other and preferences can be correctly enabled/disabled. In additions, fix some trivial mistakes in VpnSettings. Bug: 3396394 Change-Id: I242e1ed6c6d410b4dfefb373d8f98266fc9b46d0
Diffstat (limited to 'src/com/android/settings/SettingsPreferenceFragment.java')
-rw-r--r--src/com/android/settings/SettingsPreferenceFragment.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 77f703c..17bf02d 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -182,6 +182,8 @@ public class SettingsPreferenceFragment extends PreferenceFragment
+ DialogCreatable.class.getName());
}
}
+ // restore mDialogFragment in mParentFragment
+ ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = this;
}
return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId);
}
@@ -204,6 +206,16 @@ public class SettingsPreferenceFragment extends PreferenceFragment
public int getDialogId() {
return mDialogId;
}
+
+ @Override
+ public void onDetach() {
+ super.onDetach();
+
+ // in case the dialog is not explicitly removed by removeDialog()
+ if (((SettingsPreferenceFragment) mParentFragment).mDialogFragment == this) {
+ ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = null;
+ }
+ }
}
protected boolean hasNextButton() {