From b5b92f9b78295366c12b25d1b464a371401c3677 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" <takaoka@google.com> Date: Tue, 24 Jan 2012 18:03:50 +0900 Subject: [PATCH] Add autoGenerateFromAlphabet enum to KeyboardSet.Element.elementKeyboard This is the first step to support separate Keyboard for elementName. Change-Id: Icef66564b6938910fa06ecab664dce4be84c9505 --- java/res/values/attrs.xml | 27 +++---- java/res/xml-ar/keyboard_set.xml | 4 +- java/res/xml-be/keyboard_set.xml | 4 +- java/res/xml-bg/keyboard_set.xml | 4 +- java/res/xml-cs/keyboard_set.xml | 4 +- java/res/xml-da/keyboard_set.xml | 4 +- java/res/xml-de-rZZ/keyboard_set.xml | 4 +- java/res/xml-de/keyboard_set.xml | 4 +- java/res/xml-es/keyboard_set.xml | 4 +- java/res/xml-et/keyboard_set.xml | 4 +- java/res/xml-fi/keyboard_set.xml | 4 +- java/res/xml-fr-rCA/keyboard_set.xml | 4 +- java/res/xml-fr-rCH/keyboard_set.xml | 4 +- java/res/xml-fr/keyboard_set.xml | 4 +- java/res/xml-hr/keyboard_set.xml | 4 +- java/res/xml-hu/keyboard_set.xml | 4 +- java/res/xml-iw/keyboard_set.xml | 4 +- java/res/xml-ky/keyboard_set.xml | 4 +- java/res/xml-nb/keyboard_set.xml | 4 +- java/res/xml-pl/keyboard_set.xml | 4 +- java/res/xml-pt/keyboard_set.xml | 4 +- java/res/xml-ro/keyboard_set.xml | 4 +- java/res/xml-ru/keyboard_set.xml | 4 +- java/res/xml-sk/keyboard_set.xml | 4 +- java/res/xml-sl/keyboard_set.xml | 4 +- java/res/xml-sr/keyboard_set.xml | 4 +- java/res/xml-sv/keyboard_set.xml | 4 +- java/res/xml-tr/keyboard_set.xml | 4 +- java/res/xml-uk/keyboard_set.xml | 4 +- java/res/xml-vi/keyboard_set.xml | 4 +- java/res/xml/keyboard_set.xml | 4 +- .../inputmethod/keyboard/KeyboardId.java | 52 ++++++------- .../inputmethod/keyboard/KeyboardSet.java | 76 +++++++++++-------- .../keyboard/internal/KeyboardState.java | 2 + 34 files changed, 143 insertions(+), 134 deletions(-) diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 57930c6756..0ae7fa2abe 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -345,20 +345,21 @@ <declare-styleable name="KeyboardSet_Element"> <!-- This should be aligned with KeyboardId.ELEMENT_* --> <attr name="elementName" format="enum"> - <enum name="alphabet" value="0" /> - <!-- TODO: Implement alphabet variant shift keyboards - <enum name="alphabetManualTemporaryShift" value="1" /> - <enum name="alphabetAutomaticTemporaryShift" value="2" /> - <enum name="alphabetShiftLock" value="3" /> - <enum name="alphabetShiftLockShift" value="4" /> - --> - <enum name="symbols" value="5" /> - <enum name="symbolsShift" value="6" /> - <enum name="phone" value="7" /> - <enum name="phoneShift" value="8" /> - <enum name="number" value="9" /> + <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> + <attr name="elementKeyboard" format="reference|enum"> + <!-- This should be aligned with KeyboardSet.ELEMENT_KEYBOARD_* --> + <enum name="autoGenerateFromAlphabet" value="1"/> </attr> - <attr name="elementKeyboard" format="reference" /> <!-- TODO: Add setShifted and setShiftLocked attribute. --> </declare-styleable> </resources> diff --git a/java/res/xml-ar/keyboard_set.xml b/java/res/xml-ar/keyboard_set.xml index 68dc34fe3e..a8aac169bb 100644 --- a/java/res/xml-ar/keyboard_set.xml +++ b/java/res/xml-ar/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-be/keyboard_set.xml b/java/res/xml-be/keyboard_set.xml index e5c6ba35a4..c8ee9c1620 100644 --- a/java/res/xml-be/keyboard_set.xml +++ b/java/res/xml-be/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-bg/keyboard_set.xml b/java/res/xml-bg/keyboard_set.xml index a789de630e..5a759648d3 100644 --- a/java/res/xml-bg/keyboard_set.xml +++ b/java/res/xml-bg/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-cs/keyboard_set.xml b/java/res/xml-cs/keyboard_set.xml index 94076d3e08..6b476df822 100644 --- a/java/res/xml-cs/keyboard_set.xml +++ b/java/res/xml-cs/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-da/keyboard_set.xml b/java/res/xml-da/keyboard_set.xml index 84d126dc24..cf930dd05f 100644 --- a/java/res/xml-da/keyboard_set.xml +++ b/java/res/xml-da/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-de-rZZ/keyboard_set.xml b/java/res/xml-de-rZZ/keyboard_set.xml index 2309729981..585dc3d6a4 100644 --- a/java/res/xml-de-rZZ/keyboard_set.xml +++ b/java/res/xml-de-rZZ/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-de/keyboard_set.xml b/java/res/xml-de/keyboard_set.xml index c178836203..059174ccd1 100644 --- a/java/res/xml-de/keyboard_set.xml +++ b/java/res/xml-de/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-es/keyboard_set.xml b/java/res/xml-es/keyboard_set.xml index 77f3786375..ec40a5a9b2 100644 --- a/java/res/xml-es/keyboard_set.xml +++ b/java/res/xml-es/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-et/keyboard_set.xml b/java/res/xml-et/keyboard_set.xml index 304328a704..80a9d8fab9 100644 --- a/java/res/xml-et/keyboard_set.xml +++ b/java/res/xml-et/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-fi/keyboard_set.xml b/java/res/xml-fi/keyboard_set.xml index 0c3a96d360..cf95b5ec90 100644 --- a/java/res/xml-fi/keyboard_set.xml +++ b/java/res/xml-fi/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-fr-rCA/keyboard_set.xml b/java/res/xml-fr-rCA/keyboard_set.xml index b3bb4cc12e..856363ea7d 100644 --- a/java/res/xml-fr-rCA/keyboard_set.xml +++ b/java/res/xml-fr-rCA/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-fr-rCH/keyboard_set.xml b/java/res/xml-fr-rCH/keyboard_set.xml index d6dcf7541f..778754c6ff 100644 --- a/java/res/xml-fr-rCH/keyboard_set.xml +++ b/java/res/xml-fr-rCH/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-fr/keyboard_set.xml b/java/res/xml-fr/keyboard_set.xml index b94a3f2523..ae911afa00 100644 --- a/java/res/xml-fr/keyboard_set.xml +++ b/java/res/xml-fr/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-hr/keyboard_set.xml b/java/res/xml-hr/keyboard_set.xml index 1d8582c0a8..4bd81d0e89 100644 --- a/java/res/xml-hr/keyboard_set.xml +++ b/java/res/xml-hr/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-hu/keyboard_set.xml b/java/res/xml-hu/keyboard_set.xml index 0771119236..9ed1d949a0 100644 --- a/java/res/xml-hu/keyboard_set.xml +++ b/java/res/xml-hu/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-iw/keyboard_set.xml b/java/res/xml-iw/keyboard_set.xml index ce25aae72f..c16a6d79dc 100644 --- a/java/res/xml-iw/keyboard_set.xml +++ b/java/res/xml-iw/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-ky/keyboard_set.xml b/java/res/xml-ky/keyboard_set.xml index 7cdd0a169d..1bb8926dfb 100644 --- a/java/res/xml-ky/keyboard_set.xml +++ b/java/res/xml-ky/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-nb/keyboard_set.xml b/java/res/xml-nb/keyboard_set.xml index eacda8f878..1a36de4356 100644 --- a/java/res/xml-nb/keyboard_set.xml +++ b/java/res/xml-nb/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-pl/keyboard_set.xml b/java/res/xml-pl/keyboard_set.xml index 89bd72f1ab..39ee777719 100644 --- a/java/res/xml-pl/keyboard_set.xml +++ b/java/res/xml-pl/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-pt/keyboard_set.xml b/java/res/xml-pt/keyboard_set.xml index de31e0be50..bd19761d38 100644 --- a/java/res/xml-pt/keyboard_set.xml +++ b/java/res/xml-pt/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-ro/keyboard_set.xml b/java/res/xml-ro/keyboard_set.xml index 725cb52d28..75ca682720 100644 --- a/java/res/xml-ro/keyboard_set.xml +++ b/java/res/xml-ro/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-ru/keyboard_set.xml b/java/res/xml-ru/keyboard_set.xml index 0a158d9ccc..8d4d277b22 100644 --- a/java/res/xml-ru/keyboard_set.xml +++ b/java/res/xml-ru/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-sk/keyboard_set.xml b/java/res/xml-sk/keyboard_set.xml index 9df01dda65..b73c446ef5 100644 --- a/java/res/xml-sk/keyboard_set.xml +++ b/java/res/xml-sk/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-sl/keyboard_set.xml b/java/res/xml-sl/keyboard_set.xml index d2ec4c02dd..b2378e2c2f 100644 --- a/java/res/xml-sl/keyboard_set.xml +++ b/java/res/xml-sl/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-sr/keyboard_set.xml b/java/res/xml-sr/keyboard_set.xml index e72a0f23f3..729136f3a4 100644 --- a/java/res/xml-sr/keyboard_set.xml +++ b/java/res/xml-sr/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-sv/keyboard_set.xml b/java/res/xml-sv/keyboard_set.xml index df06aef68f..3d366a4439 100644 --- a/java/res/xml-sv/keyboard_set.xml +++ b/java/res/xml-sv/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-tr/keyboard_set.xml b/java/res/xml-tr/keyboard_set.xml index 854ab85667..3c429585f7 100644 --- a/java/res/xml-tr/keyboard_set.xml +++ b/java/res/xml-tr/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-uk/keyboard_set.xml b/java/res/xml-uk/keyboard_set.xml index e5ba43b236..300eea2267 100644 --- a/java/res/xml-uk/keyboard_set.xml +++ b/java/res/xml-uk/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml-vi/keyboard_set.xml b/java/res/xml-vi/keyboard_set.xml index 7f4b25d9d5..0b92c94c13 100644 --- a/java/res/xml-vi/keyboard_set.xml +++ b/java/res/xml-vi/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/res/xml/keyboard_set.xml b/java/res/xml/keyboard_set.xml index 96f352bb2b..ebdd9902eb 100644 --- a/java/res/xml/keyboard_set.xml +++ b/java/res/xml/keyboard_set.xml @@ -28,13 +28,13 @@ latin:elementName="symbols" latin:elementKeyboard="@xml/kbd_symbols" /> <Element - latin:elementName="symbolsShift" + latin:elementName="symbolsShifted" latin:elementKeyboard="@xml/kbd_symbols_shift" /> <Element latin:elementName="phone" latin:elementKeyboard="@xml/kbd_phone" /> <Element - latin:elementName="phoneShift" + latin:elementName="phoneShifted" latin:elementKeyboard="@xml/kbd_phone_shift" /> <Element latin:elementName="number" diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index d95c3b3af0..edce4c6e8f 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -39,16 +39,14 @@ public class KeyboardId { public static final int MODE_NUMBER = 5; public static final int ELEMENT_ALPHABET = 0; - /* TODO: Implement alphabet variant shift keyboard. - public static final int ELEMENT_ALPHABET_MANUAL_TEMPORARY_SHIFT = 1; - public static final int ELEMENT_ALPHABET_AUTOMATIC_TEMPORARY_SHIFT = 2; - public static final int ELEMENT_ALPHABET_SHIFT_LOCK = 3; - public static final int ELEMENT_ALPHABET_SHIFT_LOCK_SHIFT = 4; - */ + public static final int ELEMENT_ALPHABET_MANUAL_SHIFTED = 1; + public static final int ELEMENT_ALPHABET_AUTOMATIC_SHIFTED = 2; + public static final int ELEMENT_ALPHABET_SHIFT_LOCKED = 3; + public static final int ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED = 4; public static final int ELEMENT_SYMBOLS = 5; - public static final int ELEMENT_SYMBOLS_SHIFT = 6; + public static final int ELEMENT_SYMBOLS_SHIFTED = 6; public static final int ELEMENT_PHONE = 7; - public static final int ELEMENT_PHONE_SHIFT = 8; + public static final int ELEMENT_PHONE_SHIFTED = 8; public static final int ELEMENT_NUMBER = 9; private static final int F2KEY_MODE_NONE = 0; @@ -60,7 +58,7 @@ public class KeyboardId { public final int mOrientation; public final int mWidth; public final int mMode; - public final int mElementState; + public final int mElement; private final int mInputType; private final int mImeOptions; private final boolean mSettingsKeyEnabled; @@ -70,14 +68,14 @@ public class KeyboardId { private final int mHashCode; - public KeyboardId(int elementState, Locale locale, int orientation, int width, int mode, + public KeyboardId(int element, Locale locale, int orientation, int width, int mode, int inputType, int imeOptions, boolean settingsKeyEnabled, boolean clobberSettingsKey, boolean shortcutKeyEnabled, boolean hasShortcutKey) { this.mLocale = locale; this.mOrientation = orientation; this.mWidth = width; this.mMode = mode; - this.mElementState = elementState; + this.mElement = element; this.mInputType = inputType; this.mImeOptions = imeOptions; this.mSettingsKeyEnabled = settingsKeyEnabled; @@ -91,7 +89,7 @@ public class KeyboardId { private static int hashCode(KeyboardId id) { return Arrays.hashCode(new Object[] { id.mOrientation, - id.mElementState, + id.mElement, id.mMode, id.mWidth, id.navigateAction(), @@ -109,7 +107,7 @@ public class KeyboardId { if (other == this) return true; return other.mOrientation == this.mOrientation - && other.mElementState == this.mElementState + && other.mElement == this.mElement && other.mMode == this.mMode && other.mWidth == this.mWidth && other.navigateAction() == this.navigateAction() @@ -123,19 +121,19 @@ public class KeyboardId { } public boolean isAlphabetKeyboard() { - return mElementState < ELEMENT_SYMBOLS; + return mElement < ELEMENT_SYMBOLS; } public boolean isSymbolsKeyboard() { - return mElementState == ELEMENT_SYMBOLS || mElementState == ELEMENT_SYMBOLS_SHIFT; + return mElement == ELEMENT_SYMBOLS || mElement == ELEMENT_SYMBOLS_SHIFTED; } public boolean isPhoneKeyboard() { - return mElementState == ELEMENT_PHONE || mElementState == ELEMENT_PHONE_SHIFT; + return mElement == ELEMENT_PHONE || mElement == ELEMENT_PHONE_SHIFTED; } public boolean isPhoneShiftKeyboard() { - return mElementState == ELEMENT_PHONE_SHIFT; + return mElement == ELEMENT_PHONE_SHIFTED; } public boolean navigateAction() { @@ -190,7 +188,7 @@ public class KeyboardId { @Override public String toString() { return String.format("[%s %s %s%d %s %s %s%s%s%s%s%s%s]", - elementStateToString(mElementState), + elementToString(mElement), mLocale, (mOrientation == 1 ? "port" : "land"), mWidth, modeName(mMode), @@ -213,19 +211,17 @@ public class KeyboardId { && TextUtils.equals(a.privateImeOptions, b.privateImeOptions); } - public static String elementStateToString(int elementState) { - switch (elementState) { + public static String elementToString(int element) { + switch (element) { case ELEMENT_ALPHABET: return "alphabet"; - /* TODO: Implement alphabet variant shift keyboard. - case ELEMENT_ALPHABET_MANUAL_TEMPORARY_SHIFT: return "alphabetManualTemporaryShift"; - case ELEMENT_ALPHABET_AUTOMATIC_TEMPORARY_SHIFT: return "alphabetAutomaticTemporaryShift"; - case ELEMENT_ALPHABET_SHIFT_LOCK: return "alphabetShiftLock"; - case ELEMENT_ALPHABET_SHIFT_LOCK_SHIFT: return "alphabetShiftLockShift"; - */ + case ELEMENT_ALPHABET_MANUAL_SHIFTED: return "alphabetManualShifted"; + case ELEMENT_ALPHABET_AUTOMATIC_SHIFTED: return "alphabetAutomaticShifted"; + case ELEMENT_ALPHABET_SHIFT_LOCKED: return "alphabetShiftLocked"; + case ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED: return "alphabetShiftLockShifted"; case ELEMENT_SYMBOLS: return "symbols"; - case ELEMENT_SYMBOLS_SHIFT: return "symbolsShift"; + case ELEMENT_SYMBOLS_SHIFTED: return "symbolsShifted"; case ELEMENT_PHONE: return "phone"; - case ELEMENT_PHONE_SHIFT: return "phoneShift"; + case ELEMENT_PHONE_SHIFTED: return "phoneShifted"; case ELEMENT_NUMBER: return "number"; default: return null; } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java index 2852520445..f4602b8fd4 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; import android.util.Log; +import android.util.TypedValue; import android.util.Xml; import android.view.inputmethod.EditorInfo; @@ -54,10 +55,12 @@ public class KeyboardSet { private static final String TAG_KEYBOARD_SET = TAG; private static final String TAG_ELEMENT = "Element"; + private static final int ELEMENT_KEYBOARD_AUTO_GENERATE_FROM_ALPHABET = 1; + private final Context mContext; private final Params mParams; - private static class Params { + static class Params { int mMode; int mInputType; int mImeOptions; @@ -104,16 +107,18 @@ public class KeyboardSet { } private Keyboard getKeyboard(boolean isSymbols, boolean isShift) { - final int elementState = Builder.getElementState(mParams.mMode, isSymbols, isShift); - final int xmlId = mParams.mElementKeyboards.get(elementState); - final KeyboardId id = Builder.getKeyboardId(elementState, isSymbols, mParams); + final int element = KeyboardSet.getElement(mParams.mMode, isSymbols, isShift); + // TODO: If xmlId is ELEMENT_KEYBOARD_AUTO_GENERATE_FROM_ALPHABET, auto generate the + // keyboard based on base main alphabet keyboard considering element. + final int xmlId = mParams.mElementKeyboards.get(element); + final KeyboardId id = KeyboardSet.getKeyboardId(element, isSymbols, mParams); final Keyboard keyboard = getKeyboard(mContext, xmlId, id); return keyboard; } public KeyboardId getMainKeyboardId() { - final int elementState = Builder.getElementState(mParams.mMode, false, false); - return Builder.getKeyboardId(elementState, false, mParams); + final int element = KeyboardSet.getElement(mParams.mMode, false, false); + return KeyboardSet.getKeyboardId(element, false, mParams); } private Keyboard getKeyboard(Context context, int xmlId, KeyboardId id) { @@ -147,6 +152,30 @@ public class KeyboardSet { return keyboard; } + private static int getElement(int mode, boolean isSymbols, boolean isShift) { + switch (mode) { + case KeyboardId.MODE_PHONE: + return (isSymbols && isShift) + ? KeyboardId.ELEMENT_PHONE_SHIFTED : KeyboardId.ELEMENT_PHONE; + case KeyboardId.MODE_NUMBER: + return KeyboardId.ELEMENT_NUMBER; + default: + if (isSymbols) { + return isShift + ? KeyboardId.ELEMENT_SYMBOLS_SHIFTED : KeyboardId.ELEMENT_SYMBOLS; + } + return KeyboardId.ELEMENT_ALPHABET; + } + } + + private static KeyboardId getKeyboardId(int element, boolean isSymbols, Params params) { + final boolean hasShortcutKey = params.mVoiceKeyEnabled + && (isSymbols != params.mVoiceKeyOnMain); + return new KeyboardId(element, params.mLocale, params.mOrientation, params.mWidth, + params.mMode, params.mInputType, params.mImeOptions, params.mSettingsKeyEnabled, + params.mNoSettingsKey, params.mVoiceKeyEnabled, hasShortcutKey); + } + public static class Builder { private final Context mContext; private final String mPackageName; @@ -218,31 +247,6 @@ public class KeyboardSet { return new KeyboardSet(mContext, mParams); } - // TODO: Move this method to KeyboardSet - static KeyboardId getKeyboardId(int elementState, boolean isSymbols, Params params) { - final boolean hasShortcutKey = params.mVoiceKeyEnabled - && (isSymbols != params.mVoiceKeyOnMain); - return new KeyboardId(elementState, params.mLocale, params.mOrientation, params.mWidth, - params.mMode, params.mInputType, params.mImeOptions, params.mSettingsKeyEnabled, - params.mNoSettingsKey, params.mVoiceKeyEnabled, hasShortcutKey); - } - - // TODO: Move this method to KeyboardSet - static int getElementState(int mode, boolean isSymbols, boolean isShift) { - switch (mode) { - case KeyboardId.MODE_PHONE: - return (isSymbols && isShift) - ? KeyboardId.ELEMENT_PHONE_SHIFT : KeyboardId.ELEMENT_PHONE; - case KeyboardId.MODE_NUMBER: - return KeyboardId.ELEMENT_NUMBER; - default: - if (isSymbols) { - return isShift ? KeyboardId.ELEMENT_SYMBOLS_SHIFT : KeyboardId.ELEMENT_SYMBOLS; - } - return KeyboardId.ELEMENT_ALPHABET; - } - } - private void parseKeyboardSet(Resources res, int resId) throws XmlPullParserException, IOException { final XmlResourceParser parser = res.getXml(resId); @@ -300,8 +304,14 @@ public class KeyboardSet { final int elementName = a.getInt( R.styleable.KeyboardSet_Element_elementName, 0); - final int elementKeyboard = a.getResourceId( - R.styleable.KeyboardSet_Element_elementKeyboard, 0); + final int index = R.styleable.KeyboardSet_Element_elementKeyboard; + final TypedValue v = a.peekValue(index); + final int elementKeyboard; + if (v.type == TypedValue.TYPE_REFERENCE) { + elementKeyboard = a.getResourceId(index, 0); + } else { + elementKeyboard = a.getInt(index, 0); + } mParams.mElementKeyboards.put(elementName, elementKeyboard); } finally { a.recycle(); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java index bc8b7e3f73..38c31adcee 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java @@ -43,6 +43,8 @@ public class KeyboardState { public void setAlphabetManualShiftedKeyboard(); public void setAlphabetAutomaticShiftedKeyboard(); public void setAlphabetShiftLockedKeyboard(); + // TODO: Add this. + //public void setAlphabetShiftLockShiftedKeyboard(); public void setSymbolsKeyboard(); public void setSymbolsShiftedKeyboard(); -- GitLab