Merge "Read the script correctly" into jb-dev
diff --git a/java/res/values-ar/strings.xml b/java/res/values-ar/strings.xml
index 9b1b620..5678c40 100644
--- a/java/res/values-ar/strings.xml
+++ b/java/res/values-ar/strings.xml
@@ -93,8 +93,7 @@
     <string name="spoken_description_mic" msgid="615536748882611950">"إدخال صوتي"</string>
     <string name="spoken_description_smiley" msgid="2256309826200113918">"وجه مبتسم"</string>
     <string name="spoken_description_return" msgid="8178083177238315647">"رجوع"</string>
-    <!-- no translation found for spoken_description_search (1247236163755920808) -->
-    <skip />
+    <string name="spoken_description_search" msgid="1247236163755920808">"بحث"</string>
     <string name="spoken_description_dot" msgid="40711082435231673">"نقطة"</string>
     <string name="spoken_description_shiftmode_on" msgid="5700440798609574589">"تم تمكين Shift"</string>
     <string name="spoken_description_shiftmode_locked" msgid="593175803181701830">"تم تمكين Caps lock"</string>
diff --git a/java/res/values-en-rGB/strings.xml b/java/res/values-en-rGB/strings.xml
index 746cb44..7639107 100644
--- a/java/res/values-en-rGB/strings.xml
+++ b/java/res/values-en-rGB/strings.xml
@@ -93,8 +93,7 @@
     <string name="spoken_description_mic" msgid="615536748882611950">"Voice input"</string>
     <string name="spoken_description_smiley" msgid="2256309826200113918">"Smiley face"</string>
     <string name="spoken_description_return" msgid="8178083177238315647">"Return"</string>
-    <!-- no translation found for spoken_description_search (1247236163755920808) -->
-    <skip />
+    <string name="spoken_description_search" msgid="1247236163755920808">"Search"</string>
     <string name="spoken_description_dot" msgid="40711082435231673">"Dot"</string>
     <string name="spoken_description_shiftmode_on" msgid="5700440798609574589">"Shift enabled"</string>
     <string name="spoken_description_shiftmode_locked" msgid="593175803181701830">"Caps lock enabled"</string>
diff --git a/java/res/values-iw/strings.xml b/java/res/values-iw/strings.xml
index cbc3cfd..323cac1 100644
--- a/java/res/values-iw/strings.xml
+++ b/java/res/values-iw/strings.xml
@@ -93,8 +93,7 @@
     <string name="spoken_description_mic" msgid="615536748882611950">"קלט קולי"</string>
     <string name="spoken_description_smiley" msgid="2256309826200113918">"פרצוף סמיילי"</string>
     <string name="spoken_description_return" msgid="8178083177238315647">"חזור"</string>
-    <!-- no translation found for spoken_description_search (1247236163755920808) -->
-    <skip />
+    <string name="spoken_description_search" msgid="1247236163755920808">"חיפוש"</string>
     <string name="spoken_description_dot" msgid="40711082435231673">"נקודה"</string>
     <string name="spoken_description_shiftmode_on" msgid="5700440798609574589">"Shift מופעל"</string>
     <string name="spoken_description_shiftmode_locked" msgid="593175803181701830">"Caps Lock מופעל"</string>
diff --git a/java/res/xml/key_styles_currency_euro.xml b/java/res/xml/key_styles_currency_euro.xml
index 074d4c0..686fb30 100644
--- a/java/res/xml/key_styles_currency_euro.xml
+++ b/java/res/xml/key_styles_currency_euro.xml
@@ -26,7 +26,7 @@
     <key-style
         latin:styleName="currencyKeyStyle"
         latin:keyLabel="&#x20AC;"
-        latin:moreKeys="!abel/more_keys_for_currency_euro" />
+        latin:moreKeys="!text/more_keys_for_currency_euro" />
     <key-style
         latin:styleName="moreCurrency1KeyStyle"
         latin:keyLabel="&#x00A3;" />
diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
index 0f8f6cd..babf6ec 100644
--- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java
+++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java
@@ -19,6 +19,7 @@
 import android.os.SystemClock;
 import android.util.Log;
 import android.view.MotionEvent;
+import android.view.View;
 import android.widget.TextView;
 
 import com.android.inputmethod.keyboard.internal.PointerTrackerQueue;
@@ -213,6 +214,7 @@
 
     public static void dismissAllKeyPreviews() {
         for (final PointerTracker tracker : sTrackers) {
+            tracker.getKeyPreviewText().setVisibility(View.INVISIBLE);
             tracker.setReleasedKeyGraphics(tracker.mCurrentKey);
         }
     }
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 695bf8d..bee374b 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -96,9 +96,6 @@
     private static final int QUICK_PRESS = 200;
 
     private static final int PENDING_IMS_CALLBACK_DURATION = 800;
-    // TODO: remove this
-    private static final boolean WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY = true;
-    private static int sLastBackingHeight = 0;
 
     /**
      * The name of the scheme used by the Package Manager to warn of a new package installation,
@@ -941,13 +938,16 @@
         setSuggestionStripShownInternal(shown, /* needsInputViewShown */true);
     }
 
-    private void adjustInputViewHeight() {
-        if (mKeyPreviewBackingView.getHeight() > 0) {
-            return;
+    private int getAdjustedBackingViewHeight() {
+        final int currentHeight = mKeyPreviewBackingView.getHeight();
+        if (currentHeight > 0) {
+            return currentHeight;
         }
 
         final KeyboardView keyboardView = mKeyboardSwitcher.getKeyboardView();
-        if (keyboardView == null) return;
+        if (keyboardView == null) {
+            return 0;
+        }
         final int keyboardHeight = keyboardView.getHeight();
         final int suggestionsHeight = mSuggestionsContainer.getHeight();
         final int displayHeight = mResources.getDisplayMetrics().heightPixels;
@@ -960,6 +960,7 @@
         final LayoutParams params = mKeyPreviewBackingView.getLayoutParams();
         params.height = mSuggestionsView.setMoreSuggestionsHeight(remainingHeight);
         mKeyPreviewBackingView.setLayoutParams(params);
+        return params.height;
     }
 
     @Override
@@ -968,20 +969,11 @@
         final KeyboardView inputView = mKeyboardSwitcher.getKeyboardView();
         if (inputView == null || mSuggestionsContainer == null)
             return;
-        adjustInputViewHeight();
+        final int backingHeight = getAdjustedBackingViewHeight();
         // In fullscreen mode, the height of the extract area managed by InputMethodService should
         // be considered.
         // See {@link android.inputmethodservice.InputMethodService#onComputeInsets}.
         final int extractHeight = isFullscreenMode() ? mExtractArea.getHeight() : 0;
-        final boolean backingGone = mKeyPreviewBackingView.getVisibility() == View.GONE;
-        int backingHeight = backingGone ? 0 : mKeyPreviewBackingView.getHeight();
-        if (WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY && !backingGone) {
-            if (backingHeight <= 0) {
-                backingHeight = sLastBackingHeight;
-            } else {
-                sLastBackingHeight = backingHeight;
-            }
-        }
         final int suggestionsHeight = (mSuggestionsContainer.getVisibility() == View.GONE) ? 0
                 : mSuggestionsContainer.getHeight();
         final int extraHeight = extractHeight + backingHeight + suggestionsHeight;
@@ -1001,11 +993,6 @@
         }
         outInsets.contentTopInsets = touchY;
         outInsets.visibleTopInsets = touchY;
-        if (WORKAROUND_USE_LAST_BACKING_HEIGHT_WHEN_NOT_READY) {
-            if (LatinImeLogger.sDBG) {
-                Log.i(TAG, "--- insets: " + touchY + "," + backingHeight + "," + suggestionsHeight);
-            }
-        }
     }
 
     @Override