Update tablet keyboard layout to version 4

Bug: 3216592
Change-Id: I9950292184d9d0e131f76498067b0a6cb462a0ab
diff --git a/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png
new file mode 100644
index 0000000..d584dad
--- /dev/null
+++ b/java/res/drawable-mdpi/key_hint_underline_large_holo.9.png
Binary files differ
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index 013f005..f304996 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -20,7 +20,7 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
+    latin:keyWidth="11.949%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
@@ -31,40 +31,38 @@
             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" />
         <!-- To match one character label size with "Tab", I placed spaces around the char '-'
              and '+'. -->
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.470%p" />
         <Key
             latin:codes="45"
-            latin:keyLabel=" - " />
+            latin:keyLabel=" - "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="43"
-            latin:keyLabel=" + " />
+            latin:keyLabel=" + "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="49"
-            latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num1" />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num2" />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num3" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyLabel="@string/label_backspace_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -74,41 +72,39 @@
             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"
             latin:keyEdgeFlags="left" />
         <!-- To match one character label size with "More", I placed spaces around the char ','
              and '.'. -->
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.470%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel=" , " />
+            latin:keyLabel=" , "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="46"
-            latin:keyLabel=" . " />
+            latin:keyLabel=" . "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="52"
-            latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num4" />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num5" />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num6" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -118,27 +114,26 @@
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="20.2%p" />
+            latin:horizontalGap="20.427%p" />
         <Key
             latin:codes="40"
-            latin:keyLabel=" ( " />
+            latin:keyLabel=" ( "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="41"
-            latin:keyLabel=" ) " />
+            latin:keyLabel=" ) "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="55"
-            latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num7" />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num8" />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num9" />
         <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
              the touch event on the area, "9" is intentionally not marked as a right edge key. -->
         </Row>
@@ -147,26 +142,23 @@
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="20.2%p" />
+            latin:horizontalGap="20.427%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="16.4%p" />
+            latin:keyWidth="16.085%p" />
         <Spacer
-            latin:horizontalGap="8.1%p" />
+            latin:horizontalGap="8.479%p" />
         <Key
             latin:codes="42"
-            latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numstar" />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num0" />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numpound" />
         <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
              the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index 618d2c3..42a6c61 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -20,7 +20,7 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
+    latin:keyWidth="11.949%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
@@ -31,43 +31,42 @@
             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" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="45"
-            latin:keyLabel=" - " />
+            latin:keyLabel=" - "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="43"
-            latin:keyLabel=" + " />
+            latin:keyLabel=" + "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel="@string/label_pause_key" />
+            latin:keyLabel="@string/label_pause_key"
+            latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "Tab" and "Pause, I placed spaces around the
              char '-' and '+'. -->
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="49"
-            latin:keyIcon="@drawable/sym_keyboard_num1"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num1" />
         <Key
             latin:codes="50"
-            latin:keyIcon="@drawable/sym_keyboard_num2"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num2" />
         <Key
             latin:codes="51"
-            latin:keyIcon="@drawable/sym_keyboard_num3"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num3" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_delete"
             latin:keyLabel="@string/label_backspace_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
@@ -77,44 +76,43 @@
             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"
             latin:keyEdgeFlags="left" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="44"
-            latin:keyLabel=" , " />
+            latin:keyLabel=" , "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="46"
-            latin:keyLabel=" . " />
+            latin:keyLabel=" . "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="59"
-            latin:keyLabel="@string/label_wait_key" />
+            latin:keyLabel="@string/label_wait_key"
+            latin:keyWidth="8.042%p" />
         <!-- To match one character label size with "More" and "Wait", I placed spaces around the
              char ',' and '.'. -->
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="52"
-            latin:keyIcon="@drawable/sym_keyboard_num4"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num4" />
         <Key
             latin:codes="53"
-            latin:keyIcon="@drawable/sym_keyboard_num5"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num5" />
         <Key
             latin:codes="54"
-            latin:keyIcon="@drawable/sym_keyboard_num6"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num6" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="15.0%p"
+            latin:keyWidth="14.706%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
@@ -124,30 +122,30 @@
         <!-- There is an empty area bellow the "More" key and left of the "(" key.  To ignore
              the touch event on the area, "(" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="16.1%p" />
