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!");
}
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) {