Merge "Use calculated backing view height instead of the view's height" into jb-dev
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