Loading services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java +5 −0 Original line number Diff line number Diff line Loading @@ -394,6 +394,11 @@ public class MagnificationController implements MagnificationConnectionManager.C handleUserInteractionChanged(displayId, mode); } @Override public void onMouseMove(int displayId, int mode) { handleUserInteractionChanged(displayId, mode); } @Override public void onPanMagnificationStart(int displayId, @MagnificationController.PanDirection int direction) { Loading services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java +11 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,14 @@ public abstract class MagnificationGestureHandler extends BaseEventStreamTransfo * @param mode The magnification mode */ void onTouchInteractionEnd(int displayId, int mode); /** * Called when the pointer moves by a user. * * @param displayId The logical display id * @param mode The magnification mode */ void onMouseMove(int displayId, int mode); } private final AccessibilityTraceManager mTrace; Loading Loading @@ -160,6 +168,9 @@ public abstract class MagnificationGestureHandler extends BaseEventStreamTransfo case SOURCE_MOUSE: case SOURCE_STYLUS: { if (magnificationShortcutExists()) { if (event.getAction() == MotionEvent.ACTION_HOVER_MOVE) { mCallback.onMouseMove(mDisplayId, getMode()); } handleMouseOrStylusEvent(event, rawEvent, policyFlags); } } Loading services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -2112,6 +2112,46 @@ public class MagnificationControllerTest { eq(TEST_DISPLAY)); } @Test public void onMouseMove_whenNotMagnifying_notShowMagnificationButton() { mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_FULLSCREEN); verify(mMagnificationConnectionManager, never()).showMagnificationButton( eq(TEST_DISPLAY), eq(MODE_FULLSCREEN)); } @Test public void onMouseMove_fullscreenAndCapabilitiesAll_showMagnificationButton() throws RemoteException { setMagnificationEnabled(MODE_FULLSCREEN); reset(mMagnificationConnectionManager); mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_FULLSCREEN); verify(mMagnificationConnectionManager).showMagnificationButton(eq(TEST_DISPLAY), eq(MODE_FULLSCREEN)); // Never call removeMagnificationSettingsPanel if it is allowed to show the settings panel // in current capability and mode, and the magnification is activated. verify(mMagnificationConnectionManager, never()).removeMagnificationSettingsPanel( eq(TEST_DISPLAY)); } @Test public void onMouseMove_windowModeAndCapabilitiesAll_showMagnificationButton() throws RemoteException { setMagnificationEnabled(MODE_WINDOW); reset(mMagnificationConnectionManager); mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_WINDOW); verify(mMagnificationConnectionManager).showMagnificationButton(eq(TEST_DISPLAY), eq(MODE_WINDOW)); // Never call removeMagnificationSettingsPanel if it is allowed to show the settings panel // in current capability and mode, and the magnification is activated. verify(mMagnificationConnectionManager, never()).removeMagnificationSettingsPanel( eq(TEST_DISPLAY)); } @Test public void enableWindowMode_showMagnificationButton() throws RemoteException { Loading services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_HOVER_MOVE; import static android.view.MotionEvent.ACTION_UP; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.testng.AssertJUnit.assertTrue; Loading Loading @@ -157,6 +158,34 @@ public class MagnificationGestureHandlerTest { } } @Test public void onMotionEvent_withHoverMoveEventFromMouse_shouldInvokeOnMouseMoveCallback() { final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0); mouseEvent.setSource(InputDevice.SOURCE_MOUSE); mMgh.onMotionEvent(mouseEvent, mouseEvent, /* policyFlags= */ 0); try { verify(mCallback).onMouseMove(eq(DISPLAY_0), eq(mMgh.getMode())); } finally { mouseEvent.recycle(); } } @Test public void onMotionEvent_withMouseDownEventFromMouse_shouldNotInvokeOnMouseMove() { final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_DOWN, 0, 0, 0); mouseEvent.setSource(InputDevice.SOURCE_MOUSE); mMgh.onMotionEvent(mouseEvent, mouseEvent, /* policyFlags= */ 0); try { verify(mCallback, never()).onMouseMove(eq(DISPLAY_0), eq(mMgh.getMode())); } finally { mouseEvent.recycle(); } } private static class TestMagnificationGestureHandler extends MagnificationGestureHandler { boolean mIsInternalMethodCalled = false; Loading Loading
services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java +5 −0 Original line number Diff line number Diff line Loading @@ -394,6 +394,11 @@ public class MagnificationController implements MagnificationConnectionManager.C handleUserInteractionChanged(displayId, mode); } @Override public void onMouseMove(int displayId, int mode) { handleUserInteractionChanged(displayId, mode); } @Override public void onPanMagnificationStart(int displayId, @MagnificationController.PanDirection int direction) { Loading
services/accessibility/java/com/android/server/accessibility/magnification/MagnificationGestureHandler.java +11 −0 Original line number Diff line number Diff line Loading @@ -90,6 +90,14 @@ public abstract class MagnificationGestureHandler extends BaseEventStreamTransfo * @param mode The magnification mode */ void onTouchInteractionEnd(int displayId, int mode); /** * Called when the pointer moves by a user. * * @param displayId The logical display id * @param mode The magnification mode */ void onMouseMove(int displayId, int mode); } private final AccessibilityTraceManager mTrace; Loading Loading @@ -160,6 +168,9 @@ public abstract class MagnificationGestureHandler extends BaseEventStreamTransfo case SOURCE_MOUSE: case SOURCE_STYLUS: { if (magnificationShortcutExists()) { if (event.getAction() == MotionEvent.ACTION_HOVER_MOVE) { mCallback.onMouseMove(mDisplayId, getMode()); } handleMouseOrStylusEvent(event, rawEvent, policyFlags); } } Loading
services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java +40 −0 Original line number Diff line number Diff line Loading @@ -2112,6 +2112,46 @@ public class MagnificationControllerTest { eq(TEST_DISPLAY)); } @Test public void onMouseMove_whenNotMagnifying_notShowMagnificationButton() { mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_FULLSCREEN); verify(mMagnificationConnectionManager, never()).showMagnificationButton( eq(TEST_DISPLAY), eq(MODE_FULLSCREEN)); } @Test public void onMouseMove_fullscreenAndCapabilitiesAll_showMagnificationButton() throws RemoteException { setMagnificationEnabled(MODE_FULLSCREEN); reset(mMagnificationConnectionManager); mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_FULLSCREEN); verify(mMagnificationConnectionManager).showMagnificationButton(eq(TEST_DISPLAY), eq(MODE_FULLSCREEN)); // Never call removeMagnificationSettingsPanel if it is allowed to show the settings panel // in current capability and mode, and the magnification is activated. verify(mMagnificationConnectionManager, never()).removeMagnificationSettingsPanel( eq(TEST_DISPLAY)); } @Test public void onMouseMove_windowModeAndCapabilitiesAll_showMagnificationButton() throws RemoteException { setMagnificationEnabled(MODE_WINDOW); reset(mMagnificationConnectionManager); mMagnificationController.onMouseMove(TEST_DISPLAY, MODE_WINDOW); verify(mMagnificationConnectionManager).showMagnificationButton(eq(TEST_DISPLAY), eq(MODE_WINDOW)); // Never call removeMagnificationSettingsPanel if it is allowed to show the settings panel // in current capability and mode, and the magnification is activated. verify(mMagnificationConnectionManager, never()).removeMagnificationSettingsPanel( eq(TEST_DISPLAY)); } @Test public void enableWindowMode_showMagnificationButton() throws RemoteException { Loading
services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationGestureHandlerTest.java +29 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import static android.view.MotionEvent.ACTION_HOVER_MOVE; import static android.view.MotionEvent.ACTION_UP; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import static org.testng.AssertJUnit.assertTrue; Loading Loading @@ -157,6 +158,34 @@ public class MagnificationGestureHandlerTest { } } @Test public void onMotionEvent_withHoverMoveEventFromMouse_shouldInvokeOnMouseMoveCallback() { final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_HOVER_MOVE, 0, 0, 0); mouseEvent.setSource(InputDevice.SOURCE_MOUSE); mMgh.onMotionEvent(mouseEvent, mouseEvent, /* policyFlags= */ 0); try { verify(mCallback).onMouseMove(eq(DISPLAY_0), eq(mMgh.getMode())); } finally { mouseEvent.recycle(); } } @Test public void onMotionEvent_withMouseDownEventFromMouse_shouldNotInvokeOnMouseMove() { final MotionEvent mouseEvent = MotionEvent.obtain(0, 0, ACTION_DOWN, 0, 0, 0); mouseEvent.setSource(InputDevice.SOURCE_MOUSE); mMgh.onMotionEvent(mouseEvent, mouseEvent, /* policyFlags= */ 0); try { verify(mCallback, never()).onMouseMove(eq(DISPLAY_0), eq(mMgh.getMode())); } finally { mouseEvent.recycle(); } } private static class TestMagnificationGestureHandler extends MagnificationGestureHandler { boolean mIsInternalMethodCalled = false; Loading