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/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index f78af8a..50b8e53 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -25,6 +25,8 @@
     latin:rowHeight="25%p"
     latin:horizontalGap="@dimen/key_horizontal_gap"
     latin:verticalGap="@dimen/key_bottom_gap"
+    latin:popupKeyboardTemplate="@xml/kbd_popup_template"
+    latin:maxPopupKeyboardColumn="@integer/config_max_popup_keyboard_column"
 >
     <include
         latin:keyboardLayout="@xml/kbd_key_styles" />
@@ -39,29 +41,23 @@
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="1"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="¹½⅓¼⅛" />
+            latin:popupCharacters="¹,½,⅓,¼,⅛" />
         <Key
             latin:keyLabel="2"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="²⅔" />
+            latin:popupCharacters="²,⅔" />
         <Key
             latin:keyLabel="3"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="³¾⅜" />
+            latin:popupCharacters="³,¾,⅜" />
         <Key
             latin:keyLabel="4"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="⁴" />
         <Key
             latin:keyLabel="5"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="⅝" />
         <Key
             latin:keyLabel="6" />
         <Key
             latin:keyLabel="7"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="⅞" />
         <Key
             latin:keyLabel="8" />
@@ -69,8 +65,7 @@
             latin:keyLabel="9" />
         <Key
             latin:keyLabel="0"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="ⁿ∅" />
+            latin:popupCharacters="ⁿ,∅" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="9.331%p"
@@ -88,34 +83,27 @@
             latin:keyLabel="#" />
         <Key
             latin:keyLabel="$"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="¢£€¥₣₤₱" />
+            latin:popupCharacters="¢,£,€,¥,₣,₤,₱" />
         <Key
             latin:keyLabel="%"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="‰" />
         <Key
             latin:keyLabel="&amp;" />
         <Key
             latin:keyLabel="*"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="†‡★" />
+            latin:popupCharacters="†,‡,★" />
         <Key
             latin:keyLabel="-"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="_–—" />
+            latin:popupCharacters="_,–,—" />
         <Key
             latin:keyLabel="+"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="±" />
         <Key
             latin:keyLabel="("
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="[{&lt;" />
+            latin:popupCharacters="[,{,&lt;" />
         <Key
             latin:keyLabel=")"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="]}&gt;" />
+            latin:popupCharacters="],},&gt;" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyWidth="15.750%p"
@@ -130,16 +118,13 @@
             latin:keyEdgeFlags="left" />
         <Key
             latin:keyLabel="&lt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≤«‹" />
+            latin:popupCharacters="≤,«,‹" />
         <Key
             latin:keyLabel="&gt;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≥»›" />
+            latin:popupCharacters="≥,»,›" />
         <Key
             latin:keyLabel="="
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="≠≈" />
+            latin:popupCharacters="≠,≈" />
         <Key
             latin:keyLabel=":" />
         <Key
@@ -150,11 +135,9 @@
             latin:keyLabel="." />
         <Key
             latin:keyLabel="!"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="¡" />
         <Key
             latin:keyLabel="\?"
-            latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="¿" />
         <Key
             latin:keyStyle="moreKeyStyle"
@@ -176,8 +159,7 @@
             latin:keyWidth="37.454%p" />
         <Key
             latin:keyLabel="&quot;"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="“”«»˝" />
+            latin:popupCharacters="“,”,«,»,˝" />
         <Key
             latin:keyLabel="_" />
         <Key