summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-03-01 13:09:39 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-03-01 16:07:02 +0900
commit42fd1d2d72c097b2227d4b22f0f824dbb34a4d0c (patch)
tree0be27075112f5a95f722b5b5bdcab0b9de6aa5e7 /java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
parent36aa8e39b55497a229991227cddca4ba2f472b1f (diff)
Refactor more keys spec handling
Change-Id: Ibd95eff0725724ea35ad58e1d1ec7ec3d02a6e90
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
index f61eefda5..32f5fbc47 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeySpecParser.java
@@ -426,4 +426,28 @@ public class KeySpecParser {
return list.toArray(new String[list.size()]);
}
}
+
+ public static int getIntValue(String[] moreKeys, String key, int defaultValue) {
+ if (moreKeys == null) {
+ return defaultValue;
+ }
+ 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)) {
+ continue;
+ }
+ moreKeys[i] = null;
+ try {
+ if (!foundValue) {
+ value = Integer.parseInt(moreKeySpec.substring(key.length()));
+ }
+ } catch (NumberFormatException e) {
+ throw new RuntimeException(
+ "integer should follow after " + key + ": " + moreKeySpec);
+ }
+ }
+ return value;
+ }
}