Merge "Clear composing text when the auto-corrected word is reverted" into honeycomb
diff --git a/java/res/drawable-mdpi/sym_keyboard_settings_holo.png b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png
new file mode 100644
index 0000000..ad7618f
--- /dev/null
+++ b/java/res/drawable-mdpi/sym_keyboard_settings_holo.png
Binary files differ
diff --git a/java/res/values-xlarge/config.xml b/java/res/values-xlarge/config.xml
index 410b5e1..9129717 100644
--- a/java/res/values-xlarge/config.xml
+++ b/java/res/values-xlarge/config.xml
@@ -22,6 +22,7 @@
     <bool name="config_enable_show_settings_key_option">false</bool>
     <bool name="config_enable_show_subtype_settings">false</bool>
     <bool name="config_enable_show_voice_key_option">false</bool>
+    <bool name="config_enable_show_popup_on_keypress_option">false</bool>
     <bool name="config_candidate_highlight_font_color_enabled">false</bool>
     <bool name="config_swipe_down_dismiss_keyboard_enabled">false</bool>
     <bool name="config_sliding_key_input_enabled">false</bool>
diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 11b92e7..e582107 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -25,6 +25,7 @@
     <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_enable_show_popup_on_keypress_option">true</bool>
     <bool name="config_candidate_highlight_font_color_enabled">true</bool>
     <bool name="config_swipe_down_dismiss_keyboard_enabled">true</bool>
     <bool name="config_sliding_key_input_enabled">true</bool>
diff --git a/java/res/xml-xlarge/kbd_key_styles.xml b/java/res/xml-xlarge/kbd_key_styles.xml
index efbad5b..26659a2 100644
--- a/java/res/xml-xlarge/kbd_key_styles.xml
+++ b/java/res/xml-xlarge/kbd_key_styles.xml
@@ -66,6 +66,12 @@
                 latin:popupCharacters="@string/alternates_for_smiley"
                 latin:maxPopupKeyboardColumn="5" />
             <key-style
+                latin:styleName="settingsKeyStyle"
+                latin:code="@integer/key_settings"
+                latin:keyIcon="@drawable/sym_keyboard_settings_holo"
+                latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                latin:parentStyle="functionalKeyStyle" />
+            <key-style
                 latin:styleName="micKeyStyle"
                 latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_keyboard_voice_holo"
@@ -114,6 +120,12 @@
                 latin:popupCharacters="@string/alternates_for_smiley"
                 latin:maxPopupKeyboardColumn="5" />
             <key-style
+                latin:styleName="settingsKeyStyle"
+                latin:code="@integer/key_settings"
+                latin:keyIcon="@drawable/sym_bkeyboard_settings"
+                latin:iconPreview="@drawable/sym_keyboard_feedback_settings"
+                latin:parentStyle="functionalKeyStyle" />
+            <key-style
                 latin:styleName="micKeyStyle"
                 latin:code="@integer/key_voice"
                 latin:keyIcon="@drawable/sym_bkeyboard_mic"
diff --git a/java/res/xml-xlarge/kbd_number.xml b/java/res/xml-xlarge/kbd_number.xml
index c2cbb31..875548b 100644
--- a/java/res/xml-xlarge/kbd_number.xml
+++ b/java/res/xml-xlarge/kbd_number.xml
@@ -120,7 +120,10 @@
         <!-- 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.406%p" />
+            latin:horizontalGap="8.362%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle"
+            latin:keyWidth="8.042%p" />
         <Key
             latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
             latin:keyWidth="24.127%p" />
diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml
index c320ebb..b9444ad 100644
--- a/java/res/xml-xlarge/kbd_phone.xml
+++ b/java/res/xml-xlarge/kbd_phone.xml
@@ -128,10 +128,13 @@
         <!-- 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.427%p" />
+            latin:horizontalGap="12.340%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle"
+            latin:keyWidth="8.042%p" />
         <Key
             latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
-            latin:keyWidth="16.085%p" />
+            latin:keyWidth="16.084%p" />
         <Spacer
             latin:horizontalGap="8.479%p" />
         <Key
diff --git a/java/res/xml-xlarge/kbd_phone_symbols.xml b/java/res/xml-xlarge/kbd_phone_symbols.xml
index da15b5a..690bcde 100644
--- a/java/res/xml-xlarge/kbd_phone_symbols.xml
+++ b/java/res/xml-xlarge/kbd_phone_symbols.xml
@@ -140,7 +140,10 @@
         <!-- 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.406%p" />
+            latin:horizontalGap="8.362%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle"
+            latin:keyWidth="8.042%p" />
         <Key
             latin:keyStyle="nonSpecialBackgroundSpaceKeyStyle"
             latin:keyWidth="24.127%p" />
diff --git a/java/res/xml-xlarge/kbd_qwerty_row4.xml b/java/res/xml-xlarge/kbd_qwerty_row4.xml
index 98acfc1..9d0fd81 100644
--- a/java/res/xml-xlarge/kbd_qwerty_row4.xml
+++ b/java/res/xml-xlarge/kbd_qwerty_row4.xml
@@ -26,7 +26,9 @@
         latin:keyWidth="8.042%p"
     >
         <Spacer
-            latin:horizontalGap="16.404%p" />
+            latin:horizontalGap="8.362%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle" />
         <switch>
             <case
                 latin:mode="email"
diff --git a/java/res/xml-xlarge/kbd_symbols.xml b/java/res/xml-xlarge/kbd_symbols.xml
index d804f79..e56cc92 100644
--- a/java/res/xml-xlarge/kbd_symbols.xml
+++ b/java/res/xml-xlarge/kbd_symbols.xml
@@ -149,7 +149,9 @@
         latin:keyWidth="8.042%p"
     >
         <Spacer
-            latin:horizontalGap="16.404%p" />
+            latin:horizontalGap="8.362%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle" />
         <Key
             latin:keyLabel="/" />
         <Key
diff --git a/java/res/xml-xlarge/kbd_symbols_shift.xml b/java/res/xml-xlarge/kbd_symbols_shift.xml
index db33aaa..f7cf24a 100644
--- a/java/res/xml-xlarge/kbd_symbols_shift.xml
+++ b/java/res/xml-xlarge/kbd_symbols_shift.xml
@@ -135,7 +135,9 @@
         latin:keyWidth="8.042%p"
     >
         <Spacer
-            latin:horizontalGap="32.488%p" />
+            latin:horizontalGap="24.446%p" />
+        <Key
+            latin:keyStyle="settingsKeyStyle" />
         <Key
             latin:keyStyle="spaceKeyStyle"
             latin:keyWidth="37.454%p" />
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 064a80f..5db63b7 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -134,6 +134,12 @@
         if (!showSubtypeSettings) {
             getPreferenceScreen().removePreference(findPreference(PREF_SUBTYPES));
         }
+
+        final boolean showPopupOption = getResources().getBoolean(
+                R.bool.config_enable_show_popup_on_keypress_option);
+        if (!showPopupOption) {
+            getPreferenceScreen().removePreference(findPreference(PREF_POPUP_ON));
+        }
     }
 
     @Override
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 21c99fe..b765fad 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -155,6 +155,7 @@
                 && mIsSystemLanguageSameAsInputLanguage);
         if (foundCurrentSubtypeBecameDisabled) {
             if (DBG) {
+                Log.w(TAG, "Current subtype: " + mInputLocaleStr + ", " + mMode);
                 Log.w(TAG, "Last subtype was disabled. Update to the current one.");
             }
             updateSubtype(mImm.getCurrentInputMethodSubtype());