Merge "Make no-recursive getWordRec"
diff --git a/java/res/values-xlarge/dimens.xml b/java/res/values-xlarge/dimens.xml
index ecf8709..f2d9ded 100644
--- a/java/res/values-xlarge/dimens.xml
+++ b/java/res/values-xlarge/dimens.xml
@@ -20,12 +20,12 @@
 
 <resources>
     <!-- key_height + key_bottom_gap = popup_key_height -->
-    <dimen name="key_height">13.0mm</dimen>
-    <dimen name="key_bottom_gap">1.5mm</dimen>
-    <dimen name="key_horizontal_gap">2.0mm</dimen>
+    <dimen name="key_height">14.5mm</dimen>
+    <dimen name="key_bottom_gap">0.0mm</dimen>
+    <dimen name="key_horizontal_gap">0.0mm</dimen>
     <dimen name="popup_key_height">13.0mm</dimen>
-    <dimen name="keyboard_top_padding">1.0mm</dimen>
-    <dimen name="keyboard_bottom_padding">1.0mm</dimen>
+    <dimen name="keyboard_top_padding">0.0mm</dimen>
+    <dimen name="keyboard_bottom_padding">0.0mm</dimen>
     <!-- key_height x 1.0 -->
     <dimen name="key_preview_height">13.0mm</dimen>
     <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml
index 60455a6..8a1f6ff 100644
--- a/java/res/xml-xlarge/kbd_key_styles.xml
+++ b/java/res/xml-xlarge/kbd_key_styles.xml
@@ -50,7 +50,6 @@
                 latin:keyIcon="@drawable/sym_keyboard_return_holo"
                 latin:iconPreview="@drawable/sym_keyboard_feedback_return"
                 latin:parentStyle="functionalKeyStyle" />
-            1
             <key-style
                 latin:styleName="spaceKeyStyle"
                 latin:codes="@integer/key_space"
@@ -69,6 +68,12 @@
                 latin:keyOutputText=";-) "
                 latin:keyHintIcon="@drawable/hint_popup_holo"
                 latin:popupKeyboard="@xml/popup_smileys" />
+            <key-style
+                latin:styleName="micKeyStyle"
+                latin:codes="@integer/key_voice"
+                latin:keyIcon="@drawable/sym_keyboard_mic"
+                latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                latin:parentStyle="functionalKeyStyle" />
         </case>
         <case
             latin:colorScheme="black"
@@ -113,6 +118,12 @@
                 latin:keyOutputText=";-) "
                 latin:keyHintIcon="@drawable/hint_popup_holo"
                 latin:popupKeyboard="@xml/popup_smileys" />
+            <key-style
+                latin:styleName="micKeyStyle"
+                latin:codes="@integer/key_voice"
+                latin:keyIcon="@drawable/sym_bkeyboard_mic"
+                latin:iconPreview="@drawable/sym_keyboard_feedback_mic"
+                latin:parentStyle="functionalKeyStyle" />
         </case>
     </switch>
     <key-style
diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-xlarge/kbd_number.xml
index f5f4fbc..1198466 100644
--- a/java/res/xml-xlarge/kbd_number.xml
+++ b/java/res/xml-xlarge/kbd_number.xml
@@ -128,6 +128,9 @@
             latin:keyLabel="0" />
         <Key
             latin:keyLabel="#" />
+        <Key
+            latin:keyStyle="micKeyStyle"
+            latin:keyWidth="8.042%p" />
         <!-- 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.xml b/java/res/xml-xlarge/kbd_phone.xml
index 1e66102..5a6ec9a 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -136,6 +136,9 @@
             latin:keyStyle="num0KeyStyle" />
         <Key
             latin:keyStyle="numPoundKeyStyle" />
+        <Key
+            latin:keyStyle="micKeyStyle"
+            latin:keyWidth="8.042%p" />
         <!-- 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 7eadb96..743f5a5 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -148,6 +148,9 @@
             latin:keyStyle="num0KeyStyle" />
         <Key
             latin:keyStyle="numPoundKeyStyle" />
+        <Key
+            latin:keyStyle="micKeyStyle"
+            latin:keyWidth="8.042%p" />
         <!-- 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_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml
index 7b9049a..205f2e0 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row4.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml
@@ -45,8 +45,23 @@
                     latin:keyWidth="16.084%p" />
             </case>
             <default>
-                <Key
-                    latin:keyStyle="smileyKeyStyle" />
+                <switch>
+                    <case
+                        latin:imeOptions="actionSearch"
+                    >
+                        <Key
+                            latin:keyLabel=":"
+                            latin:manualTemporaryUpperCaseCode="43"
+                            latin:keyHintIcon="@drawable/key_hint_plus_holo"
+                            latin:manualTemporaryUpperCaseHintIcon="@drawable/key_hint_plus_large_holo"
+                            latin:popupKeyboard="@xml/kbd_popup_template"
+                            latin:popupCharacters="+" />
+                    </case>
+                    <default>
+                        <Key
+                            latin:keyStyle="smileyKeyStyle" />
+                    </default>
+                </switch>
                 <Key
                     latin:keyLabel="/"
                     latin:manualTemporaryUpperCaseCode="64"
@@ -104,5 +119,7 @@
                     latin:popupCharacters="_" />
             </default>
         </switch>
+        <Key
+            latin:keyStyle="micKeyStyle" />
     </Row>
 </merge>
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index a5e169d..6701c9c 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -178,5 +178,7 @@
             latin:popupCharacters="“”«»˝" />
         <Key
             latin:keyLabel="_" />
+        <Key
+            latin:keyStyle="micKeyStyle" />
     </Row>
 </Keyboard>
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index 6edfbc7..b635271 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -56,9 +56,11 @@
         <Key
             latin:keyLabel="×" />
         <Key
-            latin:keyLabel="{" />
+            latin:keyLabel="§"
+            latin:popupKeyboard="@xml/kbd_popup_template"
+            latin:popupCharacters="¶" />
         <Key
-            latin:keyLabel="}" />
+            latin:keyLabel="Δ" />
         <Key
             latin:keyStyle="deleteKeyStyle"
             latin:keyWidth="9.331%p"
@@ -85,17 +87,15 @@
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="↑↓←→" />
         <Key
-            latin:keyLabel="°"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="¶§" />
+            latin:keyLabel="°" />
         <Key
             latin:keyLabel="±"
             latin:popupKeyboard="@xml/kbd_popup_template"
             latin:popupCharacters="∞" />
         <Key
-            latin:keyLabel="[" />
+            latin:keyLabel="{" />
         <Key
-            latin:keyLabel="]" />
+            latin:keyLabel="}" />
         <Key
             latin:keyStyle="returnKeyStyle"
             latin:keyWidth="15.750%p"
@@ -113,13 +113,11 @@
         <Key
             latin:keyLabel="©" />
         <Key
-            latin:keyLabel="®"
-            latin:popupKeyboard="@xml/kbd_popup_template"
-            latin:popupCharacters="™" />
+            latin:keyLabel="®" />
         <Key
-            latin:keyLabel="{" />
+            latin:keyLabel="™" />
         <Key
-            latin:keyLabel="}" />
+            latin:keyLabel="℅" />
         <Key
             latin:keyLabel="," />
         <Key
@@ -142,5 +140,7 @@
         <Key
             latin:keyStyle="spaceKeyStyle"
             latin:keyWidth="37.454%p" />
+        <Key
+            latin:keyStyle="micKeyStyle" />
     </Row>
 </Keyboard>