Merge "Use getDisplayName for the name of InputMethodSubtype"
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
index 6e1d4d1..43d54a2 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
@@ -188,7 +188,8 @@
 
     private PreferenceScreen createPreferenceHierarchy() {
         // Root
-        PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
+        final PreferenceScreen root = getPreferenceManager().createPreferenceScreen(getActivity());
+        final Context context = getActivity();
 
         int N = (mInputMethodProperties == null ? 0 : mInputMethodProperties.size());
 
@@ -202,7 +203,7 @@
             if (!TextUtils.isEmpty(mInputMethodId) && !mInputMethodId.equals(imiId)) {
                 continue;
             }
-            PreferenceCategory keyboardSettingsCategory = new PreferenceCategory(getActivity());
+            PreferenceCategory keyboardSettingsCategory = new PreferenceCategory(context);
             root.addPreference(keyboardSettingsCategory);
             PackageManager pm = getPackageManager();
             CharSequence label = imi.loadLabel(pm);
@@ -210,31 +211,22 @@
             keyboardSettingsCategory.setTitle(label);
             keyboardSettingsCategory.setKey(imiId);
             // TODO: Use toggle Preference if images are ready.
-            CheckBoxPreference autoCB = new CheckBoxPreference(getActivity());
+            CheckBoxPreference autoCB = new CheckBoxPreference(context);
             autoCB.setTitle(R.string.use_system_language_to_select_input_method_subtypes);
             mSubtypeAutoSelectionCBMap.put(imiId, autoCB);
             keyboardSettingsCategory.addPreference(autoCB);
 
-            PreferenceCategory activeInputMethodsCategory = new PreferenceCategory(getActivity());
+            PreferenceCategory activeInputMethodsCategory = new PreferenceCategory(context);
             activeInputMethodsCategory.setTitle(R.string.active_input_method_subtypes);
             root.addPreference(activeInputMethodsCategory);
 
             ArrayList<Preference> subtypePreferences = new ArrayList<Preference>();
             if (subtypeCount > 0) {
                 for (int j = 0; j < subtypeCount; ++j) {
-                    InputMethodSubtype subtype = imi.getSubtypeAt(j);
-                    CharSequence subtypeLabel;
-                    int nameResId = subtype.getNameResId();
-                    if (nameResId != 0) {
-                        subtypeLabel = pm.getText(imi.getPackageName(), nameResId,
-                                imi.getServiceInfo().applicationInfo);
-                    } else {
-                        String mode = subtype.getMode();
-                        CharSequence language = subtype.getLocale();
-                        subtypeLabel = (mode == null ? "" : mode) + ","
-                                + (language == null ? "" : language);
-                    }
-                    CheckBoxPreference chkbxPref = new CheckBoxPreference(getActivity());
+                    final InputMethodSubtype subtype = imi.getSubtypeAt(j);
+                    final CharSequence subtypeLabel = subtype.getDisplayName(context,
+                            imi.getPackageName(), imi.getServiceInfo().applicationInfo);
+                    final CheckBoxPreference chkbxPref = new CheckBoxPreference(context);
                     chkbxPref.setKey(imiId + subtype.hashCode());
                     chkbxPref.setTitle(subtypeLabel);
                     activeInputMethodsCategory.addPreference(chkbxPref);
diff --git a/src/com/android/settings/inputmethod/InputMethodConfig.java b/src/com/android/settings/inputmethod/InputMethodConfig.java
index 2cfe35d..393292e 100644
--- a/src/com/android/settings/inputmethod/InputMethodConfig.java
+++ b/src/com/android/settings/inputmethod/InputMethodConfig.java
@@ -266,7 +266,6 @@
     private void updateActiveInputMethodsSummary() {
         final InputMethodManager imm =
                 (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
-        final PackageManager pm = getPackageManager();
         for (InputMethodInfo imi: mActiveInputMethodsPrefMap.keySet()) {
             Preference pref = mActiveInputMethodsPrefMap.get(imi);
             List<InputMethodSubtype> subtypes = imm.getEnabledInputMethodSubtypeList(imi, true);
@@ -276,8 +275,9 @@
                 if (subtypeAdded) {
                     summary.append(", ");
                 }
-                summary.append(pm.getText(imi.getPackageName(), subtype.getNameResId(),
-                        imi.getServiceInfo().applicationInfo));
+                final CharSequence subtypeLabel = subtype.getDisplayName(getActivity(),
+                        imi.getPackageName(), imi.getServiceInfo().applicationInfo);
+                summary.append(subtypeLabel);
                 subtypeAdded = true;
             }
             pref.setSummary(summary.toString());