Refactor SubtypeLocale to hold Resources
Change-Id: Ia667bc2d406d66c87215dd3b9569f36f4642cfe0main
parent
40651c8cf7
commit
4b3cae9b0c
|
@ -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.
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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<String, String> 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<String> getSubtypeName = new RunInLocale<String>() {
|
||||
@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
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<InputMethodSubtype> 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));
|
||||
|
|
|
@ -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<Void> tests = new RunInLocale<Void>() {
|
||||
@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<Void> tests = new RunInLocale<Void>() {
|
||||
@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<Void> tests = new RunInLocale<Void>() {
|
||||
@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;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue