From 2f16fd40faab7287dfcae4899050b9df360d0c29 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 20 Apr 2012 04:35:04 +0900 Subject: Make KeySpecParser case insensitive Change-Id: I76c3e9179dd8777d3cf3138ad76513d83672debf --- .../keyboard/internal/KeyboardLabelsSet.java | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'java/src/com/android/inputmethod/keyboard/internal/KeyboardLabelsSet.java') 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 sLocaleToLabelsMap = new HashMap(); - private static final HashMap sNameToIdMap = new HashMap(); + private static final HashMap sLowerCaseNameToIdsMap = + new HashMap(); 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) { -- cgit v1.2.3