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

Commit d7400b68 authored by Riley Jones's avatar Riley Jones Committed by Android (Google) Code Review
Browse files

Merge "Cleanup of pointerUpMotionEventInTouchExploration" into main

parents 80166f36 5917a376
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -124,16 +124,6 @@ flag {
    }
}

flag {
    name: "pointer_up_motion_event_in_touch_exploration"
    namespace: "accessibility"
    description: "Allows POINTER_UP motionEvents to trigger during touch exploration."
    bug: "374930391"
    metadata {
        purpose: PURPOSE_BUGFIX
    }
}

flag {
    name: "send_a11y_events_based_on_state"
    namespace: "accessibility"
+3 −12
Original line number Diff line number Diff line
@@ -414,15 +414,9 @@ public class TouchExplorer extends BaseEventStreamTransformation
            mSendTouchExplorationEndDelayed.forceSendAndRemove();
        }

        if (!Flags.pointerUpMotionEventInTouchExploration()) {
            // Announce the end of a new touch interaction.
            mDispatcher.sendAccessibilityEvent(TYPE_TOUCH_INTERACTION_END);
        } else {
            // If there are no pointers left on screen, announce the end of the touch interaction.
        if (mReceivedPointerTracker.getReceivedPointerDownCount() == 0) {
            mDispatcher.sendAccessibilityEvent(TYPE_TOUCH_INTERACTION_END);
        }
        }
        mSendTouchInteractionEndDelayed.cancel();
        // Try to use the standard accessibility API to click
        if (!mAms.performActionOnAccessibilityFocusedItem(
@@ -660,12 +654,9 @@ public class TouchExplorer extends BaseEventStreamTransformation
                handleActionUp(event, rawEvent, policyFlags);
                break;
            case ACTION_POINTER_UP:
                if (com.android.server.accessibility.Flags
                        .pointerUpMotionEventInTouchExploration()) {
                if (mState.isServiceDetectingGestures()) {
                    mAms.sendMotionEventToListeningServices(rawEvent);
                }
                }
                break;
            default:
                break;
+3 −8
Original line number Diff line number Diff line
@@ -223,17 +223,12 @@ public class TouchState {
            case AccessibilityEvent.TYPE_TOUCH_INTERACTION_END:
                // When interaction ends, check if there are still down pointers.
                // If there are any down pointers, go directly to TouchExploring instead.
                if (com.android.server.accessibility.Flags
                        .pointerUpMotionEventInTouchExploration()) {
                if (mReceivedPointerTracker.mReceivedPointersDown > 0) {
                    startTouchExploring();
                } else {
                    setState(STATE_CLEAR);
                    // We will clear when we actually handle the next ACTION_DOWN.
                }
                } else {
                    setState(STATE_CLEAR);
                }
                break;
            case AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START:
                startTouchExploring();
+0 −20
Original line number Diff line number Diff line
@@ -37,7 +37,6 @@ import static com.google.common.truth.Truth.assertThat;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

@@ -47,8 +46,6 @@ import android.content.Context;
import android.graphics.PointF;
import android.os.Looper;
import android.os.SystemClock;
import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.testing.DexmakerShareClassLoaderRule;
import android.view.InputDevice;
@@ -62,7 +59,6 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.server.accessibility.AccessibilityManagerService;
import com.android.server.accessibility.AccessibilityTraceManager;
import com.android.server.accessibility.EventStreamTransformation;
import com.android.server.accessibility.Flags;
import com.android.server.accessibility.utils.GestureLogParser;
import com.android.server.testutils.OffsettableClock;

@@ -496,22 +492,6 @@ public class TouchExplorerTest {
    }

    @Test
    @DisableFlags(Flags.FLAG_POINTER_UP_MOTION_EVENT_IN_TOUCH_EXPLORATION)
    public void handleMotionEventStateTouchExploring_pointerUp_doesNotSendToManager() {
        mTouchExplorer.getState().setServiceDetectsGestures(true);
        mTouchExplorer.getState().clear();

        mLastEvent = pointerDownEvent();
        mTouchExplorer.getState().startTouchExploring();
        MotionEvent event = fromTouchscreen(pointerUpEvent());

        mTouchExplorer.onMotionEvent(event, event, /*policyFlags=*/0);

        verify(mMockAms, never()).sendMotionEventToListeningServices(event);
    }

    @Test
    @EnableFlags(Flags.FLAG_POINTER_UP_MOTION_EVENT_IN_TOUCH_EXPLORATION)
    public void handleMotionEventStateTouchExploring_pointerUp_sendsToManager() {
        mTouchExplorer.getState().setServiceDetectsGestures(true);
        mTouchExplorer.getState().clear();
+0 −12
Original line number Diff line number Diff line
@@ -23,15 +23,12 @@ import static com.android.server.accessibility.gestures.TouchState.STATE_TOUCH_E

import static com.google.common.truth.Truth.assertThat;

import android.platform.test.annotations.DisableFlags;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.view.Display;

import androidx.test.runner.AndroidJUnit4;

import com.android.server.accessibility.AccessibilityManagerService;
import com.android.server.accessibility.Flags;

import org.junit.Before;
import org.junit.Rule;
@@ -52,7 +49,6 @@ public class TouchStateTest {
        mTouchState = new TouchState(Display.DEFAULT_DISPLAY, mMockAms);
    }

    @EnableFlags(Flags.FLAG_POINTER_UP_MOTION_EVENT_IN_TOUCH_EXPLORATION)
    @Test
    public void injectedEvent_interactionEnd_pointerDown_startsTouchExploring() {
        mTouchState.mReceivedPointerTracker.mReceivedPointersDown = 1;
@@ -60,18 +56,10 @@ public class TouchStateTest {
        assertThat(mTouchState.getState()).isEqualTo(STATE_TOUCH_EXPLORING);
    }

    @EnableFlags(Flags.FLAG_POINTER_UP_MOTION_EVENT_IN_TOUCH_EXPLORATION)
    @Test
    public void injectedEvent_interactionEnd_pointerUp_clears() {
        mTouchState.mReceivedPointerTracker.mReceivedPointersDown = 0;
        mTouchState.onInjectedAccessibilityEvent(TYPE_TOUCH_INTERACTION_END);
        assertThat(mTouchState.getState()).isEqualTo(STATE_CLEAR);
    }

    @DisableFlags(Flags.FLAG_POINTER_UP_MOTION_EVENT_IN_TOUCH_EXPLORATION)
    @Test
    public void injectedEvent_interactionEnd_clears() {
        mTouchState.onInjectedAccessibilityEvent(TYPE_TOUCH_INTERACTION_END);
        assertThat(mTouchState.getState()).isEqualTo(STATE_CLEAR);
    }
}