diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 57930c6..57aa5dd 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -345,20 +345,19 @@
     <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" />
+        <attr name="elementKeyboard" format="reference"/>
+        <attr name="elementAutoGenerate" format="boolean" />
         <!-- 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 68dc34f..a8aac16 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 e5c6ba3..c8ee9c1 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 a789de6..5a75964 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 94076d3..6b476df 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 84d126d..cf930dd 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 2309729..585dc3d 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 c178836..059174c 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 77f3786..ec40a5a 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 304328a..80a9d8f 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 0c3a96d..cf95b5e 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 b3bb4cc..856363e 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 d6dcf75..778754c 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 b94a3f2..ae911af 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 1d8582c..4bd81d0 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 0771119..9ed1d94 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 ce25aae..c16a6d7 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 7cdd0a1..1bb8926 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 eacda8f..1a36de4 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 89bd72f..39ee777 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 de31e0b..bd19761 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 725cb52..75ca682 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 0a158d9..8d4d277 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 9df01dd..b73c446 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 d2ec4c0..b2378e2 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 e72a0f2..729136f 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 df06aef..3d366a4 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 854ab85..3c42958 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 e5ba43b..300eea2 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 7f4b25d..0b92c94 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 96f352b..03eb778 100644
--- a/java/res/xml/keyboard_set.xml
+++ b/java/res/xml/keyboard_set.xml
@@ -25,16 +25,32 @@
         latin:elementName="alphabet"
         latin:elementKeyboard="@xml/kbd_qwerty" />
     <Element
+        latin:elementName="alphabetManualShifted"
+        latin:elementKeyboard="@xml/kbd_qwerty"
+        latin:elementAutoGenerate="true" />
+    <Element
+        latin:elementName="alphabetAutomaticShifted"
+        latin:elementKeyboard="@xml/kbd_qwerty"
+        latin:elementAutoGenerate="true" />
+    <Element
+        latin:elementName="alphabetShiftLocked"
+        latin:elementKeyboard="@xml/kbd_qwerty"
+        latin:elementAutoGenerate="true" />
+    <Element
+        latin:elementName="alphabetShiftLockShifted"
+        latin:elementKeyboard="@xml/kbd_qwerty"
+        latin:elementAutoGenerate="true" />
+    <Element
         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/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 3a9423f..b3c5ed7 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -52,9 +52,9 @@
     public final int mAltCode;
 
     /** Label to display */
-    public final CharSequence mLabel;
+    public final String mLabel;
     /** Hint label to display on the key in conjunction with the label */
-    public final CharSequence mHintLabel;
+    public final String mHintLabel;
     /** Flags of the label */
     private final int mLabelFlags;
     private static final int LABEL_FLAGS_ALIGN_LEFT = 0x01;
@@ -187,7 +187,7 @@
     /**
      * This constructor is being used only for key in popup suggestions pane.
      */
