Loading services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java +7 −2 Original line number Diff line number Diff line Loading @@ -511,6 +511,11 @@ public class AutoclickController extends BaseEventStreamTransformation { return mHasOngoingLongPress; } @VisibleForTesting @AutoclickType int getActiveClickTypeForTest() { return mActiveClickType; } /** * Observes and updates various autoclick setting values. */ Loading Loading @@ -1039,7 +1044,8 @@ public class AutoclickController extends BaseEventStreamTransformation { } private void resetSelectedClickTypeIfNecessary() { if (mRevertToLeftClick && mActiveClickType != AUTOCLICK_TYPE_LEFT_CLICK) { if ((mRevertToLeftClick && mActiveClickType != AUTOCLICK_TYPE_LEFT_CLICK) || mActiveClickType == AUTOCLICK_TYPE_LONG_PRESS) { mAutoclickTypePanel.resetSelectedClickType(); } } Loading Loading @@ -1227,7 +1233,6 @@ public class AutoclickController extends BaseEventStreamTransformation { upEvent.recycle(); } // TODO(b/400744833): Reset Autoclick type to left click whenever a long press happens. private void sendLongPress() { mHasOngoingLongPress = true; mLongPressDownTime = SystemClock.uptimeMillis(); Loading services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -1276,6 +1276,46 @@ public class AutoclickControllerTest { assertThat(mController.hasOngoingLongPressForTesting()).isFalse(); } @Test @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR) public void sendClick_clickType_longPress_revertsToLeftClick() { MotionEventCaptor motionEventCaptor = new MotionEventCaptor(); mController.setNext(motionEventCaptor); // Move mouse to initialize autoclick panel. injectFakeMouseActionHoverMoveEvent(); AutoclickTypePanel mockAutoclickTypePanel = mock(AutoclickTypePanel.class); mController.mAutoclickTypePanel = mockAutoclickTypePanel; mController.clickPanelController.handleAutoclickTypeChange( AutoclickTypePanel.AUTOCLICK_TYPE_LONG_PRESS); // Set ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK to false. Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK, AccessibilityUtils.State.OFF, mTestableContext.getUserId()); mController.onChangeForTesting(/* selfChange= */ true, Settings.Secure.getUriFor( Settings.Secure.ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK)); when(mockAutoclickTypePanel.isPaused()).thenReturn(false); assertThat(mController.mClickScheduler.getRevertToLeftClickForTesting()).isFalse(); assertThat(mController.getActiveClickTypeForTest()).isEqualTo( AutoclickTypePanel.AUTOCLICK_TYPE_LONG_PRESS); // Send hover move event to trigger long press. when(mockAutoclickTypePanel.isPaused()).thenReturn(false); mController.mClickScheduler.run(); mTestableLooper.moveTimeForward(mController.LONG_PRESS_TIMEOUT); mTestableLooper.processAllMessages(); motionEventCaptor.assertCapturedEvents( MotionEvent.ACTION_DOWN, MotionEvent.ACTION_BUTTON_PRESS, MotionEvent.ACTION_BUTTON_RELEASE, MotionEvent.ACTION_UP); verify(mockAutoclickTypePanel).resetSelectedClickType(); } @Test @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR) public void continuousScroll_completeLifecycle() { Loading Loading
services/accessibility/java/com/android/server/accessibility/autoclick/AutoclickController.java +7 −2 Original line number Diff line number Diff line Loading @@ -511,6 +511,11 @@ public class AutoclickController extends BaseEventStreamTransformation { return mHasOngoingLongPress; } @VisibleForTesting @AutoclickType int getActiveClickTypeForTest() { return mActiveClickType; } /** * Observes and updates various autoclick setting values. */ Loading Loading @@ -1039,7 +1044,8 @@ public class AutoclickController extends BaseEventStreamTransformation { } private void resetSelectedClickTypeIfNecessary() { if (mRevertToLeftClick && mActiveClickType != AUTOCLICK_TYPE_LEFT_CLICK) { if ((mRevertToLeftClick && mActiveClickType != AUTOCLICK_TYPE_LEFT_CLICK) || mActiveClickType == AUTOCLICK_TYPE_LONG_PRESS) { mAutoclickTypePanel.resetSelectedClickType(); } } Loading Loading @@ -1227,7 +1233,6 @@ public class AutoclickController extends BaseEventStreamTransformation { upEvent.recycle(); } // TODO(b/400744833): Reset Autoclick type to left click whenever a long press happens. private void sendLongPress() { mHasOngoingLongPress = true; mLongPressDownTime = SystemClock.uptimeMillis(); Loading
services/tests/servicestests/src/com/android/server/accessibility/autoclick/AutoclickControllerTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -1276,6 +1276,46 @@ public class AutoclickControllerTest { assertThat(mController.hasOngoingLongPressForTesting()).isFalse(); } @Test @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR) public void sendClick_clickType_longPress_revertsToLeftClick() { MotionEventCaptor motionEventCaptor = new MotionEventCaptor(); mController.setNext(motionEventCaptor); // Move mouse to initialize autoclick panel. injectFakeMouseActionHoverMoveEvent(); AutoclickTypePanel mockAutoclickTypePanel = mock(AutoclickTypePanel.class); mController.mAutoclickTypePanel = mockAutoclickTypePanel; mController.clickPanelController.handleAutoclickTypeChange( AutoclickTypePanel.AUTOCLICK_TYPE_LONG_PRESS); // Set ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK to false. Settings.Secure.putIntForUser(mTestableContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK, AccessibilityUtils.State.OFF, mTestableContext.getUserId()); mController.onChangeForTesting(/* selfChange= */ true, Settings.Secure.getUriFor( Settings.Secure.ACCESSIBILITY_AUTOCLICK_REVERT_TO_LEFT_CLICK)); when(mockAutoclickTypePanel.isPaused()).thenReturn(false); assertThat(mController.mClickScheduler.getRevertToLeftClickForTesting()).isFalse(); assertThat(mController.getActiveClickTypeForTest()).isEqualTo( AutoclickTypePanel.AUTOCLICK_TYPE_LONG_PRESS); // Send hover move event to trigger long press. when(mockAutoclickTypePanel.isPaused()).thenReturn(false); mController.mClickScheduler.run(); mTestableLooper.moveTimeForward(mController.LONG_PRESS_TIMEOUT); mTestableLooper.processAllMessages(); motionEventCaptor.assertCapturedEvents( MotionEvent.ACTION_DOWN, MotionEvent.ACTION_BUTTON_PRESS, MotionEvent.ACTION_BUTTON_RELEASE, MotionEvent.ACTION_UP); verify(mockAutoclickTypePanel).resetSelectedClickType(); } @Test @EnableFlags(com.android.server.accessibility.Flags.FLAG_ENABLE_AUTOCLICK_INDICATOR) public void continuousScroll_completeLifecycle() { Loading