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

Commit 84c2fd77 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix incorrect logic in touch explorer state transitions." into udc-dev

parents a55382eb f924ff4f
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -1417,20 +1417,29 @@ public class TouchExplorer extends BaseEventStreamTransformation
                    mSendTouchExplorationEndDelayed.forceSendAndRemove();
                }
            }
            if (!mState.isTouchInteracting()) {
            if (!mState.isTouchInteracting() && !mState.isDragging()) {
                // It makes no sense to delegate.
                Slog.e(LOG_TAG, "Error: Trying to delegate from "
                Slog.e(
                        LOG_TAG,
                        "Error: Trying to delegate from "
                                + mState.getStateSymbolicName(mState.getState()));
                return;
            }
            mState.startDelegating();
            MotionEvent prototype = mState.getLastReceivedEvent();
            if (prototype == null) {
            MotionEvent event = mState.getLastReceivedEvent();
            MotionEvent rawEvent = mState.getLastReceivedRawEvent();
            if (event == null || rawEvent == null) {
                Slog.d(LOG_TAG, "Unable to start delegating: unable to get last received event.");
                return;
            }
            int policyFlags = mState.getLastReceivedPolicyFlags();
            mDispatcher.sendDownForAllNotInjectedPointers(prototype, policyFlags);
            if (mState.isDragging()) {
                // Send an event to the end of the drag gesture.
                mDispatcher.sendMotionEvent(
                        event, ACTION_UP, rawEvent, ALL_POINTER_ID_BITS, policyFlags);
            }
            mState.startDelegating();
            // Deliver all pointers to the view hierarchy.
            mDispatcher.sendDownForAllNotInjectedPointers(event, policyFlags);
        }
    }