diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index afaa085c7cbdd..824cc19f8a602 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -1811,15 +1811,19 @@ public class InputMethodService extends AbstractInputMethodService { void updateExtractFrameVisibility() { final int vis; + updateCandidatesVisibility(mCandidatesVisibility == View.VISIBLE); + if (isFullscreenMode()) { vis = mExtractViewHidden ? View.INVISIBLE : View.VISIBLE; // "vis" should be applied for the extract frame as well in the fullscreen mode. mExtractFrame.setVisibility(vis); } else { - vis = View.VISIBLE; + // mFullscreenArea visibility will according the candidate frame visibility once the + // extract frame is gone. + vis = mCandidatesVisibility; mExtractFrame.setVisibility(View.GONE); } - updateCandidatesVisibility(mCandidatesVisibility == View.VISIBLE); + if (mDecorViewWasVisible && mFullscreenArea.getVisibility() != vis) { int animRes = mThemeAttrs.getResourceId(vis == View.VISIBLE ? com.android.internal.R.styleable.InputMethodService_imeExtractEnterAnimation