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:
@@ -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,9 +233,8 @@ 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) {
|
|
||||||
mParentFragment = getFragmentManager().findFragmentById(mParentFragmentId);
|
|
||||||
if (!(mParentFragment instanceof DialogCreatable)) {
|
if (!(mParentFragment instanceof DialogCreatable)) {
|
||||||
throw new IllegalArgumentException(
|
throw new IllegalArgumentException(
|
||||||
(mParentFragment != null
|
(mParentFragment != null
|
||||||
@@ -244,7 +243,6 @@ public class SettingsPreferenceFragment extends PreferenceFragment implements Di
|
|||||||
+ " must implement "
|
+ " must implement "
|
||||||
+ DialogCreatable.class.getName());
|
+ 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) {
|
||||||
// restore mDialogFragment in mParentFragment
|
// restore mDialogFragment in mParentFragment
|
||||||
|
Reference in New Issue
Block a user