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
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 @@
                                         + 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 @@
                 mOnDismissListener.onDismiss(dialog);
             }
         }
+
         public int getDialogId() {
             return mDialogId;
         }
@@ -211,9 +215,12 @@
         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;
+                }
             }
         }
     }