Update Arabic keyboard

Bug: 4161983
Change-Id: Ie163cd17c87773bf2ca37fff7cff79611fff644f
diff --git a/java/res/xml-sw768dp/kbd_key_styles.xml b/java/res/xml-sw768dp/kbd_key_styles.xml
index 867a3bb..ab8784a 100644
--- a/java/res/xml-sw768dp/kbd_key_styles.xml
+++ b/java/res/xml-sw768dp/kbd_key_styles.xml
@@ -33,7 +33,7 @@
         latin:parentStyle="functionalKeyStyle"
         latin:isSticky="true" />
     <switch>
-        <case latin:languageCode="iw">
+        <case latin:languageCode="ar|iw">
             <key-style
                 latin:styleName="deleteKeyStyle"
                 latin:code="@integer/key_delete"
diff --git a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
index 402bb92..50d4d4b 100644
--- a/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
+++ b/java/res/xml-sw768dp/kbd_row4_apostrophe_dash.xml
@@ -39,10 +39,10 @@
         </case>
         <default>
             <Key
-                latin:keyLabel="\'"
+                latin:keyLabel="@string/keylabel_for_apostrophe"
                 latin:keyLabelOption="hasUppercaseLetter"
-                latin:keyHintLabel="&quot;"
-                latin:popupCharacters="&quot;" />
+                latin:keyHintLabel="@string/keyhintlabel_for_apostrophe"
+                latin:popupCharacters="@string/alternates_for_apostrophe" />
         </default>
     </switch>
     <switch>
@@ -54,10 +54,10 @@
         </case>
         <default>
             <Key
-                latin:keyLabel="-"
+                latin:keyLabel="@string/keylabel_for_dash"
                 latin:keyLabelOption="hasUppercaseLetter"
-                latin:keyHintLabel="_"
-                latin:popupCharacters="_" />
+                latin:keyHintLabel="@string/keyhintlabel_for_dash"
+                latin:popupCharacters="@string/alternates_for_dash" />
         </default>
     </switch>
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_rows_arabic.xml b/java/res/xml-sw768dp/kbd_rows_arabic.xml
index c181002..f3283ae 100644
--- a/java/res/xml-sw768dp/kbd_rows_arabic.xml
+++ b/java/res/xml-sw768dp/kbd_rows_arabic.xml
@@ -18,9 +18,6 @@
 */
 -->
 
-<!-- This file for Arabic layout is an alpha version. It allows to enter   -->
-<!-- some right-to-left text, but it has gone through no study whatsoever, -->
-<!-- and needs to be run through UX.                                       -->
 <merge
     xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
 >
@@ -44,21 +41,23 @@
             latin:keyLabel="ق" />
         <Key
             latin:keyLabel="ف"
-            latin:popupCharacters="ف,ڤ" />
+            latin:popupCharacters="ڤ" />
         <Key
             latin:keyLabel="غ" />
         <Key
             latin:keyLabel="ع" />
+        <!-- \ufeeb: ARABIC LETTER HEH INITIAL FORM
+             \u0647\u0640: ARABIC LETTER HEH + ARABIC TATWEEL -->
         <Key
             latin:keyLabel="ه"
-            latin:popupCharacters="ه,هـ" />
+            latin:popupCharacters="\ufeeb|\u0647\u0640" />
         <Key
             latin:keyLabel="خ" />
         <Key
             latin:keyLabel="ح" />
         <Key
             latin:keyLabel="ج"
-            latin:popupCharacters="ج,چ" />
+            latin:popupCharacters="چ" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-11.500%p"
@@ -81,13 +80,25 @@
             latin:keyLabel="ي" />
         <Key
             latin:keyLabel="ب"
-            latin:popupCharacters="ب,پ" />
+            latin:popupCharacters="پ" />
+        <!-- \ufefb: ARABIC LIGATURE LAM WITH ALEF ISOLATED FORM
+             \u0644: ARABIC LETTER LAM
+             \u0627: ARABIC LETTER ALEF
+             \ufef7: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA ABOVE ISOLATED FORM
+             \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
+             \ufef9: ARABIC LIGATURE LAM WITH ALEF WITH HAMZA BELOW ISOLATED FORM
+             \u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
+             \ufef5: ARABIC LIGATURE LAM WITH ALEF WITH MADDA ABOVE ISOLATED FORM
+             \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ل"
-            latin:popupCharacters="ل,لا" />
+            latin:popupCharacters="\ufefb|\u0644\u0627,\ufef7|\u0644\u0623,\ufef9|\u0644\u0625,\ufef5|\u0644\u0622" />
+        <!-- \u0623: ARABIC LETTER ALEF WITH HAMZA ABOVE
+             \u0625: ARABIC LETTER ALEF WITH HAMZA BELOW
+             \u0622: ARABIC LETTER ALEF WITH MADDA ABOVE -->
         <Key
             latin:keyLabel="ا"
-            latin:popupCharacters="ا,أ,إ,آ" />
+            latin:popupCharacters="\u0623,\u0625,\u0622" />
         <Key
             latin:keyLabel="ت" />
         <Key
