OSDN Git Service

Fix issue #3400255 Dialog fragments crash on rotation in Settings app
[android-x86/packages-apps-Settings.git] / src / com / android / settings / SettingsPreferenceFragment.java
index dd078ba..77f703c 100644 (file)
@@ -161,7 +161,16 @@ public class SettingsPreferenceFragment extends PreferenceFragment
         }
 
         @Override
-        public void onActivityCreated(Bundle savedInstanceState) {
+        public void onSaveInstanceState(Bundle outState) {
+            super.onSaveInstanceState(outState);
+            if (mParentFragment != null) {
+                outState.putInt(KEY_DIALOG_ID, mDialogId);
+                outState.putInt(KEY_PARENT_FRAGMENT_ID, mParentFragment.getId());
+            }
+        }
+
+        @Override
+        public Dialog onCreateDialog(Bundle savedInstanceState) {
             if (savedInstanceState != null) {
                 mDialogId = savedInstanceState.getInt(KEY_DIALOG_ID, 0);
                 int mParentFragmentId = savedInstanceState.getInt(KEY_PARENT_FRAGMENT_ID, -1);
@@ -174,20 +183,6 @@ public class SettingsPreferenceFragment extends PreferenceFragment
                     }
                 }
             }
-            super.onActivityCreated(savedInstanceState);
-        }
-
-        @Override
-        public void onSaveInstanceState(Bundle outState) {
-            super.onSaveInstanceState(outState);
-            if (mParentFragment != null) {
-                outState.putInt(KEY_DIALOG_ID, mDialogId);
-                outState.putInt(KEY_PARENT_FRAGMENT_ID, mParentFragment.getId());
-            }
-        }
-
-        @Override
-        public Dialog onCreateDialog(Bundle savedInstanceState) {
             return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId);
         }