diff options
author | 2012-06-27 21:55:35 -0700 | |
---|---|---|
committer | 2012-06-27 21:55:35 -0700 | |
commit | 5e5cf045ca6debafcc29ae1c47afda4a3a152326 (patch) | |
tree | 2ae33aef91fab33544344fcc094c6657aceb12c4 /java/src | |
parent | 67727e34a28e3bfe3f331733b9d1e3c78294e793 (diff) | |
parent | 7f7947c97b141cbb338c5164e9e19d1ac9ff3d1c (diff) | |
download | latinime-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.java | 21 |
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) { |