+            latin:horizontalGap="16.406%p" />
         <Key
             latin:codes="40"
-            latin:keyLabel=" ( " />
+            latin:keyLabel=" ( "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="41"
-            latin:keyLabel=" ) " />
+            latin:keyLabel=" ) "
+            latin:keyWidth="8.042%p" />
         <Key
             latin:codes="78"
-            latin:keyLabel=" N " />
+            latin:keyLabel=" N "
+            latin:keyWidth="8.042%p" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="55"
-            latin:keyIcon="@drawable/sym_keyboard_num7"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num7" />
         <Key
             latin:codes="56"
-            latin:keyIcon="@drawable/sym_keyboard_num8"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num8" />
         <Key
             latin:codes="57"
-            latin:keyIcon="@drawable/sym_keyboard_num9"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num9" />
         <!-- There is an empty area bellow the "Enter" key and right of the "9" key.  To ignore
              the touch event on the area, "9" is intentionally not marked as a right edge key. -->
     </Row>
@@ -156,26 +154,23 @@
         <!-- There is an empty area bellow the "More" key and left of the "space" key.  To ignore
              the touch event on the area, "space" is intentionally not marked as a left edge key. -->
         <Spacer
-            latin:horizontalGap="16.1%p" />
+            latin:horizontalGap="16.406%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="24.6%p" />
+            latin:keyWidth="24.127%p" />
         <Spacer
-            latin:horizontalGap="4.0%p" />
+            latin:horizontalGap="4.458%p" />
         <Key
             latin:codes="42"
-            latin:keyIcon="@drawable/sym_keyboard_numstar"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numstar" />
         <Key
             latin:codes="48"
-            latin:keyIcon="@drawable/sym_keyboard_num0"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_num0" />
         <Key
             latin:codes="35"
-            latin:keyIcon="@drawable/sym_keyboard_numpound"
-            latin:keyWidth="12.1%p " />
+            latin:keyIcon="@drawable/sym_keyboard_numpound" />
         <!-- There is an empty area bellow the "Enter" key and right of the "#" key.  To ignore
              the touch event on the area, "#" is intentionally not marked as a right edge key. -->
     </Row>
diff --git a/java/res/xml-xlarge/kbd_qwerty.xml b/java/res/xml-xlarge/kbd_qwerty.xml
index 6000911..b450604 100644
--- a/java/res/xml-xlarge/kbd_qwerty.xml
+++ b/java/res/xml-xlarge/kbd_qwerty.xml
@@ -20,7 +20,6 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
diff --git a/java/res/xml-xlarge/kbd_qwerty_row1.xml b/java/res/xml-xlarge/kbd_qwerty_row1.xml
index 7542079..48e7b32 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row1.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row1.xml
@@ -22,12 +22,14 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -74,7 +76,7 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row2.xml b/java/res/xml-xlarge/kbd_qwerty_row2.xml
index cf1a908..234aa0c 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row2.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row2.xml
@@ -21,12 +21,14 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_symbol_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -57,28 +59,11 @@
             latin:keyLabel="l"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="@string/alternates_for_l" />
-        <switch>
-            <case
-                latin:mode="email"
-            >
-                <Key
-                    latin:keyLabel="\@" />
-            </case>
-            <default>
-                <Key
-                    latin:keyLabel="\'"
-                    latin:manualTemporaryUpperCaseCode="34"
-                    latin:keyHintIcon="@drawable/key_hint_quote_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
-                    latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="&quot;" />
-            </default>
-        </switch>
         <Key
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
diff --git a/java/res/xml-xlarge/kbd_qwerty_row3.xml b/java/res/xml-xlarge/kbd_qwerty_row3.xml
index cc3476c..d58f2c0 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row3.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row3.xml
@@ -21,12 +21,14 @@
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_shift_key"
-            latin:keyWidth="13.1%p"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
@@ -82,7 +84,7 @@
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_shift_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml
index 63b5c2c..47c383c 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row4.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml
@@ -22,9 +22,11 @@
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="15.1%p" />
+            latin:horizontalGap="16.404%p" />
         <switch>
             <case
                 latin:mode="email"
