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

Commit 1c791bac authored by Taran Singh's avatar Taran Singh Committed by Automerger Merge Worker
Browse files

Merge "Don't cache IME surface in fullscreen mode" into sc-dev am: e81d43c1...

Merge "Don't cache IME surface in fullscreen mode" into sc-dev am: e81d43c1 am: b0ef9a5e am: 583715aa

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14665440

Change-Id: I118f6953abc76e8dd2419ea7f1eec60c4ca45f17
parents 269c8a89 583715aa
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -481,6 +481,7 @@ public class InputMethodService extends AbstractInputMethodService {

    boolean mFullscreenApplied;
    boolean mIsFullscreen;
    private boolean mLastWasInFullscreenMode;
    @UnsupportedAppUsage
    View mExtractView;
    boolean mExtractViewHidden;
@@ -920,9 +921,18 @@ public class InputMethodService extends AbstractInputMethodService {
        if (mHandler == null) {
            mHandler = new Handler(getMainLooper());
        }

        if (mLastWasInFullscreenMode) {
            // Caching surface / delaying surface removal can cause mServedView to detach in certain
            // cases in RecyclerView (b/187772544).
            // TODO(b/188818557): Re-enable IME surface caching for fullscreen mode once detaching
            //  view issues is resolved in RecyclerView.
            removeImeSurface();
        } else {
            mImeSurfaceScheduledForRemoval = true;
            mHandler.postDelayed(() -> removeImeSurface(), TIMEOUT_SURFACE_REMOVAL_MILLIS);
        }
    }

    private void removeImeSurface() {
        // hiding a window removes its surface.
@@ -2350,6 +2360,7 @@ public class InputMethodService extends AbstractInputMethodService {
            onWindowHidden();
            mDecorViewWasVisible = false;
        }
        mLastWasInFullscreenMode = mIsFullscreen;
        updateFullscreenMode();
    }