diff options
author | 2014-02-14 18:44:34 +0900 | |
---|---|---|
committer | 2014-02-14 18:51:03 +0900 | |
commit | 53a237323a3f5ba6e5ece341874812ac91bbbfc0 (patch) | |
tree | 4ac33c87d57d2193f764c947578e0d6d8f90bf3f /tools | |
parent | 3c4f05dd66f8211508010e82b414d111037f35dd (diff) | |
download | latinime-53a237323a3f5ba6e5ece341874812ac91bbbfc0.tar.gz latinime-53a237323a3f5ba6e5ece341874812ac91bbbfc0.tar.xz latinime-53a237323a3f5ba6e5ece341874812ac91bbbfc0.zip |
Add sanity check to KeybaordTextsTable for debugging
Bug: 13007104
Change-Id: Id12f75da7a1c6a2a078d41721ee4016794e9dd2a
Diffstat (limited to 'tools')
-rw-r--r-- | tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl b/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl index f56cfd91b..7ec42ceea 100644 --- a/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl +++ b/tools/make-keyboard-text/res/com/android/inputmethod/keyboard/internal/KeyboardTextsTable.tmpl @@ -43,22 +43,36 @@ import java.util.HashMap; public final class KeyboardTextsTable { // Name to index map. private static final HashMap<String, Integer> sNameToIndexesMap = CollectionUtils.newHashMap(); - // Language to texts map. - private static final HashMap<String, String[]> sLanguageToTextsMap = + // Language to texts table map. + private static final HashMap<String, String[]> sLanguageToTextsTableMap = + CollectionUtils.newHashMap(); + // TODO: Remove this variable after debugging. + // Texts table to language maps. + private static final HashMap<String[], String> sTextsTableToLanguageMap = CollectionUtils.newHashMap(); public static String getText(final String name, final String[] textsTable) { final Integer indexObj = sNameToIndexesMap.get(name); if (indexObj == null) { - throw new RuntimeException("Unknown text name: " + name); + throw new RuntimeException("Unknown text name=" + name + " language=" + + sTextsTableToLanguageMap.get(textsTable)); } final int index = indexObj; final String text = (index < textsTable.length) ? textsTable[index] : null; - return (text != null) ? text : LANGUAGE_DEFAULT[index]; + if (text != null) { + return text; + } + // Sanity check. + if (index >= 0 && index < LANGUAGE_DEFAULT.length) { + return LANGUAGE_DEFAULT[index]; + } + // Throw exception for debugging purpose. + throw new RuntimeException("Illegal index=" + index + " for name=" + name + + " language=" + sTextsTableToLanguageMap.get(textsTable)); } public static String[] getTextsTable(final String language) { - final String[] textsTable = sLanguageToTextsMap.get(language); + final String[] textsTable = sLanguageToTextsTableMap.get(language); return textsTable != null ? textsTable : LANGUAGE_DEFAULT; } @@ -89,8 +103,9 @@ public final class KeyboardTextsTable { for (int i = 0; i < LANGUAGES_AND_TEXTS.length; i += 2) { final String language = (String)LANGUAGES_AND_TEXTS[i]; - final String[] texts = (String[])LANGUAGES_AND_TEXTS[i + 1]; - sLanguageToTextsMap.put(language, texts); + final String[] textsTable = (String[])LANGUAGES_AND_TEXTS[i + 1]; + sLanguageToTextsTableMap.put(language, textsTable); + sTextsTableToLanguageMap.put(textsTable, language); } } } |