aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2012-01-25 13:14:59 +0900
committerTadashi G. Takaoka <takaoka@google.com>2012-01-25 19:09:18 +0900
commit83306b914f36871f785677ca13e1ce8033774b79 (patch)
treeae4fdaf492ed3716fbab71c25d31f24629d3bb45 /java
parent117c124c13f0e6af737b1858bd5c4d9e6e7eb353 (diff)
downloadlatinime-83306b914f36871f785677ca13e1ce8033774b79.tar.gz
latinime-83306b914f36871f785677ca13e1ce8033774b79.tar.xz
latinime-83306b914f36871f785677ca13e1ce8033774b79.zip
Add element predicator to <switch><case> condition of Keyboard
Change-Id: I8f9eb8eb28707d23e421e88f979022d844a3b3ee
Diffstat (limited to 'java')
-rw-r--r--java/res/values/attrs.xml13
-rw-r--r--java/src/com/android/inputmethod/keyboard/Keyboard.java19
2 files changed, 25 insertions, 7 deletions
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 57aa5ddf5..5824d1736 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -294,6 +294,19 @@
</declare-styleable>
<declare-styleable name="Keyboard_Case">
+ <!-- This should be aligned with KeyboardSet_Element's elementName. -->
+ <attr name="keyboardSetElement" format="enum|string">
+ <enum name="alphabet" value="0" />
+ <enum name="alphabetManualShifted" value="1" />
+ <enum name="alphabetAutomaticShifted" value="2" />
+ <enum name="alphabetShiftLocked" value="3" />
+ <enum name="alphabetShiftLockShifted" value="4" />
+ <enum name="symbols" value="5" />
+ <enum name="symbolsShifted" value="6" />
+ <enum name="phone" value="7" />
+ <enum name="phoneShifted" value="8" />
+ <enum name="number" value="9" />
+ </attr>
<!-- This should be aligned with KeyboardId.MODE_* -->
<attr name="mode" format="enum|string">
<enum name="text" value="0" />
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index c548f1145..a09232bf8 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -1034,6 +1034,9 @@ public class Keyboard {
final TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser),
R.styleable.Keyboard_Case);
try {
+ final boolean keyboardSetElementMatched = matchTypedValue(a,
+ R.styleable.Keyboard_Case_keyboardSetElement, id.mElementId,
+ KeyboardId.elementIdToName(id.mElementId));
final boolean modeMatched = matchTypedValue(a,
R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode));
final boolean navigateActionMatched = matchBoolean(a,
@@ -1062,13 +1065,15 @@ public class Keyboard {
R.styleable.Keyboard_Case_languageCode, id.mLocale.getLanguage());
final boolean countryCodeMatched = matchString(a,
R.styleable.Keyboard_Case_countryCode, id.mLocale.getCountry());
- final boolean selected = modeMatched && navigateActionMatched
- && passwordInputMatched && hasSettingsKeyMatched && f2KeyModeMatched
- && clobberSettingsKeyMatched && shortcutKeyEnabledMatched
- && hasShortcutKeyMatched && imeActionMatched && localeCodeMatched
- && languageCodeMatched && countryCodeMatched;
-
- if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s%s%s%s%s%s%s> %s", TAG_CASE,
+ final boolean selected = keyboardSetElementMatched && modeMatched
+ && navigateActionMatched && passwordInputMatched && hasSettingsKeyMatched
+ && f2KeyModeMatched && clobberSettingsKeyMatched
+ && shortcutKeyEnabledMatched && hasShortcutKeyMatched && imeActionMatched
+ && localeCodeMatched && languageCodeMatched && countryCodeMatched;
+
+ if (DEBUG) Log.d(TAG, String.format("<%s%s%s%s%s%s%s%s%s%s%s%s%s%s> %s", TAG_CASE,
+ textAttr(a.getString(R.styleable.Keyboard_Case_keyboardSetElement),
+ "keyboardSetElement"),
textAttr(a.getString(R.styleable.Keyboard_Case_mode), "mode"),
booleanAttr(a, R.styleable.Keyboard_Case_navigateAction, "navigateAction"),
booleanAttr(a, R.styleable.Keyboard_Case_passwordInput, "passwordInput"),