aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-06-27 21:55:35 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-27 21:55:35 -0700
commit5e5cf045ca6debafcc29ae1c47afda4a3a152326 (patch)
tree2ae33aef91fab33544344fcc094c6657aceb12c4 /java/src
parent67727e34a28e3bfe3f331733b9d1e3c78294e793 (diff)
parent7f7947c97b141cbb338c5164e9e19d1ac9ff3d1c (diff)
downloadlatinime-5e5cf045ca6debafcc29ae1c47afda4a3a152326.tar.gz
latinime-5e5cf045ca6debafcc29ae1c47afda4a3a152326.tar.xz
latinime-5e5cf045ca6debafcc29ae1c47afda4a3a152326.zip
am 7f7947c9: Keep subtypes in method.xml the same as pre-JellyBean
* commit '7f7947c97b141cbb338c5164e9e19d1ac9ff3d1c': Keep subtypes in method.xml the same as pre-JellyBean
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/SubtypeLocale.java21
1 files changed, 20 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/latin/SubtypeLocale.java b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
index ca293060a..acc17ef3f 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeLocale.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeLocale.java
@@ -60,6 +60,10 @@ public class SubtypeLocale {
// Exceptional locales to display name map.
private static final HashMap<String, String> sExceptionalDisplayNamesMap =
new HashMap<String, String>();
+ // Keyboard layout set name for the subtypes that don't have a keyboardLayoutSet extra value.
+ // This is for compatibility to keep the same subtype ids as pre-JellyBean.
+ private static final HashMap<String,String> sLocaleAndExtraValueToKeyboardLayoutSetMap =
+ new HashMap<String,String>();
private SubtypeLocale() {
// Intentional empty constructor for utility class.
@@ -97,6 +101,14 @@ public class SubtypeLocale {
final int resId = res.getIdentifier(resourceName, null, RESOURCE_PACKAGE_NAME);
sExceptionalLocaleToWithLayoutNameIdsMap.put(localeString, resId);
}
+
+ final String[] keyboardLayoutSetMap = res.getStringArray(
+ R.array.locale_and_extra_value_to_keyboard_layout_set_map);
+ for (int i = 0; i < keyboardLayoutSetMap.length; i += 2) {
+ final String key = keyboardLayoutSetMap[i];
+ final String keyboardLayoutSet = keyboardLayoutSetMap[i + 1];
+ sLocaleAndExtraValueToKeyboardLayoutSetMap.put(key, keyboardLayoutSet);
+ }
}
public static String[] getPredefinedKeyboardLayoutSet() {
@@ -193,7 +205,14 @@ public class SubtypeLocale {
}
public static String getKeyboardLayoutSetName(InputMethodSubtype subtype) {
- final String keyboardLayoutSet = subtype.getExtraValueOf(KEYBOARD_LAYOUT_SET);
+ String keyboardLayoutSet = subtype.getExtraValueOf(KEYBOARD_LAYOUT_SET);
+ if (keyboardLayoutSet == null) {
+ // This subtype doesn't have a keyboardLayoutSet extra value, so lookup its keyboard
+ // layout set in sLocaleAndExtraValueToKeyboardLayoutSetMap to keep it compatible with
+ // pre-JellyBean.
+ final String key = subtype.getLocale() + ":" + subtype.getExtraValue();
+ keyboardLayoutSet = sLocaleAndExtraValueToKeyboardLayoutSetMap.get(key);
+ }
// TODO: Remove this null check when InputMethodManager.getCurrentInputMethodSubtype is
// fixed.
if (keyboardLayoutSet == null) {