Loading java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1460,7 +1460,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack return ""; return ""; } } final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); return StringUtils.toTitleCase(locale.getLanguage(), locale); return StringUtils.capitalizeFirstCharacter(locale.getLanguage(), locale); } } // Get InputMethodSubtype's middle display name in its locale. // Get InputMethodSubtype's middle display name in its locale. Loading java/src/com/android/inputmethod/latin/StringUtils.java +10 −2 Original line number Original line Diff line number Diff line Loading @@ -106,10 +106,18 @@ public final class StringUtils { } } } } public static String capitalizeFirstCharacter(final String s, final Locale locale) { if (s.length() <= 1) { return s.toUpperCase(locale); } // Please refer to the comment below in {@link #toTitleCase(String,Locale)}. final int cutoff = s.offsetByCodePoints(0, 1); return s.substring(0, cutoff).toUpperCase(locale) + s.substring(cutoff); } public static String toTitleCase(final String s, final Locale locale) { public static String toTitleCase(final String s, final Locale locale) { if (s.length() <= 1) { if (s.length() <= 1) { // TODO: is this really correct? Shouldn't this be s.toUpperCase()? return s.toUpperCase(locale); return s; } } // TODO: fix the bugs below // TODO: fix the bugs below // - This does not work for Greek, because it returns upper case instead of title case. // - This does not work for Greek, because it returns upper case instead of title case. Loading java/src/com/android/inputmethod/latin/SubtypeLocale.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -183,7 +183,7 @@ public final class SubtypeLocale { final Locale locale = LocaleUtils.constructLocaleFromString(localeString); final Locale locale = LocaleUtils.constructLocaleFromString(localeString); displayName = locale.getDisplayName(displayLocale); displayName = locale.getDisplayName(displayLocale); } } return StringUtils.toTitleCase(displayName, displayLocale); return StringUtils.capitalizeFirstCharacter(displayName, displayLocale); } } // InputMethodSubtype's display name in its locale. // InputMethodSubtype's display name in its locale. Loading Loading @@ -243,7 +243,7 @@ public final class SubtypeLocale { } } } } }; }; return StringUtils.toTitleCase( return StringUtils.capitalizeFirstCharacter( getSubtypeName.runInLocale(sResources, displayLocale), displayLocale); getSubtypeName.runInLocale(sResources, displayLocale), displayLocale); } } Loading tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -113,7 +113,8 @@ public class SpacebarTextTests extends AndroidTestCase { final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final String spacebarText = MainKeyboardView.getShortDisplayName(subtype); final String spacebarText = MainKeyboardView.getShortDisplayName(subtype); final String languageCode = StringUtils.toTitleCase(locale.getLanguage(), locale); final String languageCode = StringUtils.capitalizeFirstCharacter( locale.getLanguage(), locale); if (SubtypeLocale.isNoLanguage(subtype)) { if (SubtypeLocale.isNoLanguage(subtype)) { assertEquals(subtypeName, "", spacebarText); assertEquals(subtypeName, "", spacebarText); } else { } else { Loading tests/src/com/android/inputmethod/latin/StringUtilsTests.java +1 −3 Original line number Original line Diff line number Diff line Loading @@ -106,9 +106,7 @@ public class StringUtilsTests extends AndroidTestCase { StringUtils.toTitleCase("iab", new Locale("tr"))); StringUtils.toTitleCase("iab", new Locale("tr"))); assertEquals("Aib", assertEquals("Aib", StringUtils.toTitleCase("AİB", new Locale("tr"))); StringUtils.toTitleCase("AİB", new Locale("tr"))); // For one character, toTitleCase returns the string as is. Not sure what the motivation assertEquals("A", // is, but that's how it works now. assertEquals("a", StringUtils.toTitleCase("a", Locale.ENGLISH)); StringUtils.toTitleCase("a", Locale.ENGLISH)); assertEquals("A", assertEquals("A", StringUtils.toTitleCase("A", Locale.ENGLISH)); StringUtils.toTitleCase("A", Locale.ENGLISH)); Loading Loading
java/src/com/android/inputmethod/keyboard/MainKeyboardView.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -1460,7 +1460,7 @@ public final class MainKeyboardView extends KeyboardView implements PointerTrack return ""; return ""; } } final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); return StringUtils.toTitleCase(locale.getLanguage(), locale); return StringUtils.capitalizeFirstCharacter(locale.getLanguage(), locale); } } // Get InputMethodSubtype's middle display name in its locale. // Get InputMethodSubtype's middle display name in its locale. Loading
java/src/com/android/inputmethod/latin/StringUtils.java +10 −2 Original line number Original line Diff line number Diff line Loading @@ -106,10 +106,18 @@ public final class StringUtils { } } } } public static String capitalizeFirstCharacter(final String s, final Locale locale) { if (s.length() <= 1) { return s.toUpperCase(locale); } // Please refer to the comment below in {@link #toTitleCase(String,Locale)}. final int cutoff = s.offsetByCodePoints(0, 1); return s.substring(0, cutoff).toUpperCase(locale) + s.substring(cutoff); } public static String toTitleCase(final String s, final Locale locale) { public static String toTitleCase(final String s, final Locale locale) { if (s.length() <= 1) { if (s.length() <= 1) { // TODO: is this really correct? Shouldn't this be s.toUpperCase()? return s.toUpperCase(locale); return s; } } // TODO: fix the bugs below // TODO: fix the bugs below // - This does not work for Greek, because it returns upper case instead of title case. // - This does not work for Greek, because it returns upper case instead of title case. Loading
java/src/com/android/inputmethod/latin/SubtypeLocale.java +2 −2 Original line number Original line Diff line number Diff line Loading @@ -183,7 +183,7 @@ public final class SubtypeLocale { final Locale locale = LocaleUtils.constructLocaleFromString(localeString); final Locale locale = LocaleUtils.constructLocaleFromString(localeString); displayName = locale.getDisplayName(displayLocale); displayName = locale.getDisplayName(displayLocale); } } return StringUtils.toTitleCase(displayName, displayLocale); return StringUtils.capitalizeFirstCharacter(displayName, displayLocale); } } // InputMethodSubtype's display name in its locale. // InputMethodSubtype's display name in its locale. Loading Loading @@ -243,7 +243,7 @@ public final class SubtypeLocale { } } } } }; }; return StringUtils.toTitleCase( return StringUtils.capitalizeFirstCharacter( getSubtypeName.runInLocale(sResources, displayLocale), displayLocale); getSubtypeName.runInLocale(sResources, displayLocale), displayLocale); } } Loading
tests/src/com/android/inputmethod/keyboard/SpacebarTextTests.java +2 −1 Original line number Original line Diff line number Diff line Loading @@ -113,7 +113,8 @@ public class SpacebarTextTests extends AndroidTestCase { final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final String subtypeName = SubtypeLocale.getSubtypeDisplayName(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final Locale locale = SubtypeLocale.getSubtypeLocale(subtype); final String spacebarText = MainKeyboardView.getShortDisplayName(subtype); final String spacebarText = MainKeyboardView.getShortDisplayName(subtype); final String languageCode = StringUtils.toTitleCase(locale.getLanguage(), locale); final String languageCode = StringUtils.capitalizeFirstCharacter( locale.getLanguage(), locale); if (SubtypeLocale.isNoLanguage(subtype)) { if (SubtypeLocale.isNoLanguage(subtype)) { assertEquals(subtypeName, "", spacebarText); assertEquals(subtypeName, "", spacebarText); } else { } else { Loading
tests/src/com/android/inputmethod/latin/StringUtilsTests.java +1 −3 Original line number Original line Diff line number Diff line Loading @@ -106,9 +106,7 @@ public class StringUtilsTests extends AndroidTestCase { StringUtils.toTitleCase("iab", new Locale("tr"))); StringUtils.toTitleCase("iab", new Locale("tr"))); assertEquals("Aib", assertEquals("Aib", StringUtils.toTitleCase("AİB", new Locale("tr"))); StringUtils.toTitleCase("AİB", new Locale("tr"))); // For one character, toTitleCase returns the string as is. Not sure what the motivation assertEquals("A", // is, but that's how it works now. assertEquals("a", StringUtils.toTitleCase("a", Locale.ENGLISH)); StringUtils.toTitleCase("a", Locale.ENGLISH)); assertEquals("A", assertEquals("A", StringUtils.toTitleCase("A", Locale.ENGLISH)); StringUtils.toTitleCase("A", Locale.ENGLISH)); Loading