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

Commit 40691132 authored by Chilun Huang's avatar Chilun Huang
Browse files

Cancel divider dragging if IME showing

Cancel divider dragging if IME showing to avoid abnormal state.

Bug: 256180001
Test: atest WMShellUnitTests
Change-Id: I184f3275a326ba5abe965f50217f07e27ee2f527
parent 47af12f9
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -76,6 +76,7 @@ public class DividerView extends FrameLayout implements View.OnTouchListener {
    private GestureDetector mDoubleTapDetector;
    private boolean mInteractive;
    private boolean mSetTouchRegion = true;
    private int mLastDraggingPosition;

    /**
     * Tracks divider bar visible bounds in screen-based coordination. Used to calculate with
@@ -298,6 +299,7 @@ public class DividerView extends FrameLayout implements View.OnTouchListener {
                }
                if (mMoving) {
                    final int position = mSplitLayout.getDividePosition() + touchPos - mStartPos;
                    mLastDraggingPosition = position;
                    mSplitLayout.updateDivideBounds(position);
                }
                break;
@@ -372,6 +374,15 @@ public class DividerView extends FrameLayout implements View.OnTouchListener {
                "Set divider bar %s from %s", interactive ? "interactive" : "non-interactive",
                from);
        mInteractive = interactive;
        if (!mInteractive && mMoving) {
            final int position = mSplitLayout.getDividePosition();
            mSplitLayout.flingDividePosition(
                    mLastDraggingPosition,
                    position,
                    mSplitLayout.FLING_RESIZE_DURATION,
                    () -> mSplitLayout.setDividePosition(position, true /* applyLayoutChange */));
            mMoving = false;
        }
        releaseTouching();
        mHandle.setVisibility(mInteractive ? View.VISIBLE : View.INVISIBLE);
    }
+1 −1
Original line number Diff line number Diff line
@@ -81,7 +81,7 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange
    public static final int PARALLAX_DISMISSING = 1;
    public static final int PARALLAX_ALIGN_CENTER = 2;

    private static final int FLING_RESIZE_DURATION = 250;
    public static final int FLING_RESIZE_DURATION = 250;
    private static final int FLING_SWITCH_DURATION = 350;
    private static final int FLING_ENTER_DURATION = 450;
    private static final int FLING_EXIT_DURATION = 450;