Loading services/accessibility/accessibility.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -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" Loading services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java +3 −12 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading services/accessibility/java/com/android/server/accessibility/gestures/TouchState.java +3 −8 Original line number Diff line number Diff line Loading @@ -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(); Loading services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java +0 −20 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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(); Loading services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchStateTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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); } } Loading
services/accessibility/accessibility.aconfig +0 −10 Original line number Diff line number Diff line Loading @@ -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" Loading
services/accessibility/java/com/android/server/accessibility/gestures/TouchExplorer.java +3 −12 Original line number Diff line number Diff line Loading @@ -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( Loading Loading @@ -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; Loading
services/accessibility/java/com/android/server/accessibility/gestures/TouchState.java +3 −8 Original line number Diff line number Diff line Loading @@ -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(); Loading
services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchExplorerTest.java +0 −20 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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; Loading Loading @@ -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(); Loading
services/tests/servicestests/src/com/android/server/accessibility/gestures/TouchStateTest.java +0 −12 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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); } }