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

Commit d865a2ba authored by Zachary Kuznia's avatar Zachary Kuznia Committed by android-build-merger
Browse files

Merge "Ensure MotionEvent.split() won\'t be given an invalid value." into nyc-dev

am: a5e6601a

* commit 'a5e6601a':
  Ensure MotionEvent.split() won't be given an invalid value.

Change-Id: Ide2f549e62750f39cecee18a71e0f35d4724d1f3
parents 19e2f491 a5e6601a
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -648,7 +648,16 @@ class TouchExplorer implements EventStreamTransformation, AccessibilityGestureDe
     * @param policyFlags The policy flags associated with the event.
     */
    private void handleMotionEventStateDragging(MotionEvent event, int policyFlags) {
        final int pointerIdBits = (1 << mDraggingPointerId);
        int pointerIdBits = 0;
        // Clear the dragging pointer id if it's no longer valid.
        if (event.findPointerIndex(mDraggingPointerId) == -1) {
            Slog.e(LOG_TAG, "mDraggingPointerId doesn't match any pointers on current event. " +
                    "mDraggingPointerId: " + Integer.toString(mDraggingPointerId) +
                    ", Event: " + event);
            mDraggingPointerId = INVALID_POINTER_ID;
        } else {
            pointerIdBits = (1 << mDraggingPointerId);
        }
        switch (event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN: {
                throw new IllegalStateException("Dragging state can be reached only if two "
@@ -664,6 +673,9 @@ class TouchExplorer implements EventStreamTransformation, AccessibilityGestureDe
                sendDownForAllNotInjectedPointers(event, policyFlags);
            } break;
            case MotionEvent.ACTION_MOVE: {
                if (mDraggingPointerId == INVALID_POINTER_ID) {
                    break;
                }
                switch (event.getPointerCount()) {
                    case 1: {
                        // do nothing