From 757c12556b5336cce4962b18967a0da20c871329 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Sat, 5 May 2012 16:14:04 +0900 Subject: Get subtype name string resource from its own locale Bug: 6443655 Change-Id: Ib9ee55178f0d0f885aa0640b9cba4a179cf0c566 --- .../com/android/inputmethod/latin/SubtypeLocale.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'java/src') diff --git a/java/src/com/android/inputmethod/latin/SubtypeLocale.java b/java/src/com/android/inputmethod/latin/SubtypeLocale.java index 9f89f9ee1..7694b56fc 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeLocale.java +++ b/java/src/com/android/inputmethod/latin/SubtypeLocale.java @@ -22,6 +22,8 @@ import android.content.Context; import android.content.res.Resources; import android.view.inputmethod.InputMethodSubtype; +import com.android.inputmethod.latin.LocaleUtils.RunInLocale; + import java.util.HashMap; import java.util.Locale; @@ -121,18 +123,27 @@ public class SubtypeLocale { // fr azerty F Français // fr_CA qwerty F Français (Canada) // de qwertz F Deutsch - // zz qwerty F No language (QWERTY) + // zz qwerty F No language (QWERTY) in system locale // fr qwertz T Français (QWERTZ) // de qwerty T Deutsch (QWERTY) // en_US azerty T English (US) (AZERTY) - // zz azerty T No language (AZERTY) + // zz azerty T No language (AZERTY) in system locale public static String getSubtypeDisplayName(InputMethodSubtype subtype, Resources res) { // TODO: Remove this check when InputMethodManager.getLastInputMethodSubtype is // fixed. if (!ImfUtils.checkIfSubtypeBelongsToThisIme(sContext, subtype)) return ""; final String language = getSubtypeLocaleDisplayName(subtype.getLocale()); - return res.getString(subtype.getNameResId(), language); + final int nameResId = subtype.getNameResId(); + final RunInLocale getSubtypeName = new RunInLocale() { + @Override + protected String job(Resources res) { + return res.getString(nameResId, language); + } + }; + final Locale locale = isNoLanguage(subtype) + ? res.getConfiguration().locale : getSubtypeLocale(subtype); + return getSubtypeName.runInLocale(res, locale); } public static boolean isNoLanguage(InputMethodSubtype subtype) { -- cgit v1.2.3-83-g751a