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

Commit e81d43c1 authored by Taran Singh's avatar Taran Singh Committed by Android (Google) Code Review
Browse files

Merge "Don't cache IME surface in fullscreen mode" into sc-dev

parents eb89b5cf d6611779
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();
    }