Fix crash after adding a word to the user dictionary.
Bug: 3407951 Make sure that the parent fragment is a SettingsPreferenceFragment. Otherwise it's not necessary to manage the mDialogFragment. Change-Id: I331a3507fe11a7331ff24ecf64fe8c8c3f613636
This commit is contained in:
@@ -182,8 +182,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment
|
|||||||
+ DialogCreatable.class.getName());
|
+ DialogCreatable.class.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// restore mDialogFragment in mParentFragment
|
// This dialog fragment could be created from non-SettingsPreferenceFragment
|
||||||
((SettingsPreferenceFragment) mParentFragment).mDialogFragment = this;
|
if (mParentFragment instanceof SettingsPreferenceFragment) {
|
||||||
|
// restore mDialogFragment in mParentFragment
|
||||||
|
((SettingsPreferenceFragment) mParentFragment).mDialogFragment = this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId);
|
return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId);
|
||||||
}
|
}
|
||||||
@@ -203,6 +206,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment
|
|||||||
mOnDismissListener.onDismiss(dialog);
|
mOnDismissListener.onDismiss(dialog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getDialogId() {
|
public int getDialogId() {
|
||||||
return mDialogId;
|
return mDialogId;
|
||||||
}
|
}
|
||||||
@@ -211,9 +215,12 @@ public class SettingsPreferenceFragment extends PreferenceFragment
|
|||||||
public void onDetach() {
|
public void onDetach() {
|
||||||
super.onDetach();
|
super.onDetach();
|
||||||
|
|
||||||
// in case the dialog is not explicitly removed by removeDialog()
|
// This dialog fragment could be created from non-SettingsPreferenceFragment
|
||||||
if (((SettingsPreferenceFragment) mParentFragment).mDialogFragment == this) {
|
if (mParentFragment instanceof SettingsPreferenceFragment) {
|
||||||
((SettingsPreferenceFragment) mParentFragment).mDialogFragment = null;
|
// in case the dialog is not explicitly removed by removeDialog()
|
||||||
|
if (((SettingsPreferenceFragment) mParentFragment).mDialogFragment == this) {
|
||||||
|
((SettingsPreferenceFragment) mParentFragment).mDialogFragment = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user