Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc5b89cd authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Use calculated backing view height instead of the view's height

This change removes the work around that was introduced by If4f24500.

Bug: 6596131
Change-Id: Ib814c07fdac7d0aa0d7fbc2764fda1af42b82ad5
parent 027448e0
Loading
Loading
Loading
Loading
+9 −22
Original line number Diff line number Diff line
@@ -96,9 +96,6 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
    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 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        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 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        final LayoutParams params = mKeyPreviewBackingView.getLayoutParams();
        params.height = mSuggestionsView.setMoreSuggestionsHeight(remainingHeight);
        mKeyPreviewBackingView.setLayoutParams(params);
        return params.height;
    }

    @Override
@@ -968,20 +969,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        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 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        }
        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