@@ -96,7 +107,7 @@
             latin:keyLabel="م" />
         <Key
             latin:keyLabel="ك"
-            latin:popupCharacters="ك,گ" />
+            latin:popupCharacters="گ" />
         <Key
             latin:keyLabel="ط" />
         <Key
@@ -109,11 +120,8 @@
         latin:keyWidth="7.375%p"
     >
         <Key
-            latin:keyStyle="shiftKeyStyle"
-            latin:keyWidth="12.750%p"
-            latin:keyEdgeFlags="left" />
-        <Key
-            latin:keyLabel="ئ" />
+            latin:keyLabel="ئ"
+            latin:keyXPos="12.750%p" />
         <Key
             latin:keyLabel="ء" />
         <Key
@@ -130,11 +138,12 @@
             latin:keyLabel="و" />
         <Key
             latin:keyLabel="ز"
-            latin:popupCharacters="ز,ژ" />
+            latin:popupCharacters="ژ" />
         <Key
             latin:keyLabel="ظ" />
         <Key
             latin:keyLabel="د" />
     </Row>
-    <include latin:keyboardLayout="@xml/kbd_qwerty_row4" />
+    <include
+        latin:keyboardLayout="@xml/kbd_qwerty_row4" />
 </merge>
diff --git a/java/res/xml-sw768dp/kbd_symbols.xml b/java/res/xml-sw768dp/kbd_symbols.xml
index 0e6103a..eb77d4d 100644
--- a/java/res/xml-sw768dp/kbd_symbols.xml
+++ b/java/res/xml-sw768dp/kbd_symbols.xml
@@ -35,32 +35,35 @@
             latin:keyWidth="7.969%p"
             latin:keyEdgeFlags="left" />
         <Key
-            latin:keyLabel="1"
-            latin:popupCharacters="¹,½,⅓,¼,⅛" />
+            latin:keyLabel="@string/keylabel_for_symbols_1"
+            latin:popupCharacters="@string/alternates_for_symbols_1" />
         <Key
-            latin:keyLabel="2"
-            latin:popupCharacters="²,⅔" />
+            latin:keyLabel="@string/keylabel_for_symbols_2"
+            latin:popupCharacters="@string/alternates_for_symbols_2" />
         <Key
-            latin:keyLabel="3"
-            latin:popupCharacters="³,¾,⅜" />
+            latin:keyLabel="@string/keylabel_for_symbols_3"
+            latin:popupCharacters="@string/alternates_for_symbols_3" />
         <Key
-            latin:keyLabel="4"
-            latin:popupCharacters="⁴" />
+            latin:keyLabel="@string/keylabel_for_symbols_4"
+            latin:popupCharacters="@string/alternates_for_symbols_4" />
         <Key
-            latin:keyLabel="5"
-            latin:popupCharacters="⅝" />
+            latin:keyLabel="@string/keylabel_for_symbols_5"
+            latin:popupCharacters="@string/alternates_for_symbols_5" />
         <Key
-            latin:keyLabel="6" />
+            latin:keyLabel="@string/keylabel_for_symbols_6"
+            latin:popupCharacters="@string/alternates_for_symbols_6" />
         <Key
-            latin:keyLabel="7"
-            latin:popupCharacters="⅞" />
+            latin:keyLabel="@string/keylabel_for_symbols_7"
+            latin:popupCharacters="@string/alternates_for_symbols_7" />
         <Key
-            latin:keyLabel="8" />
+            latin:keyLabel="@string/keylabel_for_symbols_8"
+            latin:popupCharacters="@string/alternates_for_symbols_8" />
         <Key
-            latin:keyLabel="9" />
+            latin:keyLabel="@string/keylabel_for_symbols_9"
+            latin:popupCharacters="@string/alternates_for_symbols_9" />
         <Key
-            latin:keyLabel="0"
-            latin:popupCharacters="ⁿ,∅" />
+            latin:keyLabel="@string/keylabel_for_symbols_0"
+            latin:popupCharacters="@string/alternates_for_symbols_0" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyXPos="-9.219%p"
@@ -135,17 +138,19 @@
             </default>
         </switch>
         <Key
-            latin:keyLabel=";" />
+            latin:keyLabel="@string/keylabel_for_symbols_semicolon"
+            latin:popupCharacters="@string/alternates_for_symbols_semicolon" />
         <Key
-            latin:keyLabel="," />
+            latin:keyLabel="@string/keylabel_for_symbols_comma"
+            latin:popupCharacters="@string/alternates_for_symbols_comma" />
         <Key
             latin:keyLabel="." />
         <Key
             latin:keyLabel="!"
             latin:popupCharacters="¡" />
         <Key
-            latin:keyLabel="\?"
-            latin:popupCharacters="¿" />
+            latin:keyLabel="@string/keylabel_for_symbols_question"
+            latin:popupCharacters="@string/alternates_for_symbols_question" />
         <Key
             latin:keyStyle="moreKeyStyle"
             latin:keyXPos="-13.750%p"