Fix an NPE
It seems the user dictionary fragment does not tolerate being
called by name, and needs to be called only by action.
Bug: 5242122
Change-Id: I6b954db549b98d4d0076fdce8e00d336fc18b6e3
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index 5c85374..65e9169 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -141,8 +141,10 @@
// not present or disabled. In this case we need to remove the preference.
getPreferenceScreen().removePreference(userDictionaryPreference);
} else if (localeList.size() <= 1) {
+ final Intent intent =
+ new Intent(UserDictionaryList.USER_DICTIONARY_SETTINGS_INTENT_ACTION);
userDictionaryPreference.setTitle(R.string.user_dict_single_settings_title);
- userDictionaryPreference.setFragment(UserDictionarySettings.class.getName());
+ userDictionaryPreference.setIntent(intent);
// If the size of localeList is 0, we don't set the locale parameter in the
// extras. This will be interpreted by the UserDictionarySettings class as
// meaning "the current locale".
diff --git a/src/com/android/settings/inputmethod/UserDictionaryList.java b/src/com/android/settings/inputmethod/UserDictionaryList.java
index 232a6db..894dd8a 100644
--- a/src/com/android/settings/inputmethod/UserDictionaryList.java
+++ b/src/com/android/settings/inputmethod/UserDictionaryList.java
@@ -35,7 +35,7 @@
public class UserDictionaryList extends SettingsPreferenceFragment {
- private static final String USER_DICTIONARY_SETTINGS_INTENT_ACTION =
+ public static final String USER_DICTIONARY_SETTINGS_INTENT_ACTION =
"android.settings.USER_DICTIONARY_SETTINGS";
@Override
@@ -101,7 +101,6 @@
newPref.getExtras().putString("locale", locale);
}
newPref.setIntent(intent);
- newPref.setFragment(UserDictionarySettings.class.getName());
return newPref;
}