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,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) {
|
||||||
|
Reference in New Issue
Block a user