Add popupKeyboardTemplate attribute to Keyboard

This change
- introduces the popupKeyboardTemplate attribute of Keyboard to
  specify XML Keyboard file for popup mini keyboard.
- introduces the maxPopupKeyboardColumn attribute of Keyboard to
  specify the maximum column of popup mini keyboard.
- changes the content format of the popupCharacters attribute of Key.
  It now represents keyLabel, codes and keyTextOutput of each key of
  popup mini keyboard using CSV format.

Bug: 2214959
Change-Id: I539e310f7e38a049ee193de0b4ad5d7afdce37b1
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 55c806c..549c2ae 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -89,15 +89,17 @@
         <attr name="horizontalGap" format="dimension|fraction" />
         <!-- Default vertical gap between rows of keys. -->
         <attr name="verticalGap" format="dimension|fraction" />
+        <!-- Popup keyboard layout template -->
+        <attr name="popupKeyboardTemplate" format="reference" />
     </declare-styleable>
 
     <declare-styleable name="Keyboard_Key">
         <!-- The unicode value or comma-separated values that this key outputs. -->
         <attr name="codes" format="integer|string" />
-        <!-- The XML keyboard layout of any popup keyboard. -->
-        <attr name="popupKeyboard" format="reference" />
         <!-- The characters to display in the popup keyboard. -->
         <attr name="popupCharacters" format="string" />
+        <!-- Maximum column of popup keyboard -->
+        <attr name="maxPopupKeyboardColumn" format="integer" />
         <!-- Key edge flags. -->
         <attr name="keyEdgeFlags">
             <!-- Key is anchored to the left of the keyboard. -->
diff --git a/java/res/values/bools.xml b/java/res/values/bools.xml
index 8742676..2a181e1 100644
--- a/java/res/values/bools.xml
+++ b/java/res/values/bools.xml
@@ -18,20 +18,9 @@
 */
 -->
 <resources>
-    <!-- Whether or not auto-correction should be enabled by default -->
-    <bool name="enable_autocorrect">true</bool>
     <!-- Whether this input method should be used as the default for a locale. Override it
          for latin languages. -->
     <bool name="im_is_default">false</bool>
     <!-- Whether or not voice input is enabled by default. -->
     <bool name="voice_input_default">true</bool>
-    <bool name="config_swipeDisambiguation">true</bool>
-    <!-- Whether or not Popup on key press is enabled by default -->
-    <bool name="default_popup_preview">true</bool>
-    <bool name="default_recorrection_enabled">true</bool>
-    <bool name="config_long_press_comma_for_settings_enabled">true</bool>
-    <bool name="config_enable_show_settings_key_option">true</bool>
-    <bool name="config_enable_show_subtype_settings">true</bool>
-    <bool name="config_enable_show_voice_key_option">true</bool>
-    <bool name="config_candidate_highlight_font_color_enabled">true</bool>
 </resources>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 14b8d00..d82960e 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -19,6 +19,15 @@
 -->
 
 <resources>
+    <bool name="config_swipeDisambiguation">true</bool>
+    <bool name="default_recorrection_enabled">true</bool>
+    <bool name="config_long_press_comma_for_settings_enabled">true</bool>
+    <bool name="config_enable_show_settings_key_option">true</bool>
+    <bool name="config_enable_show_subtype_settings">true</bool>
+    <bool name="config_enable_show_voice_key_option">true</bool>
+    <bool name="config_candidate_highlight_font_color_enabled">true</bool>
+    <!-- Whether or not Popup on key press is enabled by default -->
+    <bool name="config_default_popup_preview">true</bool>
     <integer name="config_delay_before_preview">0</integer>
     <integer name="config_delay_after_preview">10</integer>
     <integer name="config_preview_fadein_anim_time">0</integer>
@@ -33,6 +42,9 @@
     <integer name="config_long_press_shift_key_timeout">1200</integer>
     <integer name="config_multi_tap_key_timeout">800</integer>
     <string name="config_text_size_of_language_on_spacebar">small</string>