-    public Key(Keyboard.Params params, CharSequence label, CharSequence hintLabel, Drawable icon,
+    public Key(Keyboard.Params params, String label, String hintLabel, Drawable icon,
             int code, CharSequence outputText, int x, int y, int width, int height) {
         mHeight = height - params.mVerticalGap;
         mHorizontalGap = params.mHorizontalGap;
@@ -260,7 +260,7 @@
         // Update row to have current x coordinate.
         row.setXPos(keyXPos + keyWidth);
 
-        final String[] moreKeys = style.getTextArray(keyAttr,
+        final String[] moreKeys = style.getStringArray(keyAttr,
                 R.styleable.Keyboard_Key_moreKeys);
         // In Arabic symbol layouts, we'd like to keep digits in more keys regardless of
         // config_digit_more_keys_enabled.
@@ -291,11 +291,11 @@
         final int disabledIconAttrId = KeyboardIconsSet.getIconAttrId(style.getInt(keyAttr,
                 R.styleable.Keyboard_Key_keyIconDisabled, KeyboardIconsSet.ICON_UNDEFINED));
         mDisabledIcon = iconsSet.getIconByAttrId(disabledIconAttrId);
-        mHintLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
+        mHintLabel = style.getString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
 
-        mLabel = style.getText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+        mLabel = style.getString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
         mLabelFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags, 0);
-        mOutputText = style.getText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
+        mOutputText = style.getString(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
         // Choose the first letter of the label as primary code if not
         // specified.
         final int code = style.getInt(keyAttr, R.styleable.Keyboard_Key_code,
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index c548f11..8c386da 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -245,10 +245,10 @@
     }
 
     // TODO: Remove this method.
-    public CharSequence adjustLabelCase(CharSequence label) {
+    public String adjustLabelCase(String label) {
         if (mId.isAlphabetKeyboard() && isShiftedOrShiftLocked() && !TextUtils.isEmpty(label)
                 && label.length() < 3 && Character.isLowerCase(label.charAt(0))) {
-            return label.toString().toUpperCase(mId.mLocale);
+            return label.toUpperCase(mId.mLocale);
         }
         return label;
     }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
index d95c3b3..8db8c94 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java
@@ -39,16 +39,14 @@
     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 final int mOrientation;
     public final int mWidth;
     public final int mMode;
-    public final int mElementState;
+    public final int mElementId;
     private final int mInputType;
     private final int mImeOptions;
     private final boolean mSettingsKeyEnabled;
@@ -70,14 +68,14 @@
 
     private final int mHashCode;
 
-    public KeyboardId(int elementState, Locale locale, int orientation, int width, int mode,
+    public KeyboardId(int elementId, 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.mElementId = elementId;
         this.mInputType = inputType;
         this.mImeOptions = imeOptions;
         this.mSettingsKeyEnabled = settingsKeyEnabled;
@@ -91,7 +89,7 @@
     private static int hashCode(KeyboardId id) {
         return Arrays.hashCode(new Object[] {
                 id.mOrientation,
-                id.mElementState,
+                id.mElementId,
                 id.mMode,
                 id.mWidth,
                 id.navigateAction(),
@@ -109,7 +107,7 @@
         if (other == this)
             return true;
         return other.mOrientation == this.mOrientation
-                && other.mElementState == this.mElementState
+                && other.mElementId == this.mElementId
                 && other.mMode == this.mMode
                 && other.mWidth == this.mWidth
                 && other.navigateAction() == this.navigateAction()
@@ -123,19 +121,19 @@
     }
 
     public boolean isAlphabetKeyboard() {
-        return mElementState < ELEMENT_SYMBOLS;
+        return mElementId < ELEMENT_SYMBOLS;
     }
 
     public boolean isSymbolsKeyboard() {
-        return mElementState == ELEMENT_SYMBOLS || mElementState == ELEMENT_SYMBOLS_SHIFT;
+        return mElementId == ELEMENT_SYMBOLS || mElementId == ELEMENT_SYMBOLS_SHIFTED;
     }
 
     public boolean isPhoneKeyboard() {
-        return mElementState == ELEMENT_PHONE || mElementState == ELEMENT_PHONE_SHIFT;
+        return mElementId == ELEMENT_PHONE || mElementId == ELEMENT_PHONE_SHIFTED;
     }
 
     public boolean isPhoneShiftKeyboard() {
-        return mElementState == ELEMENT_PHONE_SHIFT;
+        return mElementId == ELEMENT_PHONE_SHIFTED;
     }
 
     public boolean navigateAction() {
@@ -190,7 +188,7 @@
     @Override
     public String toString() {
         return String.format("[%s %s %s%d %s %s %s%s%s%s%s%s%s]",
-                elementStateToString(mElementState),
+                elementIdToName(mElementId),
                 mLocale,
                 (mOrientation == 1 ? "port" : "land"), mWidth,
                 modeName(mMode),
@@ -213,19 +211,17 @@
                 && TextUtils.equals(a.privateImeOptions, b.privateImeOptions);
     }
 
-    public static String elementStateToString(int elementState) {
-        switch (elementState) {
+    public static String elementIdToName(int elementId) {
+        switch (elementId) {
         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 2852520..c7f964a 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java
@@ -40,6 +40,7 @@
 import java.lang.ref.SoftReference;
 import java.util.HashMap;
 import java.util.Locale;
+import java.util.Map;
 
 /**
  * This class represents a set of keyboards. Each of them represents a different keyboard
@@ -57,7 +58,18 @@
     private final Context mContext;
     private final Params mParams;
 
-    private static class Params {
+    static class KeyboardElement {
+        final int mElementId;
+        final int mLayoutId;
+        final boolean mAutoGenerate;
+        KeyboardElement(int elementId, int layoutId, boolean autoGenerate) {
+            mElementId = elementId;
+            mLayoutId = layoutId;
+            mAutoGenerate = autoGenerate;
+        }
+    }
+
+    static class Params {
         int mMode;
         int mInputType;
         int mImeOptions;
@@ -69,7 +81,8 @@
         Locale mLocale;
         int mOrientation;
         int mWidth;
-        final HashMap<Integer, Integer> mElementKeyboards = new HashMap<Integer, Integer>();
+        final Map<Integer, KeyboardElement> mElementKeyboards =
+                new HashMap<Integer, KeyboardElement>();
         Params() {}
     }
 
@@ -104,16 +117,18 @@
     }
 
     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 Keyboard keyboard = getKeyboard(mContext, xmlId, id);
+        final int elementId = KeyboardSet.getElementId(mParams.mMode, isSymbols, isShift);
+        final KeyboardElement keyboardElement = mParams.mElementKeyboards.get(elementId);
+        // TODO: If keyboardElement.mAutoGenerate is true, the keyboard will be auto generated
+        // based on keyboardElement.mKayoutId Keyboard XML definition.
+        final KeyboardId id = KeyboardSet.getKeyboardId(elementId, isSymbols, mParams);
+        final Keyboard keyboard = getKeyboard(mContext, keyboardElement.mLayoutId, id);
         return keyboard;
     }
 
     public KeyboardId getMainKeyboardId() {
-        final int elementState = Builder.getElementState(mParams.mMode, false, false);
-        return Builder.getKeyboardId(elementState, false, mParams);
+        final int elementId = KeyboardSet.getElementId(mParams.mMode, false, false);
+        return KeyboardSet.getKeyboardId(elementId, false, mParams);
     }
 
     private Keyboard getKeyboard(Context context, int xmlId, KeyboardId id) {
@@ -147,6 +162,30 @@
         return keyboard;
     }
 
+    private static int getElementId(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 elementId, boolean isSymbols, Params params) {
+        final boolean hasShortcutKey = params.mVoiceKeyEnabled
+                && (isSymbols != params.mVoiceKeyOnMain);
+        return new KeyboardId(elementId, 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;
@@ -211,38 +250,15 @@
             try {
                 parseKeyboardSet(mResources, R.xml.keyboard_set);
             } catch (Exception e) {
-                //
+                throw new RuntimeException(e.getMessage() + " in "
+                        + mResources.getResourceName(R.xml.keyboard_set)
+                        + " of locale " + mParams.mLocale);
             } finally {
                 LocaleUtils.setSystemLocale(mResources, savedLocale);
             }
             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);
@@ -302,7 +318,10 @@
                         R.styleable.KeyboardSet_Element_elementName, 0);
                 final int elementKeyboard = a.getResourceId(
                         R.styleable.KeyboardSet_Element_elementKeyboard, 0);
-                mParams.mElementKeyboards.put(elementName, elementKeyboard);
+                final boolean elementAutoGenerate = a.getBoolean(
+                        R.styleable.KeyboardSet_Element_elementAutoGenerate, false);
+                mParams.mElementKeyboards.put(elementName, new KeyboardElement(
+                        elementName, elementKeyboard, elementAutoGenerate));
             } finally {
                 a.recycle();
             }
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
index abc220e..c2798bb 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java
@@ -557,7 +557,7 @@
         float positionX = centerX;
         if (key.mLabel != null) {
             // Switch the character to uppercase if shift is pressed
-            final CharSequence label = mKeyboard.adjustLabelCase(key.mLabel);
+            final String label = mKeyboard.adjustLabelCase(key.mLabel);
             // For characters, use large font. For labels like "Done", use smaller font.
             paint.setTypeface(key.selectTypeface(params.mKeyTextStyle));
             final int labelSize = key.selectTextSize(params.mKeyLetterSize,
@@ -639,7 +639,7 @@
 
         // Draw hint label.
         if (key.mHintLabel != null) {
-            final CharSequence hint = key.mHintLabel;
+            final String hint = key.mHintLabel;
             final int hintColor;
             final int hintSize;
             if (key.hasHintLabel()) {
@@ -778,12 +778,12 @@
         return width;
     }
 
-    private static float getLabelWidth(CharSequence label, Paint paint) {
+    private static float getLabelWidth(String label, Paint paint) {
         paint.getTextBounds(label.toString(), 0, label.length(), sTextBounds);
         return sTextBounds.width();
     }
 
-    public float getDefaultLabelWidth(CharSequence label, Paint paint) {
+    public float getDefaultLabelWidth(String label, Paint paint) {
         paint.setTextSize(mKeyDrawParams.mKeyLabelSize);
         paint.setTypeface(mKeyDrawParams.mKeyTextStyle);
         return getLabelWidth(label, paint);
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
index faea389..b7215ec 100644
--- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
+++ b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java
@@ -40,8 +40,8 @@
     private static final KeyStyle EMPTY_KEY_STYLE = new EmptyKeyStyle();
 
     public interface KeyStyle {
-        public String[] getTextArray(TypedArray a, int index);
-        public CharSequence getText(TypedArray a, int index);
+        public String[] getStringArray(TypedArray a, int index);
+        public String getString(TypedArray a, int index);
         public int getInt(TypedArray a, int index, int defaultValue);
         public int getFlag(TypedArray a, int index, int defaultValue);
     }
@@ -52,13 +52,13 @@
         }
 
         @Override
-        public String[] getTextArray(TypedArray a, int index) {
-            return parseTextArray(a, index);
+        public String[] getStringArray(TypedArray a, int index) {
+            return parseStringArray(a, index);
         }
 
         @Override
-        public CharSequence getText(TypedArray a, int index) {
-            return a.getText(index);
+        public String getString(TypedArray a, int index) {
+            return a.getString(index);
         }
 
         @Override
@@ -71,16 +71,15 @@
             return a.getInt(index, defaultValue);
         }
 
-        protected static String[] parseTextArray(TypedArray a, int index) {
+        protected static String[] parseStringArray(TypedArray a, int index) {
             if (!a.hasValue(index))
                 return null;
-            final CharSequence text = a.getText(index);
-            return parseCsvText(text.toString(), a.getResources(), R.string.english_ime_name);
+            return parseCsvString(a.getString(index), a.getResources(), R.string.english_ime_name);
         }
     }
 
     /* package for test */
-    static String[] parseCsvText(String rawText, Resources res, int packageNameResId) {
+    static String[] parseCsvString(String rawText, Resources res, int packageNameResId) {
         final String text = Utils.resolveStringResource(rawText, res, packageNameResId);
         final int size = text.length();
         if (size == 0) {
@@ -139,15 +138,15 @@
         private final HashMap<Integer, Object> mAttributes = new HashMap<Integer, Object>();
 
         @Override
-        public String[] getTextArray(TypedArray a, int index) {
+        public String[] getStringArray(TypedArray a, int index) {
             return a.hasValue(index)
-                    ? super.getTextArray(a, index) : (String[])mAttributes.get(index);
+                    ? super.getStringArray(a, index) : (String[])mAttributes.get(index);
         }
 
         @Override
-        public CharSequence getText(TypedArray a, int index) {
+        public String getString(TypedArray a, int index) {
             return a.hasValue(index)
-                    ? super.getText(a, index) : (CharSequence)mAttributes.get(index);
+                    ? super.getString(a, index) : (String)mAttributes.get(index);
         }
 
         @Override
@@ -170,10 +169,10 @@
             // TODO: Currently not all Key attributes can be declared as style.
             readInt(keyAttr, R.styleable.Keyboard_Key_code);
             readInt(keyAttr, R.styleable.Keyboard_Key_altCode);
-            readText(keyAttr, R.styleable.Keyboard_Key_keyLabel);
-            readText(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
-            readText(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
-            readTextArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
+            readString(keyAttr, R.styleable.Keyboard_Key_keyLabel);
+            readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText);
+            readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel);
+            readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys);
             readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags);
             readInt(keyAttr, R.styleable.Keyboard_Key_keyIcon);
             readInt(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled);
@@ -183,9 +182,9 @@
             readFlag(keyAttr, R.styleable.Keyboard_Key_keyActionFlags);
         }
 
-        private void readText(TypedArray a, int index) {
+        private void readString(TypedArray a, int index) {
             if (a.hasValue(index))
-                mAttributes.put(index, a.getText(index));
+                mAttributes.put(index, a.getString(index));
         }
 
         private void readInt(TypedArray a, int index) {
@@ -199,8 +198,8 @@
                 mAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0));
         }
 
-        private void readTextArray(TypedArray a, int index) {
-            final CharSequence[] value = parseTextArray(a, index);
+        private void readStringArray(TypedArray a, int index) {
+            final String[] value = parseStringArray(a, index);
             if (value != null)
                 mAttributes.put(index, value);
         }
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java
index bc8b7e3..38c31ad 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 void setAlphabetManualShiftedKeyboard();
         public void setAlphabetAutomaticShiftedKeyboard();
         public void setAlphabetShiftLockedKeyboard();
+        // TODO: Add this.
+        //public void setAlphabetShiftLockShiftedKeyboard();
         public void setSymbolsKeyboard();
         public void setSymbolsShiftedKeyboard();
 
diff --git a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
index 3d26d97..f42b8e6 100644
--- a/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
+++ b/java/src/com/android/inputmethod/latin/suggestions/MoreSuggestions.java
@@ -72,7 +72,7 @@
                 int pos = fromPos, rowStartPos = fromPos;
                 final int size = Math.min(suggestions.size(), SuggestionsView.MAX_SUGGESTIONS);
                 while (pos < size) {
-                    final CharSequence word = suggestions.getWord(pos);
+                    final String word = suggestions.getWord(pos).toString();
                     // TODO: Should take care of text x-scaling.
                     mWidths[pos] = (int)view.getDefaultLabelWidth(word, paint) + padding;
                     final int numColumn = pos - rowStartPos + 1;
diff --git a/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java b/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
index 29881d9..2ae8027 100644
--- a/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
+++ b/tests/src/com/android/inputmethod/keyboard/internal/KeyStylesTests.java
@@ -39,7 +39,7 @@
     }
 
     private void assertTextArray(String message, String value, String ... expected) {
-        final String actual[] = KeyStyles.parseCsvText(value, mTestResources,
+        final String actual[] = KeyStyles.parseCsvString(value, mTestResources,
                 R.string.empty_string);
         if (expected.length == 0) {
             assertNull(message, actual);
