Loading core/java/com/android/internal/app/LocaleStore.java +10 −5 Original line number Diff line number Diff line Loading @@ -390,13 +390,18 @@ public class LocaleStore { public static Set<LocaleInfo> transformImeLanguageTagToLocaleInfo( List<InputMethodSubtype> list) { Set<LocaleInfo> imeLocales = new HashSet<>(); Set<String> languageTagSet = new HashSet<>(); for (InputMethodSubtype subtype : list) { Locale locale = Locale.forLanguageTag(subtype.getLanguageTag()); String languageTag = subtype.getLanguageTag(); if (!languageTagSet.contains(languageTag)) { languageTagSet.add(languageTag); Locale locale = Locale.forLanguageTag(languageTag); LocaleInfo cacheInfo = getLocaleInfo(locale, sLocaleCache); LocaleInfo localeInfo = new LocaleInfo(cacheInfo); localeInfo.mSuggestionFlags |= LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE; imeLocales.add(localeInfo); } } return imeLocales; } Loading tests/Internal/src/com/android/internal/app/LocaleStoreTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,25 @@ public class LocaleStoreTest { } } @Test public void testTransformImeLanguageTagToLocaleInfo_duplicateTagFilter() { List<InputMethodSubtype> list = List.of( new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("zh-TW").build(), new InputMethodSubtypeBuilder().setLanguageTag("ja-JP").build()); Set<LocaleInfo> localeSet = LocaleStore.transformImeLanguageTagToLocaleInfo(list); Set<String> expectedLanguageTag = Set.of("en-US", "zh-TW", "ja-JP"); assertEquals(localeSet.size(), expectedLanguageTag.size()); for (LocaleInfo info : localeSet) { assertEquals(info.mSuggestionFlags, LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE); assertTrue(expectedLanguageTag.contains(info.getId())); } } @Test public void convertExplicitLocales_noExplicitLcoales_returnEmptyHashMap() { Collection<LocaleInfo> supportedLocale = getFakeSupportedLocales(); Loading Loading
core/java/com/android/internal/app/LocaleStore.java +10 −5 Original line number Diff line number Diff line Loading @@ -390,13 +390,18 @@ public class LocaleStore { public static Set<LocaleInfo> transformImeLanguageTagToLocaleInfo( List<InputMethodSubtype> list) { Set<LocaleInfo> imeLocales = new HashSet<>(); Set<String> languageTagSet = new HashSet<>(); for (InputMethodSubtype subtype : list) { Locale locale = Locale.forLanguageTag(subtype.getLanguageTag()); String languageTag = subtype.getLanguageTag(); if (!languageTagSet.contains(languageTag)) { languageTagSet.add(languageTag); Locale locale = Locale.forLanguageTag(languageTag); LocaleInfo cacheInfo = getLocaleInfo(locale, sLocaleCache); LocaleInfo localeInfo = new LocaleInfo(cacheInfo); localeInfo.mSuggestionFlags |= LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE; imeLocales.add(localeInfo); } } return imeLocales; } Loading
tests/Internal/src/com/android/internal/app/LocaleStoreTest.java +19 −0 Original line number Diff line number Diff line Loading @@ -62,6 +62,25 @@ public class LocaleStoreTest { } } @Test public void testTransformImeLanguageTagToLocaleInfo_duplicateTagFilter() { List<InputMethodSubtype> list = List.of( new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("en-US").build(), new InputMethodSubtypeBuilder().setLanguageTag("zh-TW").build(), new InputMethodSubtypeBuilder().setLanguageTag("ja-JP").build()); Set<LocaleInfo> localeSet = LocaleStore.transformImeLanguageTagToLocaleInfo(list); Set<String> expectedLanguageTag = Set.of("en-US", "zh-TW", "ja-JP"); assertEquals(localeSet.size(), expectedLanguageTag.size()); for (LocaleInfo info : localeSet) { assertEquals(info.mSuggestionFlags, LocaleInfo.SUGGESTION_TYPE_IME_LANGUAGE); assertTrue(expectedLanguageTag.contains(info.getId())); } } @Test public void convertExplicitLocales_noExplicitLcoales_returnEmptyHashMap() { Collection<LocaleInfo> supportedLocale = getFakeSupportedLocales(); Loading