+    <integer name="config_max_popup_keyboard_column">9</integer>
+    <!-- Whether or not auto-correction should be enabled by default -->
+    <bool name="enable_autocorrect">true</bool>
     <string-array name="auto_correction_threshold_values">
         <!-- Off, When auto correction setting is Off, this value is not used. -->
         <item></item>
diff --git a/java/res/values/donottranslate-altchars.xml b/java/res/values/donottranslate-altchars.xml
index de4250e..85e06f2 100644
--- a/java/res/values/donottranslate-altchars.xml
+++ b/java/res/values/donottranslate-altchars.xml
@@ -18,15 +18,15 @@
 */
 -->
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="alternates_for_a">àáâãäåæ</string>
-    <string name="alternates_for_e">èéêë</string>
-    <string name="alternates_for_i">ìíîï</string>
-    <string name="alternates_for_o">òóôõöœø</string>
-    <string name="alternates_for_u">ùúûü</string>
-    <string name="alternates_for_s">§ß</string>
+    <string name="alternates_for_a">à,á,â,ã,ä,å,æ</string>
+    <string name="alternates_for_e">3,è,é,ê,ë</string>
+    <string name="alternates_for_i">ì,í,î,ï,8</string>
+    <string name="alternates_for_o">ò,ó,ô,õ,ö,œ,ø,9</string>
+    <string name="alternates_for_u">ù,ú,û,ü,7</string>
+    <string name="alternates_for_s">§,ß</string>
     <string name="alternates_for_n">ñ</string>
     <string name="alternates_for_c">ç</string>
-    <string name="alternates_for_y">ýÿ</string>
+    <string name="alternates_for_y">ý,ÿ,6</string>
     <string name="alternates_for_q">1</string>
     <string name="alternates_for_w">2</string>
     <string name="alternates_for_d"></string>
@@ -43,14 +43,13 @@
     <string name="alternates_for_scandinavia_row2_11"></string>
     <string name="alternates_for_cyrillic_e"></string>
     <string name="alternates_for_cyrillic_soft_sign"></string>
+    <string name="alternates_for_mic">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@drawable/sym_keyboard_mic|\@integer/key_voice"</string>
+    <string name="alternates_for_smiley">":-)|:-) ,:-(|:-( ,;-)|;-) ,:-P|:-P ,=-O|=-O ,:-*|:-* ,:O|:O ,B-)|B-) ,:-$|:-$ ,:-!|:-! ,:-[|:-[ ,O:-)|O:-) ,:-\\\\\\\\|:-\\\\\\\\ ,:\'(|:\'( ,:-D|:-D "</string>
+    <string name="alternates_for_settings_slash">"\@drawable/sym_keyboard_settings|\@integer/key_settings,/"</string>
+    <string name="alternates_for_settings_at">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\@"</string>
+    <string name="alternates_for_settings_comma">"\@drawable/sym_keyboard_settings|\@integer/key_settings,\\,"</string>
+    <string name="alternates_for_punctuation">":,/,&amp;,(,),-,+,;,\@,\',\",\?,!,\\,"</string>
+    <string name="keylabel_for_popular_domain">".com"</string>
     <!-- popular web domains for the locale - most popular, displayed on the keyboard -->
-    <string name="popular_domain_0">".com"</string>
-    <!-- popular web domains for the locale - item 1, displayed in the popup -->
-    <string name="popular_domain_1">".net"</string>
-    <!-- popular web domains for the locale - item 2, displayed in the popup -->
-    <string name="popular_domain_2">".org"</string>
-    <!-- popular web domains for the locale - item 3, displayed in the popup -->
-    <string name="popular_domain_3">".gov"</string>
-    <!-- popular web domains for the locale - item 4, displayed in the popup -->
-    <string name="popular_domain_4">".edu"</string>
+    <string name="alternates_for_popular_domain">".net,.org,.gov,.edu"</string>
 </resources>