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

Commit 8bfee40f authored by Jerry Chang's avatar Jerry Chang
Browse files

Prevent caching unexpected IME status while showing keyguard in split

While showing keyguard in split, it hides divder bar surface instead of
updating visibility of divider bar view. Updates to make sure
DividerImeController only caches IME status when the divider bar surface
is shown.

Fix: 186466549
Test: manul check password keyguard while in split
Change-Id: I64b406ea3d93cc196fe3304720391b8cb5310111
parent 8a170b2e
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -109,8 +109,9 @@ class DividerImeController implements DisplayImeController.ImePositionProcessor
        return mSplits.mSplitScreenController.getSplitLayout();
    }

    private boolean isDividerVisible() {
        return mSplits.mSplitScreenController.isDividerVisible();
    private boolean isDividerHidden() {
        final DividerView view = mSplits.mSplitScreenController.getDividerView();
        return view == null || view.isHidden();
    }

    private boolean getSecondaryHasFocus(int displayId) {
@@ -143,7 +144,7 @@ class DividerImeController implements DisplayImeController.ImePositionProcessor
    @ImeAnimationFlags
    public int onImeStartPositioning(int displayId, int hiddenTop, int shownTop,
            boolean imeShouldShow, boolean imeIsFloating, SurfaceControl.Transaction t) {
        if (!isDividerVisible()) {
        if (isDividerHidden()) {
            return 0;
        }
        mHiddenTop = hiddenTop;
@@ -263,7 +264,7 @@ class DividerImeController implements DisplayImeController.ImePositionProcessor
    @Override
    public void onImePositionChanged(int displayId, int imeTop,
            SurfaceControl.Transaction t) {
        if (mAnimation != null || !isDividerVisible() || mPaused) {
        if (mAnimation != null || isDividerHidden() || mPaused) {
            // Not synchronized with IME anymore, so return.
            return;
        }
@@ -275,7 +276,7 @@ class DividerImeController implements DisplayImeController.ImePositionProcessor
    @Override
    public void onImeEndPositioning(int displayId, boolean cancelled,
            SurfaceControl.Transaction t) {
        if (mAnimation != null || !isDividerVisible() || mPaused) {
        if (mAnimation != null || isDividerHidden() || mPaused) {
            // Not synchronized with IME anymore, so return.
            return;
        }