From 377dd62bd7d767b9b944351f4b37b911d0d71b58 Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Wed, 12 Feb 2014 20:05:57 -0800 Subject: [PATCH] Fix bug #12993929 Screen orientation change replaces wifi password dialog with Add network dialog - use the correct Fragment manager: it should be the child's one Change-Id: I286b276bc6c5180b7c0e458d8562938671d493c8 --- .../settings/SettingsPreferenceFragment.java | 20 +++++++++---------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index d91c11b838b..35893ffaf03 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -144,7 +144,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di Log.e(TAG, "Old dialog fragment not null!"); } mDialogFragment = new SettingsDialogFragment(this, dialogId); - mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId)); + mDialogFragment.show(getChildFragmentManager(), Integer.toString(dialogId)); } public Dialog onCreateDialog(int dialogId) { @@ -233,17 +233,15 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di public Dialog onCreateDialog(Bundle savedInstanceState) { if (savedInstanceState != null) { mDialogId = savedInstanceState.getInt(KEY_DIALOG_ID, 0); + mParentFragment = getParentFragment(); int mParentFragmentId = savedInstanceState.getInt(KEY_PARENT_FRAGMENT_ID, -1); - if (mParentFragmentId > -1) { - mParentFragment = getFragmentManager().findFragmentById(mParentFragmentId); - if (!(mParentFragment instanceof DialogCreatable)) { - throw new IllegalArgumentException( - (mParentFragment != null - ? mParentFragment.getClass().getName() - : mParentFragmentId) - + " must implement " - + DialogCreatable.class.getName()); - } + if (!(mParentFragment instanceof DialogCreatable)) { + throw new IllegalArgumentException( + (mParentFragment != null + ? mParentFragment.getClass().getName() + : mParentFragmentId) + + " must implement " + + DialogCreatable.class.getName()); } // This dialog fragment could be created from non-SettingsPreferenceFragment if (mParentFragment instanceof SettingsPreferenceFragment) {