Add keyLabelAlign attribute to Keyboard XML

Bug: 3216592
Change-Id: I88f8055199f2cd0525faf9374114fbebba53b951
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 64a4c9f..2087115 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -106,6 +106,14 @@
         <attr name="keyOutputText" format="string" />
         <!-- The label to display on the key. -->
         <attr name="keyLabel" format="string" />
+        <!-- The key label option -->
+        <attr name="keyLabelOption">
+            <!-- This should be aligned with BaseKeyboardView.KEY_LABEL_OPTION_* -->
+            <flag name="alignLeft" value="1" />
+            <flag name="alignRight" value="2" />
+            <flag name="alignBottom" value="8" />
+            <flag name="fontItalic" value="16" />
+        </attr>
         <!-- The unicode that this key generates in manual temporary upper case mode. -->
         <attr name="manualTemporaryUpperCaseCode" format="integer" />
         <!-- The icon to display on the key instead of the label. -->
@@ -132,14 +140,14 @@
     </declare-styleable>
 
     <declare-styleable name="BaseKeyboard_Case">
-        <!-- This should be matched with KeyboardSwitcher.MODE_* -->
+        <!-- This should be aligned with KeyboardSwitcher.MODE_* -->
         <attr name="mode">
-            <flag name="text" value="0" />
-            <flag name="url" value="1" />
-            <flag name="email" value="2" />
-            <flag name="im" value="3" />
-            <flag name="web" value="4" />
-            <flag name="phone" value="5" />
+            <enum name="text" value="0" />
+            <enum name="url" value="1" />
+            <enum name="email" value="2" />
+            <enum name="im" value="3" />
+            <enum name="web" value="4" />
+            <enum name="phone" value="5" />
         </attr>
         <attr name="settingsKey" format="string" />
         <attr name="voiceKey" format="string" />
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index cc513ae..018a1f9 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -226,6 +226,12 @@
     <string name="label_alpha_key">ABC</string>
     <!-- Label for ALT modifier key.  Must be short to fit on key! -->
     <string name="label_alt_key">ALT</string>
+    <!-- Label for Backspace modifier key.  Must be short to fit on key! -->
+    <string name="label_backspace_key">Backspace</string>
+    <!-- Label for Shift modifier key.  Must be short to fit on key! -->
+    <string name="label_shift_key">Shift</string>
+    <!-- Label for Return key.  Must be short to fit on key! -->
+    <string name="label_return_key">Return</string>
     <!-- Label for Shift modifier key of symbol keyboard.  Must be short to fit on key! -->
     <string name="label_more_key">More</string>
     <!-- Label for "Tab" key.  Must be short to fit on key! [CHAR LIMIT=4]-->
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 8199b01..013f005 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -61,8 +62,8 @@
             latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="@integer/key_delete"
-            latin:keyIcon="@drawable/sym_keyboard_delete"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
+            latin:keyLabel="@string/label_backspace_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="15.0%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
@@ -72,6 +73,7 @@
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_more_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
@@ -104,8 +106,8 @@
             latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="@integer/key_return"
-            latin:keyIcon="@drawable/sym_keyboard_return"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+            latin:keyLabel="@string/label_return_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="15.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 2e604d3..618d2c3 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -30,6 +30,7 @@
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -64,8 +65,8 @@
             latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="@integer/key_delete"
-            latin:keyIcon="@drawable/sym_keyboard_delete"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
+            latin:keyLabel="@string/label_backspace_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="15.0%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
@@ -75,6 +76,7 @@
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_more_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="12.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
@@ -110,8 +112,8 @@
             latin:horizontalGap="4.0%p" />
         <Key
             latin:codes="@integer/key_return"
-            latin:keyIcon="@drawable/sym_keyboard_return"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+            latin:keyLabel="@string/label_return_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="15.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row1.xml b/java/res/xml-xlarge/kbd_qwerty_row1.xml
index 51a7927..7542079 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row1.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row1.xml
@@ -25,7 +25,8 @@
     <Row>
         <Key
             latin:codes="@integer/key_tab"
-            latin:keyLabel="Tab"
+            latin:keyLabel="@string/label_tab_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row2.xml b/java/res/xml-xlarge/kbd_qwerty_row2.xml
index 71aa916..cf1a908 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row2.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row2.xml
@@ -25,6 +25,7 @@
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_symbol_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="9.7%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -75,8 +76,8 @@
         </switch>
         <Key
             latin:codes="@integer/key_return"
-            latin:keyIcon="@drawable/sym_keyboard_return"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+            latin:keyLabel="@string/label_return_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="8.3%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row3.xml b/java/res/xml-xlarge/kbd_qwerty_row3.xml
index 24d1b1d..cc3476c 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row3.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row3.xml
@@ -24,9 +24,9 @@
     <Row>
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabel="@string/label_shift_key"
             latin:keyWidth="13.1%p"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
@@ -80,8 +80,8 @@
         </switch>
         <Key
             latin:codes="@integer/key_shift"
-            latin:keyIcon="@drawable/sym_keyboard_shift"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabel="@string/label_shift_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="13.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index 1028533..354558e9d 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -29,7 +29,8 @@
     <Row>
         <Key
             latin:codes="@integer/key_tab"
-            latin:keyLabel="Tab"
+            latin:keyLabel="@string/label_tab_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -80,6 +81,7 @@
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="9.7%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -119,8 +121,8 @@
             latin:popupCharacters="]}&gt;" />
         <Key
             latin:codes="@integer/key_return"
-            latin:keyIcon="@drawable/sym_keyboard_return"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+            latin:keyLabel="@string/label_return_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="8.3%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
@@ -129,7 +131,7 @@
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="13.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
@@ -162,6 +164,7 @@
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="13.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index d6de3a0..5042b72 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -29,7 +29,8 @@
     <Row>
         <Key
             latin:codes="@integer/key_tab"
-            latin:keyLabel="Tab"
+            latin:keyLabel="@string/label_tab_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="7.0%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -70,6 +71,7 @@
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="9.7%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
@@ -99,8 +101,8 @@
             latin:keyLabel="]" />
         <Key
             latin:codes="@integer/key_return"
-            latin:keyIcon="@drawable/sym_keyboard_return"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_return"
+            latin:keyLabel="@string/label_return_key"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="8.3%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
@@ -109,7 +111,7 @@
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
             latin:keyWidth="13.1%p"
             latin:isModifier="true"
             latin:isSticky="true"
@@ -143,7 +145,7 @@
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
-            latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
+            latin:keyLabelOption="fontItalic|alignRight|alignBottom"
             latin:keyWidth="13.1%p"
             latin:isModifier="true"
             latin:isSticky="true"