@@ -34,7 +36,7 @@
                     latin:keyOutputText=".com"
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_domains"
-                    latin:keyWidth="16.4%p" />
+                    latin:keyWidth="16.084%p" />
             </case>
             <!-- TODO: implement logical OR for <case> attribute -->
             <case
@@ -45,7 +47,7 @@
                     latin:keyOutputText=".com"
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_domains"
-                    latin:keyWidth="16.4%p" />
+                    latin:keyWidth="16.084%p" />
             </case>
             <default>
                 <Key
@@ -54,19 +56,19 @@
                     latin:keyHintIcon="@drawable/hint_popup"
                     latin:popupKeyboard="@xml/popup_smileys" />
                 <Key
-                    latin:keyLabel="="
-                    latin:manualTemporaryUpperCaseCode="43"
-                    latin:keyHintIcon="@drawable/key_hint_plus_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
+                    latin:keyLabel="/"
+                    latin:manualTemporaryUpperCaseCode="64"
+                    latin:keyHintIcon="@drawable/key_hint_at_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="+" />
+                    latin:popupCharacters="\@" />
             </default>
         </switch>
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
         <switch>
             <case
@@ -75,14 +77,25 @@
                 <Key
                     latin:keyLabel="-" />
             </case>
+            <case
+                latin:mode="url"
+            >
+                <Key
+                    latin:keyLabel="/"
+                    latin:manualTemporaryUpperCaseCode="58"
+                    latin:keyHintIcon="@drawable/key_hint_colon_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
+                    latin:popupKeyboard="@xml/kbd_popup_template"
+                    latin:popupCharacters=":" />
+            </case>
             <default>
                 <Key
-                    latin:keyLabel="-"
-                    latin:manualTemporaryUpperCaseCode="47"
-                    latin:keyHintIcon="@drawable/key_hint_slash_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_slash_large_holo"
+                    latin:keyLabel="\'"
+                    latin:manualTemporaryUpperCaseCode="34"
+                    latin:keyHintIcon="@drawable/key_hint_quote_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_quote_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="/" />
+                    latin:popupCharacters="&quot;" />
             </default>
         </switch>
         <switch>
@@ -92,25 +105,14 @@
                 <Key
                     latin:keyLabel="_" />
             </case>
-            <case
-                latin:mode="url"
-            >
-                <Key
-                    latin:keyLabel="_"
-                    latin:manualTemporaryUpperCaseCode="58"
-                    latin:keyHintIcon="@drawable/key_hint_colon_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_colon_large_holo"
-                    latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters=":" />
-            </case>
             <default>
                 <Key
-                    latin:keyLabel="_"
-                    latin:manualTemporaryUpperCaseCode="64"
-                    latin:keyHintIcon="@drawable/key_hint_at_holo"
-                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_at_large_holo"
+                    latin:keyLabel="-"
+                    latin:manualTemporaryUpperCaseCode="95"
+                    latin:keyHintIcon="@drawable/key_hint_underline_holo"
+                    latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_underline_large_holo"
                     latin:popupKeyboard="@xml/kbd_popup_template"
-                    latin:popupCharacters="\@" />
+                    latin:popupCharacters="_" />
             </default>
         </switch>
     </Row>
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index 354558e9d..6ce8aad 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -20,18 +20,19 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -72,22 +73,22 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyLabel="\@" />
-        <Key
             latin:keyLabel="#" />
         <Key
             latin:keyLabel="$"
@@ -123,36 +124,40 @@
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyLabel="&quot;"
+            latin:keyLabel="&lt;"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="“”«»˝" />
+            latin:popupCharacters="≤«‹" />
         <Key
-            latin:keyLabel="\'" />
+            latin:keyLabel="&gt;"
+            latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:popupCharacters="≥»›" />
+        <Key
+            latin:keyLabel="[" />
+        <Key
+            latin:keyLabel="]" />
+        <Key
+            latin:keyLabel="=" />
         <Key
             latin:keyLabel=":" />
         <Key
             latin:keyLabel=";" />
         <Key
