summaryrefslogtreecommitdiffstats
path: root/core/java/android/view/inputmethod
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2015-02-21 02:15:48 +0900
committerYohei Yukawa <yukawa@google.com>2015-02-21 02:26:40 +0900
commitf487e0e395a4e49f28c6448339d57357667756c6 (patch)
tree558357392e163697d020f9026eeb5ed03127f019 /core/java/android/view/inputmethod
parente55524ef0482bfcf77bf1344f7fda9ef7263d32f (diff)
downloadframeworks_base-f487e0e395a4e49f28c6448339d57357667756c6.zip
frameworks_base-f487e0e395a4e49f28c6448339d57357667756c6.tar.gz
frameworks_base-f487e0e395a4e49f28c6448339d57357667756c6.tar.bz2
Normalize deprecated 2-letter language code when necessary.
This is a follow up CL for I7d932e60311b80c05be8f02c9e803f18da0e0054, which revealed that we could not use deprecated 2-letter code like "in" to query subtype which has new language codes like "id". This CL addresses the above issue by normalizing the language code with Locale#Locale(String, String) before comparing one to another. Change-Id: I26e3aa0333aa3c76c80a3c1c9090cc2b368c8e10
Diffstat (limited to 'core/java/android/view/inputmethod')
-rw-r--r--core/java/android/view/inputmethod/InputMethodSubtype.java20
1 files changed, 3 insertions, 17 deletions
diff --git a/core/java/android/view/inputmethod/InputMethodSubtype.java b/core/java/android/view/inputmethod/InputMethodSubtype.java
index 1671faa..c2f3777 100644
--- a/core/java/android/view/inputmethod/InputMethodSubtype.java
+++ b/core/java/android/view/inputmethod/InputMethodSubtype.java
@@ -23,6 +23,8 @@ import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Slog;
+import com.android.internal.inputmethod.InputMethodUtils;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -379,7 +381,7 @@ public final class InputMethodSubtype implements Parcelable {
*/
public CharSequence getDisplayName(
Context context, String packageName, ApplicationInfo appInfo) {
- final Locale locale = constructLocaleFromString(mSubtypeLocale);
+ final Locale locale = InputMethodUtils.constructLocaleFromString(mSubtypeLocale);
final String localeStr = locale != null ? locale.getDisplayName() : mSubtypeLocale;
if (mSubtypeNameResId == 0) {
return localeStr;
@@ -503,22 +505,6 @@ public final class InputMethodSubtype implements Parcelable {
}
};
- private static Locale constructLocaleFromString(String localeStr) {
- if (TextUtils.isEmpty(localeStr))
- return null;
- String[] localeParams = localeStr.split("_", 3);
- // The length of localeStr is guaranteed to always return a 1 <= value <= 3
- // because localeStr is not empty.
- if (localeParams.length == 1) {
- return new Locale(localeParams[0]);
- } else if (localeParams.length == 2) {
- return new Locale(localeParams[0], localeParams[1]);
- } else if (localeParams.length == 3) {
- return new Locale(localeParams[0], localeParams[1], localeParams[2]);
- }
- return null;
- }
-
private static int hashCodeInternal(String locale, String mode, String extraValue,
boolean isAuxiliary, boolean overridesImplicitlyEnabledSubtype,
boolean isAsciiCapable) {