From 4b3cae9b0cbd5bf30a1c8da383ff247f9c2afc5a Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Wed, 23 Jan 2013 16:23:11 +0900 Subject: [PATCH] Refactor SubtypeLocale to hold Resources Change-Id: Ia667bc2d406d66c87215dd3b9569f36f4642cfe0 --- .../keyboard/MainKeyboardView.java | 6 +- .../latin/AdditionalSubtypeSettings.java | 7 +- .../inputmethod/latin/SettingsFragment.java | 2 +- .../inputmethod/latin/SubtypeLocale.java | 43 +++--- .../inputmethod/latin/SubtypeSwitcher.java | 3 +- .../keyboard/SpacebarTextTests.java | 31 ++--- .../inputmethod/latin/SubtypeLocaleTests.java | 130 ++++++++---------- 7 files changed, 106 insertions(+), 116 deletions(-) diff --git a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java index 28a22f35c..9e3eb16f5 100644 --- a/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/MainKeyboardView.java @@ -1371,7 +1371,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack private String layoutLanguageOnSpacebar(final Paint paint, final InputMethodSubtype subtype, final int width) { // Choose appropriate language name to fit into the width. - final String fullText = getFullDisplayName(subtype, getResources()); + final String fullText = getFullDisplayName(subtype); if (fitsTextIntoWidth(width, fullText, paint)) { return fullText; } @@ -1445,12 +1445,12 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack // zz azerty T AZERTY AZERTY // Get InputMethodSubtype's full display name in its locale. - static String getFullDisplayName(final InputMethodSubtype subtype, final Resources res) { + static String getFullDisplayName(final InputMethodSubtype subtype) { if (SubtypeLocale.isNoLanguage(subtype)) { return SubtypeLocale.getKeyboardLayoutSetDisplayName(subtype); } - return SubtypeLocale.getSubtypeDisplayName(subtype, res); + return SubtypeLocale.getSubtypeDisplayName(subtype); } // Get InputMethodSubtype's short display name in its locale. diff --git a/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java b/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java index 9e5e18353..a56c78bcd 100644 --- a/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java +++ b/java/src/com/android/inputmethod/latin/AdditionalSubtypeSettings.java @@ -103,7 +103,7 @@ public final class AdditionalSubtypeSettings extends PreferenceFragment { if (DEBUG_SUBTYPE_ID) { android.util.Log.d(TAG, String.format("%-6s 0x%08x %11d %s", subtype.getLocale(), subtype.hashCode(), subtype.hashCode(), - SubtypeLocale.getSubtypeDisplayName(subtype, context.getResources()))); + SubtypeLocale.getSubtypeDisplayName(subtype))); } if (subtype.containsExtraValueKey(ASCII_CAPABLE)) { items.add(createItem(context, subtype.getLocale())); @@ -205,8 +205,7 @@ public final class AdditionalSubtypeSettings extends PreferenceFragment { setDialogTitle(R.string.add_style); setKey(KEY_NEW_SUBTYPE); } else { - final String displayName = SubtypeLocale.getSubtypeDisplayName( - subtype, getContext().getResources()); + final String displayName = SubtypeLocale.getSubtypeDisplayName(subtype); setTitle(displayName); setDialogTitle(displayName); setKey(KEY_PREFIX + subtype.getLocale() + "_" @@ -498,7 +497,7 @@ public final class AdditionalSubtypeSettings extends PreferenceFragment { final Context context = getActivity(); final Resources res = context.getResources(); final String message = res.getString(R.string.custom_input_style_already_exists, - SubtypeLocale.getSubtypeDisplayName(subtype, res)); + SubtypeLocale.getSubtypeDisplayName(subtype)); Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); } diff --git a/java/src/com/android/inputmethod/latin/SettingsFragment.java b/java/src/com/android/inputmethod/latin/SettingsFragment.java index afe6f3594..5c337ff86 100644 --- a/java/src/com/android/inputmethod/latin/SettingsFragment.java +++ b/java/src/com/android/inputmethod/latin/SettingsFragment.java @@ -236,7 +236,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment final StringBuilder styles = new StringBuilder(); for (final InputMethodSubtype subtype : subtypes) { if (styles.length() > 0) styles.append(", "); - styles.append(SubtypeLocale.getSubtypeDisplayName(subtype, res)); + styles.append(SubtypeLocale.getSubtypeDisplayName(subtype)); } customInputStyles.setSummary(styles); } diff --git a/java/src/com/android/inputmethod/latin/SubtypeLocale.java b/java/src/com/android/inputmethod/latin/SubtypeLocale.java index 370a6594b..068c34ed6 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeLocale.java +++ b/java/src/com/android/inputmethod/latin/SubtypeLocale.java @@ -42,6 +42,7 @@ public final class SubtypeLocale { public static final int UNKNOWN_KEYBOARD_LAYOUT = R.string.subtype_generic; private static boolean sInitialized = false; + private static Resources sResources; private static String[] sPredefinedKeyboardLayoutSet; // Keyboard layout to its display name map. private static final HashMap sKeyboardLayoutToDisplayNameMap = @@ -71,10 +72,11 @@ public final class SubtypeLocale { } // Note that this initialization method can be called multiple times. - public static synchronized void init(Context context) { + public static synchronized void init(final Context context) { if (sInitialized) return; final Resources res = context.getResources(); + sResources = res; final String[] predefinedLayoutSet = res.getStringArray(R.array.predefined_layouts); sPredefinedKeyboardLayoutSet = predefinedLayoutSet; @@ -121,15 +123,15 @@ public final class SubtypeLocale { return sPredefinedKeyboardLayoutSet; } - public static boolean isExceptionalLocale(String localeString) { + public static boolean isExceptionalLocale(final String localeString) { return sExceptionalLocaleToWithLayoutNameIdsMap.containsKey(localeString); } - private static final String getNoLanguageLayoutKey(String keyboardLayoutName) { + private static final String getNoLanguageLayoutKey(final String keyboardLayoutName) { return NO_LANGUAGE + "_" + keyboardLayoutName; } - public static int getSubtypeNameId(String localeString, String keyboardLayoutName) { + public static int getSubtypeNameId(final String localeString, final String keyboardLayoutName) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && isExceptionalLocale(localeString)) { return sExceptionalLocaleToWithLayoutNameIdsMap.get(localeString); @@ -141,7 +143,7 @@ public final class SubtypeLocale { return nameId == null ? UNKNOWN_KEYBOARD_LAYOUT : nameId; } - public static String getSubtypeLocaleDisplayName(String localeString) { + public static String getSubtypeLocaleDisplayName(final String localeString) { final String exceptionalValue = sExceptionalDisplayNamesMap.get(localeString); if (exceptionalValue != null) { return exceptionalValue; @@ -166,12 +168,17 @@ public final class SubtypeLocale { // en_US azerty T English (US) (AZERTY) // zz azerty T No language (AZERTY) in system locale - public static String getSubtypeDisplayName(final InputMethodSubtype subtype, Resources res) { - final String replacementString = - (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN - && subtype.containsExtraValueKey(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME)) - ? subtype.getExtraValueOf(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME) - : getSubtypeLocaleDisplayName(subtype.getLocale()); + private static String getReplacementString(final InputMethodSubtype subtype) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN + && subtype.containsExtraValueKey(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME)) { + return subtype.getExtraValueOf(UNTRANSLATABLE_STRING_IN_SUBTYPE_NAME); + } else { + return getSubtypeLocaleDisplayName(subtype.getLocale()); + } + } + + public static String getSubtypeDisplayName(final InputMethodSubtype subtype) { + final String replacementString = getReplacementString(subtype); final int nameResId = subtype.getNameResId(); final RunInLocale getSubtypeName = new RunInLocale() { @Override @@ -190,30 +197,30 @@ public final class SubtypeLocale { } }; final Locale locale = isNoLanguage(subtype) - ? res.getConfiguration().locale : getSubtypeLocale(subtype); - return getSubtypeName.runInLocale(res, locale); + ? sResources.getConfiguration().locale : getSubtypeLocale(subtype); + return getSubtypeName.runInLocale(sResources, locale); } - public static boolean isNoLanguage(InputMethodSubtype subtype) { + public static boolean isNoLanguage(final InputMethodSubtype subtype) { final String localeString = subtype.getLocale(); return localeString.equals(NO_LANGUAGE); } - public static Locale getSubtypeLocale(InputMethodSubtype subtype) { + public static Locale getSubtypeLocale(final InputMethodSubtype subtype) { final String localeString = subtype.getLocale(); return LocaleUtils.constructLocaleFromString(localeString); } - public static String getKeyboardLayoutSetDisplayName(InputMethodSubtype subtype) { + public static String getKeyboardLayoutSetDisplayName(final InputMethodSubtype subtype) { final String layoutName = getKeyboardLayoutSetName(subtype); return getKeyboardLayoutSetDisplayName(layoutName); } - public static String getKeyboardLayoutSetDisplayName(String layoutName) { + public static String getKeyboardLayoutSetDisplayName(final String layoutName) { return sKeyboardLayoutToDisplayNameMap.get(layoutName); } - public static String getKeyboardLayoutSetName(InputMethodSubtype subtype) { + public static String getKeyboardLayoutSetName(final InputMethodSubtype subtype) { String keyboardLayoutSet = subtype.getExtraValueOf(KEYBOARD_LAYOUT_SET); if (keyboardLayoutSet == null) { // This subtype doesn't have a keyboardLayoutSet extra value, so lookup its keyboard diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java index eb0ec3990..2f9e34ff1 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java +++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java @@ -151,8 +151,7 @@ public final class SubtypeSwitcher { // Update the current subtype. LatinIME.onCurrentInputMethodSubtypeChanged calls this function. public void onSubtypeChanged(final InputMethodSubtype newSubtype) { if (DBG) { - Log.w(TAG, "onSubtypeChanged: " + SubtypeLocale.getSubtypeDisplayName( - newSubtype, mResources)); + Log.w(TAG, "onSubtypeChanged: " + SubtypeLocale.getSubtypeDisplayName(newSubtype)); } final Locale newLocale = SubtypeLocale.getSubtypeLocale(newSubtype); diff --git a/tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java b/tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java index 015c2711c..4db54477c 100644 --- a/tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java +++ b/tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java @@ -17,7 +17,6 @@ package com.android.inputmethod.keyboard; import android.content.Context; -import android.content.res.Resources; import android.test.AndroidTestCase; import android.view.inputmethod.InputMethodSubtype; @@ -35,7 +34,6 @@ public class SpacebarTextTests extends AndroidTestCase { private final ArrayList mSubtypesList = CollectionUtils.newArrayList(); private RichInputMethodManager mRichImm; - private Resources mRes; @Override protected void setUp() throws Exception { @@ -43,14 +41,13 @@ public class SpacebarTextTests extends AndroidTestCase { final Context context = getContext(); RichInputMethodManager.init(context); mRichImm = RichInputMethodManager.getInstance(); - mRes = context.getResources(); SubtypeLocale.init(context); } public void testAllFullDisplayName() { for (final InputMethodSubtype subtype : mSubtypesList) { - final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype, mRes); - final String spacebarText = MainKeyboardView.getFullDisplayName(subtype, mRes); + final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); + final String spacebarText = MainKeyboardView.getFullDisplayName(subtype); final String languageName = SubtypeLocale.getSubtypeLocaleDisplayName(subtype.getLocale()); if (SubtypeLocale.isNoLanguage(subtype)) { @@ -63,7 +60,7 @@ public class SpacebarTextTests extends AndroidTestCase { public void testAllMiddleDisplayName() { for (final InputMethodSubtype subtype : mSubtypesList) { - final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype, mRes); + final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final String spacebarText = MainKeyboardView.getMiddleDisplayName(subtype); if (SubtypeLocale.isNoLanguage(subtype)) { assertEquals(subtypeName, @@ -78,7 +75,7 @@ public class SpacebarTextTests extends AndroidTestCase { public void testAllShortDisplayName() { for (final InputMethodSubtype subtype : mSubtypesList) { - final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype, mRes); + final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final String spacebarText = MainKeyboardView.getShortDisplayName(subtype); final String languageCode = StringUtils.toTitleCase(locale.getLanguage(), locale); @@ -120,17 +117,17 @@ public class SpacebarTextTests extends AndroidTestCase { SubtypeLocale.NO_LANGUAGE, "qwerty"); assertEquals("en_US", "English (US)", - MainKeyboardView.getFullDisplayName(EN_US, mRes)); + MainKeyboardView.getFullDisplayName(EN_US)); assertEquals("en_GB", "English (UK)", - MainKeyboardView.getFullDisplayName(EN_GB, mRes)); + MainKeyboardView.getFullDisplayName(EN_GB)); assertEquals("fr ", "Français", - MainKeyboardView.getFullDisplayName(FR, mRes)); + MainKeyboardView.getFullDisplayName(FR)); assertEquals("fr_CA", "Français (Canada)", - MainKeyboardView.getFullDisplayName(FR_CA, mRes)); + MainKeyboardView.getFullDisplayName(FR_CA)); assertEquals("de ", "Deutsch", - MainKeyboardView.getFullDisplayName(DE, mRes)); + MainKeyboardView.getFullDisplayName(DE)); assertEquals("zz ", "QWERTY", - MainKeyboardView.getFullDisplayName(ZZ, mRes)); + MainKeyboardView.getFullDisplayName(ZZ)); assertEquals("en_US", "English", MainKeyboardView.getMiddleDisplayName(EN_US)); assertEquals("en_GB", "English", MainKeyboardView.getMiddleDisplayName(EN_GB)); @@ -158,13 +155,13 @@ public class SpacebarTextTests extends AndroidTestCase { SubtypeLocale.NO_LANGUAGE, "azerty", null); assertEquals("fr qwertz", "Français (QWERTZ)", - MainKeyboardView.getFullDisplayName(FR_QWERTZ, mRes)); + MainKeyboardView.getFullDisplayName(FR_QWERTZ)); assertEquals("de qwerty", "Deutsch (QWERTY)", - MainKeyboardView.getFullDisplayName(DE_QWERTY, mRes)); + MainKeyboardView.getFullDisplayName(DE_QWERTY)); assertEquals("en_US azerty", "English (US) (AZERTY)", - MainKeyboardView.getFullDisplayName(US_AZERTY, mRes)); + MainKeyboardView.getFullDisplayName(US_AZERTY)); assertEquals("zz azerty", "AZERTY", - MainKeyboardView.getFullDisplayName(ZZ_AZERTY, mRes)); + MainKeyboardView.getFullDisplayName(ZZ_AZERTY)); assertEquals("fr qwertz", "Français", MainKeyboardView.getMiddleDisplayName(FR_QWERTZ)); assertEquals("de qwerty", "Deutsch", MainKeyboardView.getMiddleDisplayName(DE_QWERTY)); diff --git a/tests/src/com/android/inputmethod/latin/SubtypeLocaleTests.java b/tests/src/com/android/inputmethod/latin/SubtypeLocaleTests.java index 4e81de668..9af6dbc74 100644 --- a/tests/src/com/android/inputmethod/latin/SubtypeLocaleTests.java +++ b/tests/src/com/android/inputmethod/latin/SubtypeLocaleTests.java @@ -33,6 +33,18 @@ public class SubtypeLocaleTests extends AndroidTestCase { private RichInputMethodManager mRichImm; private Resources mRes; + InputMethodSubtype EN_US; + InputMethodSubtype EN_GB; + InputMethodSubtype ES_US; + InputMethodSubtype FR; + InputMethodSubtype FR_CA; + InputMethodSubtype DE; + InputMethodSubtype ZZ; + InputMethodSubtype DE_QWERTY; + InputMethodSubtype FR_QWERTZ; + InputMethodSubtype US_AZERTY; + InputMethodSubtype ZZ_AZERTY; + @Override protected void setUp() throws Exception { super.setUp(); @@ -41,11 +53,35 @@ public class SubtypeLocaleTests extends AndroidTestCase { mRichImm = RichInputMethodManager.getInstance(); mRes = context.getResources(); SubtypeLocale.init(context); + + EN_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + Locale.US.toString(), "qwerty"); + EN_GB = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + Locale.UK.toString(), "qwerty"); + ES_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + "es_US", "spanish"); + FR = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + Locale.FRENCH.toString(), "azerty"); + FR_CA = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + Locale.CANADA_FRENCH.toString(), "qwerty"); + DE = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + Locale.GERMAN.toString(), "qwertz"); + ZZ = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( + SubtypeLocale.NO_LANGUAGE, "qwerty"); + DE_QWERTY = AdditionalSubtype.createAdditionalSubtype( + Locale.GERMAN.toString(), "qwerty", null); + FR_QWERTZ = AdditionalSubtype.createAdditionalSubtype( + Locale.FRENCH.toString(), "qwertz", null); + US_AZERTY = AdditionalSubtype.createAdditionalSubtype( + Locale.US.toString(), "azerty", null); + ZZ_AZERTY = AdditionalSubtype.createAdditionalSubtype( + SubtypeLocale.NO_LANGUAGE, "azerty", null); + } public void testAllFullDisplayName() { for (final InputMethodSubtype subtype : mSubtypesList) { - final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype, mRes); + final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); if (SubtypeLocale.isNoLanguage(subtype)) { final String noLanguage = mRes.getString(R.string.subtype_no_language); assertTrue(subtypeName, subtypeName.contains(noLanguage)); @@ -74,21 +110,6 @@ public class SubtypeLocaleTests extends AndroidTestCase { // zz azerty T No language (AZERTY) in system locale public void testPredefinedSubtypesInEnglish() { - final InputMethodSubtype EN_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.US.toString(), "qwerty"); - final InputMethodSubtype EN_GB = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.UK.toString(), "qwerty"); - final InputMethodSubtype ES_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - "es_US", "spanish"); - final InputMethodSubtype FR = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.FRENCH.toString(), "azerty"); - final InputMethodSubtype FR_CA = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.CANADA_FRENCH.toString(), "qwerty"); - final InputMethodSubtype DE = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.GERMAN.toString(), "qwertz"); - final InputMethodSubtype ZZ = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - SubtypeLocale.NO_LANGUAGE, "qwerty"); - assertEquals("en_US", "qwerty", SubtypeLocale.getKeyboardLayoutSetName(EN_US)); assertEquals("en_GB", "qwerty", SubtypeLocale.getKeyboardLayoutSetName(EN_GB)); assertEquals("es_US", "spanish", SubtypeLocale.getKeyboardLayoutSetName(ES_US)); @@ -101,19 +122,19 @@ public class SubtypeLocaleTests extends AndroidTestCase { @Override protected Void job(Resources res) { assertEquals("en_US", "English (US)", - SubtypeLocale.getSubtypeDisplayName(EN_US, res)); + SubtypeLocale.getSubtypeDisplayName(EN_US)); assertEquals("en_GB", "English (UK)", - SubtypeLocale.getSubtypeDisplayName(EN_GB, res)); + SubtypeLocale.getSubtypeDisplayName(EN_GB)); assertEquals("es_US", "Español (EE.UU.)", - SubtypeLocale.getSubtypeDisplayName(ES_US, res)); + SubtypeLocale.getSubtypeDisplayName(ES_US)); assertEquals("fr ", "Français", - SubtypeLocale.getSubtypeDisplayName(FR, res)); + SubtypeLocale.getSubtypeDisplayName(FR)); assertEquals("fr_CA", "Français (Canada)", - SubtypeLocale.getSubtypeDisplayName(FR_CA, res)); + SubtypeLocale.getSubtypeDisplayName(FR_CA)); assertEquals("de ", "Deutsch", - SubtypeLocale.getSubtypeDisplayName(DE, res)); + SubtypeLocale.getSubtypeDisplayName(DE)); assertEquals("zz ", "No language (QWERTY)", - SubtypeLocale.getSubtypeDisplayName(ZZ, res)); + SubtypeLocale.getSubtypeDisplayName(ZZ)); return null; } }; @@ -121,26 +142,17 @@ public class SubtypeLocaleTests extends AndroidTestCase { } public void testAdditionalSubtypesInEnglish() { - final InputMethodSubtype DE_QWERTY = AdditionalSubtype.createAdditionalSubtype( - Locale.GERMAN.toString(), "qwerty", null); - final InputMethodSubtype FR_QWERTZ = AdditionalSubtype.createAdditionalSubtype( - Locale.FRENCH.toString(), "qwertz", null); - final InputMethodSubtype US_AZERTY = AdditionalSubtype.createAdditionalSubtype( - Locale.US.toString(), "azerty", null); - final InputMethodSubtype ZZ_AZERTY = AdditionalSubtype.createAdditionalSubtype( - SubtypeLocale.NO_LANGUAGE, "azerty", null); - final RunInLocale tests = new RunInLocale() { @Override protected Void job(Resources res) { assertEquals("fr qwertz", "Français (QWERTZ)", - SubtypeLocale.getSubtypeDisplayName(FR_QWERTZ, res)); + SubtypeLocale.getSubtypeDisplayName(FR_QWERTZ)); assertEquals("de qwerty", "Deutsch (QWERTY)", - SubtypeLocale.getSubtypeDisplayName(DE_QWERTY, res)); + SubtypeLocale.getSubtypeDisplayName(DE_QWERTY)); assertEquals("en_US azerty", "English (US) (AZERTY)", - SubtypeLocale.getSubtypeDisplayName(US_AZERTY, res)); + SubtypeLocale.getSubtypeDisplayName(US_AZERTY)); assertEquals("zz azerty", "No language (AZERTY)", - SubtypeLocale.getSubtypeDisplayName(ZZ_AZERTY, res)); + SubtypeLocale.getSubtypeDisplayName(ZZ_AZERTY)); return null; } }; @@ -148,38 +160,23 @@ public class SubtypeLocaleTests extends AndroidTestCase { } public void testPredefinedSubtypesInFrench() { - final InputMethodSubtype EN_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.US.toString(), "qwerty"); - final InputMethodSubtype EN_GB = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.UK.toString(), "qwerty"); - final InputMethodSubtype ES_US = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - "es_US", "spanish"); - final InputMethodSubtype FR = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.FRENCH.toString(), "azerty"); - final InputMethodSubtype FR_CA = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.CANADA_FRENCH.toString(), "qwerty"); - final InputMethodSubtype DE = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - Locale.GERMAN.toString(), "qwertz"); - final InputMethodSubtype ZZ = mRichImm.findSubtypeByLocaleAndKeyboardLayoutSet( - SubtypeLocale.NO_LANGUAGE, "qwerty"); - final RunInLocale tests = new RunInLocale() { @Override protected Void job(Resources res) { assertEquals("en_US", "English (US)", - SubtypeLocale.getSubtypeDisplayName(EN_US, res)); + SubtypeLocale.getSubtypeDisplayName(EN_US)); assertEquals("en_GB", "English (UK)", - SubtypeLocale.getSubtypeDisplayName(EN_GB, res)); + SubtypeLocale.getSubtypeDisplayName(EN_GB)); assertEquals("es_US", "Español (EE.UU.)", - SubtypeLocale.getSubtypeDisplayName(ES_US, res)); + SubtypeLocale.getSubtypeDisplayName(ES_US)); assertEquals("fr ", "Français", - SubtypeLocale.getSubtypeDisplayName(FR, res)); + SubtypeLocale.getSubtypeDisplayName(FR)); assertEquals("fr_CA", "Français (Canada)", - SubtypeLocale.getSubtypeDisplayName(FR_CA, res)); + SubtypeLocale.getSubtypeDisplayName(FR_CA)); assertEquals("de ", "Deutsch", - SubtypeLocale.getSubtypeDisplayName(DE, res)); + SubtypeLocale.getSubtypeDisplayName(DE)); assertEquals("zz ", "Pas de langue (QWERTY)", - SubtypeLocale.getSubtypeDisplayName(ZZ, res)); + SubtypeLocale.getSubtypeDisplayName(ZZ)); return null; } }; @@ -187,26 +184,17 @@ public class SubtypeLocaleTests extends AndroidTestCase { } public void testAdditionalSubtypesInFrench() { - final InputMethodSubtype DE_QWERTY = AdditionalSubtype.createAdditionalSubtype( - Locale.GERMAN.toString(), "qwerty", null); - final InputMethodSubtype FR_QWERTZ = AdditionalSubtype.createAdditionalSubtype( - Locale.FRENCH.toString(), "qwertz", null); - final InputMethodSubtype US_AZERTY = AdditionalSubtype.createAdditionalSubtype( - Locale.US.toString(), "azerty", null); - final InputMethodSubtype ZZ_AZERTY = AdditionalSubtype.createAdditionalSubtype( - SubtypeLocale.NO_LANGUAGE, "azerty", null); - final RunInLocale tests = new RunInLocale() { @Override protected Void job(Resources res) { assertEquals("fr qwertz", "Français (QWERTZ)", - SubtypeLocale.getSubtypeDisplayName(FR_QWERTZ, res)); + SubtypeLocale.getSubtypeDisplayName(FR_QWERTZ)); assertEquals("de qwerty", "Deutsch (QWERTY)", - SubtypeLocale.getSubtypeDisplayName(DE_QWERTY, res)); + SubtypeLocale.getSubtypeDisplayName(DE_QWERTY)); assertEquals("en_US azerty", "English (US) (AZERTY)", - SubtypeLocale.getSubtypeDisplayName(US_AZERTY, res)); + SubtypeLocale.getSubtypeDisplayName(US_AZERTY)); assertEquals("zz azerty", "Aucune langue (AZERTY)", - SubtypeLocale.getSubtypeDisplayName(ZZ_AZERTY, res)); + SubtypeLocale.getSubtypeDisplayName(ZZ_AZERTY)); return null; } };