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

Commit f0991e88 authored by Josh Tsuji's avatar Josh Tsuji Committed by Automerger Merge Worker
Browse files

Merge "Ignore additional pointers in dispatchTouchEvent." into rvc-dev am:...

Merge "Ignore additional pointers in dispatchTouchEvent." into rvc-dev am: fe71adaa am: 20871998 am: d9a55fb9 am: f1dea6ba

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

Change-Id: I177cf5d48ce58cd1f5f8002753110d6d1208464b
parents 41265cdc f1dea6ba
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -290,6 +290,12 @@ public class BubbleStackView extends FrameLayout
    /** Whether we're in the middle of dragging the stack around by touch. */
    private boolean mIsDraggingStack = false;

    /**
     * The pointer index of the ACTION_DOWN event we received prior to an ACTION_UP. We'll ignore
     * touches from other pointer indices.
     */
    private int mPointerIndexDown = -1;

    /** Description of current animation controller state. */
    public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
        pw.println("Stack view state:");
@@ -2220,6 +2226,18 @@ public class BubbleStackView extends FrameLayout

    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() != MotionEvent.ACTION_DOWN && ev.getActionIndex() != mPointerIndexDown) {
            // Ignore touches from additional pointer indices.
            return false;
        }

        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            mPointerIndexDown = ev.getActionIndex();
        } else if (ev.getAction() == MotionEvent.ACTION_UP
                || ev.getAction() == MotionEvent.ACTION_CANCEL) {
            mPointerIndexDown = -1;
        }

        boolean dispatched = super.dispatchTouchEvent(ev);

        // If a new bubble arrives while the collapsed stack is being dragged, it will be positioned