diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/xml-sw600dp/key_styles_common.xml | 4 | ||||
-rw-r--r-- | java/res/xml-sw768dp/key_styles_common.xml | 7 | ||||
-rw-r--r-- | java/res/xml/key_styles_common.xml | 10 | ||||
-rw-r--r-- | java/res/xml/key_styles_enter.xml | 2 | ||||
-rw-r--r-- | java/res/xml/rowkeys_georgian1.xml | 20 | ||||
-rw-r--r-- | java/res/xml/rowkeys_georgian2.xml | 54 | ||||
-rw-r--r-- | java/res/xml/rowkeys_georgian3.xml | 42 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java | 33 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java | 5 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java | 11 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java | 22 |
11 files changed, 86 insertions, 124 deletions
diff --git a/java/res/xml-sw600dp/key_styles_common.xml b/java/res/xml-sw600dp/key_styles_common.xml index e0676e890..0d54dfedb 100644 --- a/java/res/xml-sw600dp/key_styles_common.xml +++ b/java/res/xml-sw600dp/key_styles_common.xml @@ -98,7 +98,6 @@ latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" latin:backgroundType="functional" /> <key-style @@ -132,7 +131,6 @@ latin:styleName="toSymbolKeyStyle" latin:code="!code/key_switch_alpha_symbol" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style @@ -146,14 +144,12 @@ latin:styleName="toMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_more_symbol_for_tablet_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style diff --git a/java/res/xml-sw768dp/key_styles_common.xml b/java/res/xml-sw768dp/key_styles_common.xml index c3e2fd93d..596bccb47 100644 --- a/java/res/xml-sw768dp/key_styles_common.xml +++ b/java/res/xml-sw768dp/key_styles_common.xml @@ -97,7 +97,6 @@ latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" latin:backgroundType="functional" /> <key-style @@ -131,7 +130,7 @@ latin:styleName="toSymbolKeyStyle" latin:code="!code/key_switch_alpha_symbol" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="fontNormal|preserveCase" + latin:keyLabelFlags="fontNormal" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style @@ -145,14 +144,14 @@ latin:styleName="toMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_more_symbol_for_tablet_key" - latin:keyLabelFlags="fontNormal|preserveCase" + latin:keyLabelFlags="fontNormal" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="fontNormal|preserveCase" + latin:keyLabelFlags="fontNormal" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style diff --git a/java/res/xml/key_styles_common.xml b/java/res/xml/key_styles_common.xml index ec011d08b..f8b6e37fc 100644 --- a/java/res/xml/key_styles_common.xml +++ b/java/res/xml/key_styles_common.xml @@ -34,7 +34,7 @@ <default> <key-style latin:styleName="f1MoreKeysStyle" - latin:keyLabelFlags="hasPopupHint|preserveCase" + latin:keyLabelFlags="hasPopupHint" latin:moreKeys="!label/settings_as_more_key" latin:backgroundType="functional" /> </default> @@ -122,7 +122,6 @@ latin:code="!code/key_shortcut" latin:keyIcon="iconShortcutKey" latin:keyIconDisabled="iconDisabledShortcutKey" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview|altCodeWhileTyping" latin:altCode="!code/key_space" latin:parentStyle="f1MoreKeysStyle" /> @@ -159,7 +158,7 @@ latin:code="!code/key_switch_alpha_symbol" latin:keyIcon="iconShortcutForLabel" latin:keyLabel="!label/label_to_symbol_with_microphone_key" - latin:keyLabelFlags="withIconRight|preserveCase" + latin:keyLabelFlags="withIconRight" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> </case> @@ -168,7 +167,6 @@ latin:styleName="toSymbolKeyStyle" latin:code="!code/key_switch_alpha_symbol" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> </default> @@ -184,21 +182,19 @@ latin:styleName="toMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_more_symbol_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="backFromMoreSymbolKeyStyle" latin:code="!code/key_shift" latin:keyLabel="!label/label_to_symbol_key" - latin:keyLabelFlags="preserveCase" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" /> <key-style latin:styleName="punctuationKeyStyle" latin:keyLabel="." latin:keyHintLabel="!label/keyhintlabel_for_punctuation" - latin:keyLabelFlags="hasPopupHint|preserveCase" + latin:keyLabelFlags="hasPopupHint" latin:moreKeys="!label/more_keys_for_punctuation" latin:backgroundType="functional" /> </merge> diff --git a/java/res/xml/key_styles_enter.xml b/java/res/xml/key_styles_enter.xml index f4c7ad46b..506ed47d6 100644 --- a/java/res/xml/key_styles_enter.xml +++ b/java/res/xml/key_styles_enter.xml @@ -94,7 +94,7 @@ latin:styleName="defaultEnterKeyStyle" latin:code="!code/key_enter" latin:keyIcon="iconReturnKey" - latin:keyLabelFlags="autoXScale|preserveCase|followKeyLabelRatio" + latin:keyLabelFlags="autoXScale|followKeyLabelRatio" latin:keyActionFlags="noKeyPreview" latin:backgroundType="functional" latin:parentStyle="navigateMoreKeysStyle" /> diff --git a/java/res/xml/rowkeys_georgian1.xml b/java/res/xml/rowkeys_georgian1.xml index fcdf3fa58..d31a4c79c 100644 --- a/java/res/xml/rowkeys_georgian1.xml +++ b/java/res/xml/rowkeys_georgian1.xml @@ -27,55 +27,45 @@ > <Key latin:keyLabel="Q" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="1" latin:additionalMoreKeys="1" /> <!-- U+10ED: "ჭ" GEORGIAN LETTER CHAR --> <Key latin:keyLabel="ჭ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="2" latin:additionalMoreKeys="2" /> <Key latin:keyLabel="E" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="3" latin:additionalMoreKeys="3" /> <!-- U+10E6: "ღ" GEORGIAN LETTER GHAN --> <Key latin:keyLabel="ღ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="4" latin:additionalMoreKeys="4" /> <!-- U+10D7: "თ" GEORGIAN LETTER TAN --> <Key latin:keyLabel="თ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="5" latin:additionalMoreKeys="5" /> <Key latin:keyLabel="Y" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="6" latin:additionalMoreKeys="6" /> <Key latin:keyLabel="U" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="7" latin:additionalMoreKeys="7" /> <Key latin:keyLabel="I" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="8" latin:additionalMoreKeys="8" /> <Key latin:keyLabel="O" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="9" latin:additionalMoreKeys="9" /> <Key latin:keyLabel="P" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="0" latin:additionalMoreKeys="0" /> </case> @@ -83,13 +73,11 @@ <!-- U+10E5: "ქ" GEORGIAN LETTER GHAN --> <Key latin:keyLabel="ქ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="1" latin:additionalMoreKeys="1" /> <!-- U+10EC: "წ" GEORGIAN LETTER CIL --> <Key latin:keyLabel="წ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="2" latin:additionalMoreKeys="2" /> <!-- U+10D4: "ე" GEORGIAN LETTER EN @@ -97,19 +85,16 @@ <Key latin:keyLabel="ე" latin:moreKeys="ჱ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="3" latin:additionalMoreKeys="3" /> <!-- U+10E0: "რ" GEORGIAN LETTER RAE --> <Key latin:keyLabel="რ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="4" latin:additionalMoreKeys="4" /> <!-- U+10E2: "ტ" GEORGIAN LETTER TAR --> <Key latin:keyLabel="ტ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="5" latin:additionalMoreKeys="5" /> <!-- U+10E7: "ყ" GEORGIAN LETTER QAR @@ -117,13 +102,11 @@ <Key latin:keyLabel="ყ" latin:moreKeys="ჸ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="6" latin:additionalMoreKeys="6" /> <!-- U+10E3: "უ" GEORGIAN LETTER UN --> <Key latin:keyLabel="უ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="7" latin:additionalMoreKeys="7" /> <!-- U+10D8: "ი" GEORGIAN LETTER IN @@ -131,19 +114,16 @@ <Key latin:keyLabel="ი" latin:moreKeys="ჲ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="8" latin:additionalMoreKeys="8" /> <!-- U+10DD: "ო" GEORGIAN LETTER ON --> <Key latin:keyLabel="ო" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="9" latin:additionalMoreKeys="9" /> <!-- U+10DE: "პ" GEORGIAN LETTER PAR --> <Key latin:keyLabel="პ" - latin:keyLabelFlags="preserveCase" latin:keyHintLabel="0" latin:additionalMoreKeys="0" /> </default> diff --git a/java/res/xml/rowkeys_georgian2.xml b/java/res/xml/rowkeys_georgian2.xml index 5673b9002..cdccda31f 100644 --- a/java/res/xml/rowkeys_georgian2.xml +++ b/java/res/xml/rowkeys_georgian2.xml @@ -26,82 +26,64 @@ latin:keyboardLayoutSetElement="alphabetManualShifted|alphabetShiftLocked|alphabetShiftLockShifted" > <Key - latin:keyLabel="A" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="A" /> <!-- U+10E8: "შ" GEORGIAN LETTER SHIN --> <Key - latin:keyLabel="შ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="შ" /> <Key - latin:keyLabel="D" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="D" /> <Key - latin:keyLabel="F" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="F" /> <Key - latin:keyLabel="G" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="G" /> <Key - latin:keyLabel="H" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="H" /> <!-- U+10DF: "ჟ" GEORGIAN LETTER ZHAR --> <Key - latin:keyLabel="ჟ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ჟ" /> <Key - latin:keyLabel="K" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="K" /> <Key - latin:keyLabel="L" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="L" /> </case> <default> <!-- U+10D0: "ა" GEORGIAN LETTER AN U+10FA: "ჺ" GEORGIAN LETTER AIN --> <Key latin:keyLabel="ა" - latin:moreKeys="ჺ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჺ" /> <!-- U+10E1: "ს" GEORGIAN LETTER SAN --> <Key - latin:keyLabel="ს" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ს" /> <!-- U+10D3: "დ" GEORGIAN LETTER DON --> <Key - latin:keyLabel="დ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="დ" /> <!-- U+10E4: "ფ" GEORGIAN LETTER PHAR U+10F6: "ჶ" GEORGIAN LETTER FI --> <Key latin:keyLabel="ფ" - latin:moreKeys="ჶ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჶ" /> <!-- U+10D2: "გ" GEORGIAN LETTER GAN U+10F9: "ჹ" GEORGIAN LETTER TURNED GAN --> <Key latin:keyLabel="გ" - latin:moreKeys="ჹ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჹ" /> <!-- U+10F0: "ჰ" GEORGIAN LETTER HAE U+10F5: "ჵ" GEORGIAN LETTER HOE --> <Key latin:keyLabel="ჰ" - latin:moreKeys="ჵ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჵ" /> <!-- U+10EF: "ჯ" GEORGIAN LETTER JHAN U+10F7: "ჷ" GEORGIAN LETTER YN --> <Key latin:keyLabel="ჯ" - latin:moreKeys="ჷ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჷ" /> <!-- U+10D9: "კ" GEORGIAN LETTER KAN --> <Key - latin:keyLabel="კ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="კ" /> <!-- U+10DA: "ლ" GEORGIAN LETTER LAS --> <Key - latin:keyLabel="ლ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ლ" /> </default> </switch> </merge> diff --git a/java/res/xml/rowkeys_georgian3.xml b/java/res/xml/rowkeys_georgian3.xml index 1c0f45bef..a3714586f 100644 --- a/java/res/xml/rowkeys_georgian3.xml +++ b/java/res/xml/rowkeys_georgian3.xml @@ -27,63 +27,49 @@ > <!-- U+10EB: "ძ" GEORGIAN LETTER JIL --> <Key - latin:keyLabel="ძ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ძ" /> <Key - latin:keyLabel="X" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="X" /> <!-- U+10E9: "ჩ" GEORGIAN LETTER CHIN --> <Key - latin:keyLabel="ჩ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ჩ" /> <Key - latin:keyLabel="V" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="V" /> <Key - latin:keyLabel="B" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="B" /> <Key - latin:keyLabel="N" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="N" /> <Key - latin:keyLabel="M" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="M" /> </case> <default> <!-- U+10D6: "ზ" GEORGIAN LETTER ZEN --> <Key - latin:keyLabel="ზ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ზ" /> <!-- U+10EE: "ხ" GEORGIAN LETTER XAN U+10F4: "ჴ" GEORGIAN LETTER HAR --> <Key latin:keyLabel="ხ" - latin:moreKeys="ჴ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჴ" /> <!-- U+10EA: "ც" GEORGIAN LETTER CAN --> <Key - latin:keyLabel="ც" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ც" /> <!-- U+10D5: "ვ" GEORGIAN LETTER VIN U+10F3: "ჳ" GEORGIAN LETTER WE --> <Key latin:keyLabel="ვ" - latin:moreKeys="ჳ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჳ" /> <!-- U+10D1: "ბ" GEORGIAN LETTER BAN --> <Key - latin:keyLabel="ბ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="ბ" /> <!-- U+10DC: "ნ" GEORGIAN LETTER NAR U+10FC: "ჼ" MODIFIER LETTER GEORGIAN NAR --> <Key latin:keyLabel="ნ" - latin:moreKeys="ჼ" - latin:keyLabelFlags="preserveCase" /> + latin:moreKeys="ჼ" /> <!-- U+10DB: "მ" GEORGIAN LETTER MAN --> <Key - latin:keyLabel="მ" - latin:keyLabelFlags="preserveCase" /> + latin:keyLabel="მ" /> </default> </switch> </merge> diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java index 8261400b2..e24cfa0e7 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java @@ -76,7 +76,7 @@ public class KeySpecParser { } private static boolean hasIcon(String moreKeySpec) { - if (moreKeySpec.startsWith(PREFIX_ICON)) { + if (moreKeySpec.regionMatches(true, 0, PREFIX_ICON, 0, PREFIX_ICON.length())) { final int end = indexOfLabelEnd(moreKeySpec, 0); if (end > 0) { return true; @@ -88,8 +88,8 @@ public class KeySpecParser { private static boolean hasCode(String moreKeySpec) { final int end = indexOfLabelEnd(moreKeySpec, 0); - if (end > 0 && end + 1 < moreKeySpec.length() - && moreKeySpec.substring(end + 1).startsWith(PREFIX_CODE)) { + if (end > 0 && end + 1 < moreKeySpec.length() && moreKeySpec.regionMatches( + true, end + 1, PREFIX_CODE, 0, PREFIX_CODE.length())) { return true; } return false; @@ -210,9 +210,9 @@ public class KeySpecParser { public static int parseCode(String text, KeyboardCodesSet codesSet, int defCode) { if (text == null) return defCode; - if (text.startsWith(PREFIX_CODE)) { + if (text.regionMatches(true, 0, PREFIX_CODE, 0, PREFIX_CODE.length())) { return codesSet.getCode(text.substring(PREFIX_CODE.length())); - } else if (text.startsWith(PREFIX_HEX)) { + } else if (text.regionMatches(true, 0, PREFIX_HEX, 0, PREFIX_HEX.length())) { return Integer.parseInt(text.substring(PREFIX_HEX.length()), 16); } else { return Integer.parseInt(text); @@ -350,20 +350,22 @@ public class KeySpecParser { throw new RuntimeException("too many @string/resource indirection: " + text); } + final int prefixLen = PREFIX_LABEL.length(); final int size = text.length(); - if (size < PREFIX_LABEL.length()) { + if (size < prefixLen) { return text; } sb = null; for (int pos = 0; pos < size; pos++) { final char c = text.charAt(pos); - if (text.startsWith(PREFIX_LABEL, pos) && labelsSet != null) { + if (text.regionMatches(true, pos, PREFIX_LABEL, 0, prefixLen) + && labelsSet != null) { if (sb == null) { sb = new StringBuilder(text.substring(0, pos)); } - final int end = searchLabelNameEnd(text, pos + PREFIX_LABEL.length()); - final String name = text.substring(pos + PREFIX_LABEL.length(), end); + final int end = searchLabelNameEnd(text, pos + prefixLen); + final String name = text.substring(pos + prefixLen, end); sb.append(labelsSet.getLabel(name)); pos = end - 1; } else if (c == ESCAPE_CHAR) { @@ -389,8 +391,9 @@ public class KeySpecParser { final int size = text.length(); for (int pos = start; pos < size; pos++) { final char c = text.charAt(pos); - // String resource name should be consisted of [a-z_0-9]. - if ((c >= 'a' && c <= 'z') || c == '_' || (c >= '0' && c <= '9')) { + // Label name should be consisted of [a-zA-Z_0-9]. + if ((c >= 'a' && c <= 'z') || c == '_' || (c >= '0' && c <= '9') + || (c >= 'A' && c <= 'Z')) { continue; } return pos; @@ -442,17 +445,19 @@ public class KeySpecParser { if (moreKeys == null) { return defaultValue; } + final int keyLen = key.length(); boolean foundValue = false; int value = defaultValue; for (int i = 0; i < moreKeys.length; i++) { final String moreKeySpec = moreKeys[i]; - if (moreKeySpec == null || !moreKeySpec.startsWith(key)) { + if (moreKeySpec == null || !moreKeySpec.regionMatches(true, 0, key, 0, keyLen)) { continue; } moreKeys[i] = null; try { if (!foundValue) { - value = Integer.parseInt(moreKeySpec.substring(key.length())); + value = Integer.parseInt(moreKeySpec.substring(keyLen)); + foundValue = true; } } catch (NumberFormatException e) { throw new RuntimeException( @@ -469,7 +474,7 @@ public class KeySpecParser { boolean value = false; for (int i = 0; i < moreKeys.length; i++) { final String moreKeySpec = moreKeys[i]; - if (moreKeySpec == null || !moreKeySpec.equals(key)) { + if (moreKeySpec == null || !moreKeySpec.equalsIgnoreCase(key)) { continue; } moreKeys[i] = null; diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java index 736a96c56..c10a394c1 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardCodesSet.java @@ -33,7 +33,10 @@ public class KeyboardCodesSet { } public int getCode(final String name) { - final Integer id = sNameToIdMap.get(name); + Integer id = sNameToIdMap.get(name); + if (id == null) { + id = sNameToIdMap.get(name.toLowerCase()); + } if (id == null) throw new RuntimeException("Unknown key code: " + name); return mCodes[id]; } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java index ded89b1b8..07636249f 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardIconsSet.java @@ -36,7 +36,9 @@ public class KeyboardIconsSet { private static final HashMap<Integer, Integer> ATTR_ID_TO_ICON_ID = new HashMap<Integer, Integer>(); - private static final HashMap<String, Integer> NAME_TO_ICON_ID = new HashMap<String, Integer>(); + // Lower case icon name to icon id map. + private static final HashMap<String, Integer> sLowerCaseNameToIdsMap = + new HashMap<String, Integer>(); private static final String[] ICON_NAMES = new String[NUM_ICONS + 1]; private static final int ATTR_UNDEFINED = 0; @@ -66,7 +68,7 @@ public class KeyboardIconsSet { if (attrId != ATTR_UNDEFINED) { ATTR_ID_TO_ICON_ID.put(attrId, iconId); } - NAME_TO_ICON_ID.put(name, iconId); + sLowerCaseNameToIdsMap.put(name.toLowerCase(), iconId); ICON_NAMES[iconId] = name; } @@ -94,7 +96,10 @@ public class KeyboardIconsSet { } public static int getIconId(final String name) { - final Integer iconId = NAME_TO_ICON_ID.get(name); + Integer iconId = sLowerCaseNameToIdsMap.get(name); + if (iconId == null) { + iconId = sLowerCaseNameToIdsMap.get(name.toLowerCase()); + } if (iconId != null) { return iconId; } diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java index 0518b07ff..bd95848a9 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java @@ -31,7 +31,8 @@ public final class KeyboardLabelsSet { // Language to labels map. private static final HashMap<String, String[]> sLocaleToLabelsMap = new HashMap<String, String[]>(); - private static final HashMap<String, Integer> sNameToIdMap = new HashMap<String, Integer>(); + private static final HashMap<String, Integer> sLowerCaseNameToIdsMap = + new HashMap<String, Integer>(); private String[] mLabels; // Resource name to label map. @@ -60,12 +61,21 @@ public final class KeyboardLabelsSet { } public String getLabel(final String name) { - if (mResourceNameToLabelsMap.containsKey(name)) { - return mResourceNameToLabelsMap.get(name); + String lowerCaseName = null; + String label = mResourceNameToLabelsMap.get(name); + if (label == null) { + lowerCaseName = name.toLowerCase(); + label = mResourceNameToLabelsMap.get(lowerCaseName); + } + if (label != null) { + return label; + } + Integer id = sLowerCaseNameToIdsMap.get(name); + if (id == null) { + id = sLowerCaseNameToIdsMap.get(lowerCaseName); // lowerCaseName != null } - final Integer id = sNameToIdMap.get(name); if (id == null) throw new RuntimeException("Unknown label: " + name); - final String label = (id < mLabels.length) ? mLabels[id] : null; + label = (id < mLabels.length) ? mLabels[id] : null; return (label == null) ? LANGUAGE_DEFAULT[id] : label; } @@ -2492,7 +2502,7 @@ public final class KeyboardLabelsSet { static { int id = 0; for (final String name : NAMES) { - sNameToIdMap.put(name, id++); + sLowerCaseNameToIdsMap.put(name, id++); } for (int i = 0; i < LANGUAGES_AND_LABELS.length; i += 2) { |