diff options
author | Amith Yamasani <yamasani@google.com> | 2011-01-31 12:46:57 -0800 |
---|---|---|
committer | Amith Yamasani <yamasani@google.com> | 2011-01-31 12:46:57 -0800 |
commit | 8875edede1f441f66578feb4d09eb314ac40c25e (patch) | |
tree | f39a4a3113876f5c0781b5c2e1ce52940855b146 /src/com/android/settings/SettingsPreferenceFragment.java | |
parent | 171412000a95ce35fd3461afe7bcc5b7f2f210f4 (diff) | |
download | packages_apps_Settings-8875edede1f441f66578feb4d09eb314ac40c25e.zip packages_apps_Settings-8875edede1f441f66578feb4d09eb314ac40c25e.tar.gz packages_apps_Settings-8875edede1f441f66578feb4d09eb314ac40c25e.tar.bz2 |
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
Diffstat (limited to 'src/com/android/settings/SettingsPreferenceFragment.java')
-rw-r--r-- | src/com/android/settings/SettingsPreferenceFragment.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java index 17bf02d..bd9e331 100644 --- a/src/com/android/settings/SettingsPreferenceFragment.java +++ b/src/com/android/settings/SettingsPreferenceFragment.java @@ -182,8 +182,11 @@ public class SettingsPreferenceFragment extends PreferenceFragment + DialogCreatable.class.getName()); } } - // restore mDialogFragment in mParentFragment - ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = this; + // This dialog fragment could be created from non-SettingsPreferenceFragment + if (mParentFragment instanceof SettingsPreferenceFragment) { + // restore mDialogFragment in mParentFragment + ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = this; + } } return ((DialogCreatable) mParentFragment).onCreateDialog(mDialogId); } @@ -203,6 +206,7 @@ public class SettingsPreferenceFragment extends PreferenceFragment mOnDismissListener.onDismiss(dialog); } } + public int getDialogId() { return mDialogId; } @@ -211,9 +215,12 @@ public class SettingsPreferenceFragment extends PreferenceFragment public void onDetach() { super.onDetach(); - // in case the dialog is not explicitly removed by removeDialog() - if (((SettingsPreferenceFragment) mParentFragment).mDialogFragment == this) { - ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = null; + // This dialog fragment could be created from non-SettingsPreferenceFragment + if (mParentFragment instanceof SettingsPreferenceFragment) { + // in case the dialog is not explicitly removed by removeDialog() + if (((SettingsPreferenceFragment) mParentFragment).mDialogFragment == this) { + ((SettingsPreferenceFragment) mParentFragment).mDialogFragment = null; + } } } } |