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

Commit 2e1c66bd authored by Svetoslav Ganov's avatar Svetoslav Ganov
Browse files

Dragging in touch explore mode should not become exploring.

In touch exploration two fingers in the same direction drag and if one of them
goes up the other starts to touch explore. This however causes inadvertent touch
exploring to happen on almost every scroll causing confusion. Now two finger
drag and they should both go up to allow exploring. This way the inadvertent
exploring is gone and user experience is much better.

bug:5440411

Change-Id: Id8aaece92e5dea1fc740400d2adc9dd63a1674e4
parent 99f36683
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -457,6 +457,9 @@ public class TouchExplorer implements Explorer {
            case MotionEvent.ACTION_MOVE: {
                final int activePointerCount = mPointerTracker.getActivePointerCount();
                switch (activePointerCount) {
                    case 1: {
                        // do nothing
                    } break;
                    case 2: {
                        if (isDraggingGesture(event)) {
                            // If still dragging send a drag event.
@@ -484,10 +487,12 @@ public class TouchExplorer implements Explorer {
                }
            } break;
            case MotionEvent.ACTION_POINTER_UP: {
                mCurrentState = STATE_TOUCH_EXPLORING;
                // Send an event to the end of the drag gesture.
                sendMotionEvent(event, MotionEvent.ACTION_UP, pointerIdBits, policyFlags);
             } break;
            case MotionEvent.ACTION_UP: {
                mCurrentState = STATE_TOUCH_EXPLORING;
            } break;
            case MotionEvent.ACTION_CANCEL: {
                clear();
            } break;
@@ -500,7 +505,7 @@ public class TouchExplorer implements Explorer {
     * @param event The event to be handled.
     * @param policyFlags The policy flags associated with the event.
     */
    public void handleMotionEventStateDelegating(MotionEvent event, int policyFlags) {
    private void handleMotionEventStateDelegating(MotionEvent event, int policyFlags) {
        switch (event.getActionMasked()) {
            case MotionEvent.ACTION_DOWN: {
                throw new IllegalStateException("Delegating state can only be reached if "