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
This commit is contained in:
Fabrice Di Meglio
2014-02-12 20:05:57 -08:00
parent 13ae78a5a7
commit 377dd62bd7

View File

@@ -144,7 +144,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
Log.e(TAG, "Old dialog fragment not null!"); Log.e(TAG, "Old dialog fragment not null!");
} }
mDialogFragment = new SettingsDialogFragment(this, dialogId); mDialogFragment = new SettingsDialogFragment(this, dialogId);
mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId)); mDialogFragment.show(getChildFragmentManager(), Integer.toString(dialogId));
} }
public Dialog onCreateDialog(int dialogId) { public Dialog onCreateDialog(int dialogId) {
@@ -233,17 +233,15 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
public Dialog onCreateDialog(Bundle savedInstanceState) { public Dialog onCreateDialog(Bundle savedInstanceState) {
if (savedInstanceState != null) { if (savedInstanceState != null) {
mDialogId = savedInstanceState.getInt(KEY_DIALOG_ID, 0); mDialogId = savedInstanceState.getInt(KEY_DIALOG_ID, 0);
mParentFragment = getParentFragment();
int mParentFragmentId = savedInstanceState.getInt(KEY_PARENT_FRAGMENT_ID, -1); int mParentFragmentId = savedInstanceState.getInt(KEY_PARENT_FRAGMENT_ID, -1);
if (mParentFragmentId > -1) { if (!(mParentFragment instanceof DialogCreatable)) {
mParentFragment = getFragmentManager().findFragmentById(mParentFragmentId); throw new IllegalArgumentException(
if (!(mParentFragment instanceof DialogCreatable)) { (mParentFragment != null
throw new IllegalArgumentException( ? mParentFragment.getClass().getName()
(mParentFragment != null : mParentFragmentId)
? mParentFragment.getClass().getName() + " must implement "
: mParentFragmentId) + DialogCreatable.class.getName());
+ " must implement "
+ DialogCreatable.class.getName());
}
} }
// This dialog fragment could be created from non-SettingsPreferenceFragment // This dialog fragment could be created from non-SettingsPreferenceFragment
if (mParentFragment instanceof SettingsPreferenceFragment) { if (mParentFragment instanceof SettingsPreferenceFragment) {