-            latin:keyLabel="/" />
-        <Key
-            latin:keyLabel="," />
-        <Key
-            latin:keyLabel="." />
-        <Key
             latin:keyLabel="!"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="¡" />
@@ -165,20 +170,32 @@
             latin:keyLabel="@string/label_more_key"
             latin:iconPreview="@drawable/sym_keyboard_feedback_shift"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="31.5%p" />
+            latin:horizontalGap="16.404%p" />
+        <Key
+            latin:keyLabel="/" />
+        <Key
+            latin:keyLabel="\@" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
+        <Key
+            latin:keyLabel="&quot;"
+            latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:popupCharacters="“”«»˝" />
+        <Key
+            latin:keyLabel="_" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index 5042b72..3f4cc26 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -20,18 +20,19 @@
 
 <Keyboard
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
-    latin:keyWidth="8.2%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
     latin:keyHeight="@dimen/key_height"
 >
     <!-- This row is intentionally not marked as a top row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.272%p"
+    >
         <Key
             latin:codes="@integer/key_tab"
             latin:keyLabel="@string/label_tab_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="7.0%p"
+            latin:keyWidth="7.949%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -62,17 +63,19 @@
             latin:codes="@integer/key_delete"
             latin:keyIcon="@drawable/sym_keyboard_delete"
             latin:iconPreview="@drawable/sym_keyboard_feedback_delete"
-            latin:keyWidth="11.0%p"
+            latin:keyWidth="9.331%p"
             latin:isModifier="true"
             latin:isRepeatable="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.157%p"
+    >
         <Key
             latin:codes="@integer/key_symbol"
             latin:keyLabel="@string/label_alpha_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="9.7%p"
+            latin:keyWidth="11.167%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="left" />
         <Key
@@ -87,12 +90,10 @@
             latin:keyLabel="^"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="↑↓←→" />
-         <Key
-            latin:keyLabel="_" />
         <Key
-            latin:keyLabel="="
+            latin:keyLabel="∞"
             latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≠≈∞" />
+            latin:popupCharacters="≠≈" />
         <Key
             latin:keyLabel="±" />
         <Key
@@ -103,41 +104,39 @@
             latin:codes="@integer/key_return"
             latin:keyLabel="@string/label_return_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="8.3%p"
+            latin:keyWidth="15.750%p"
             latin:isModifier="true"
             latin:keyEdgeFlags="right" />
     </Row>
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Key
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignLeft|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="15.192%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyLabel="&lt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≤«‹" />
-        <Key
-            latin:keyLabel="&gt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≥»›" />
-        <Key
             latin:keyLabel="©" />
         <Key
             latin:keyLabel="®"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="™" />
         <Key
-            latin:keyLabel="\\" />
+            latin:keyLabel="{" />
+        <Key
+            latin:keyLabel="}" />
         <Key
             latin:keyLabel="°"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="¶§" />
         <Key
-            latin:keyLabel="∞" />
+            latin:keyLabel="," />
+        <Key
+            latin:keyLabel="." />
         <Key
             latin:keyLabel="¡" />
         <Key
@@ -146,20 +145,22 @@
             latin:codes="@integer/key_shift"
             latin:keyLabel="@string/label_more_key"
             latin:keyLabelOption="fontItalic|alignRight|alignBottom"
-            latin:keyWidth="13.1%p"
+            latin:keyWidth="12.430%p"
             latin:isModifier="true"
             latin:isSticky="true"
             latin:keyEdgeFlags="right" />
     </Row>
     <!-- This row is intentionally not marked as a bottom row -->
-    <Row>
+    <Row
+        latin:keyWidth="8.042%p"
+    >
         <Spacer
-            latin:horizontalGap="31.5%p" />
+            latin:horizontalGap="32.488%p" />
         <Key
             latin:codes="@integer/key_space"
             latin:keyIcon="@drawable/sym_keyboard_space"
             latin:iconPreview="@drawable/sym_keyboard_feedback_space"
-            latin:keyWidth="37.0%p"
+            latin:keyWidth="37.454%p"
             latin:isModifier="true" />
     </Row>
 </Keyboard>