Fix sentence capitalization of locale names.

It turns out that out previous CL [1] is not sufficient to address all
the requests regarding capitalization.

With [1], now InputMethodSubtype#getLocaleDisplayName() returns a locale
name whose capitalization is basically optimized to be used as a list
item.  It works well for list UI, but on a UI element that looks like a
sentence text, we still need to capitalize the first character.

This CL takes care of those UI elements in the Settings app.  This CL
also addresses a remaining TODO about locale-unaware text formatting by
using about android.icu.text.ListFormatter.

  [1]: If105082ce703db7a86738455db7e9fb37f3c6fe8
       e489baf96df2837a3a63b626d9023a4a8b322c28

Bug: 29035638
Change-Id: I59f93f0bc067cdd87c6065c972a7da3cde1128f9
This commit is contained in:
Yohei Yukawa
2016-06-09 15:01:52 -07:00
parent b43b49c643
commit 91c23ca03f
6 changed files with 68 additions and 30 deletions

View File

@@ -496,8 +496,8 @@ public final class PhysicalKeyboardFragment extends SettingsPreferenceFragment
@NonNull Context context, @NonNull InputMethodInfo imi,
@Nullable InputMethodSubtype imSubtype) {
if (imSubtype != null) {
return imSubtype.getDisplayName(
context, imi.getPackageName(), imi.getServiceInfo().applicationInfo);
return InputMethodAndSubtypeUtil.getSubtypeLocaleNameAsSentence(
imSubtype, context, imi);
}
return null;
}