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

Commit b081c427 authored by Adrian Roos's avatar Adrian Roos
Browse files

Fix unexpected IME show because of stale requestedVisibleAwaitingControl

Fixes an issue where the IME would unexpectedly open whenever the
controls change because requestedVisibleAwaitingControl might
be stale.

To fix this, we clear the flag whenever it has been applied after
gaining control, when we hide the IME.

Fixes: 181218935
Test: atest 'WindowInsetsControllerTests#testShowImeOnCreate_doesntCauseImeToReappearWhenDialogIsShown'
Change-Id: I251707fc72c908829f2e69d5b1667e71123fbd0f
parent 01dabee9
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -68,8 +68,14 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
    }

    @Override
    void hide(boolean animationFinished, @AnimationType int animationType) {
    public void hide() {
        super.hide();
        mIsRequestedVisibleAwaitingControl = false;
    }

    @Override
    void hide(boolean animationFinished, @AnimationType int animationType) {
        hide();

        if (animationFinished) {
            // remove IME surface as IME has finished hide animation.
@@ -126,6 +132,9 @@ public final class ImeInsetsSourceConsumer extends InsetsSourceConsumer {
            hide();
            removeSurface();
        }
        if (control != null) {
            mIsRequestedVisibleAwaitingControl = false;
        }
    }

    @Override