From 52ba2178f811f1f8177fdf3cab162a20fd39f298 Mon Sep 17 00:00:00 2001 From: ryanlwlin Date: Mon, 6 Jul 2020 14:06:41 +0800 Subject: [PATCH] Rename and move classses Rename MagnificationController and move the classess about magnification to magnification package. Test: FullScreenMagnificationGestureHandlerTest MagnificationControllerTest.java AbstractAccessibilityServiceConnectionTest Bug: 160557771 Change-Id: I8d1e4fced6874e7dcac13dd5e9fafc6279b4ac34 --- ...bstractAccessibilityServiceConnection.java | 28 ++- .../AccessibilityInputFilter.java | 3 +- .../AccessibilityManagerService.java | 36 +-- .../AccessibilityServiceConnection.java | 4 +- .../FullScreenMagnificationController.java} | 69 ++--- ...FullScreenMagnificationGestureHandler.java | 60 ++--- .../WindowMagnificationManager.java | 5 +- ...actAccessibilityServiceConnectionTest.java | 59 ++--- .../AccessibilityInputFilterTest.java | 9 +- .../AccessibilityServiceConnectionTest.java | 8 +- ...ullScreenMagnificationControllerTest.java} | 236 +++++++++--------- ...ScreenMagnificationGestureHandlerTest.java | 23 +- 12 files changed, 283 insertions(+), 257 deletions(-) rename services/accessibility/java/com/android/server/accessibility/{MagnificationController.java => magnification/FullScreenMagnificationController.java} (95%) rename services/accessibility/java/com/android/server/accessibility/{ => magnification}/FullScreenMagnificationGestureHandler.java (94%) rename services/tests/servicestests/src/com/android/server/accessibility/{MagnificationControllerTest.java => magnification/FullScreenMagnificationControllerTest.java} (82%) rename services/tests/servicestests/src/com/android/server/accessibility/{ => magnification}/FullScreenMagnificationGestureHandlerTest.java (96%) diff --git a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java index c82dff22e3285..f8e59fd1553cb 100644 --- a/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AbstractAccessibilityServiceConnection.java @@ -79,6 +79,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; import com.android.server.accessibility.AccessibilityWindowManager.RemoteAccessibilityConnection; +import com.android.server.accessibility.magnification.FullScreenMagnificationController; import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.WindowManagerInternal; @@ -205,7 +206,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ /** * @return The magnification controller */ - @NonNull MagnificationController getMagnificationController(); + @NonNull + FullScreenMagnificationController getFullScreenMagnificationController(); /** * Called back to notify system that the client has changed @@ -830,7 +832,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ } final long identity = Binder.clearCallingIdentity(); try { - return mSystemSupport.getMagnificationController().getScale(displayId); + return mSystemSupport.getFullScreenMagnificationController().getScale(displayId); } finally { Binder.restoreCallingIdentity(identity); } @@ -843,8 +845,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ if (!hasRightsToCurrentUserLocked()) { return region; } - MagnificationController magnificationController = - mSystemSupport.getMagnificationController(); + FullScreenMagnificationController magnificationController = + mSystemSupport.getFullScreenMagnificationController(); boolean registeredJustForThisCall = registerMagnificationIfNeeded(displayId, magnificationController); final long identity = Binder.clearCallingIdentity(); @@ -866,8 +868,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ if (!hasRightsToCurrentUserLocked()) { return 0.0f; } - MagnificationController magnificationController = - mSystemSupport.getMagnificationController(); + FullScreenMagnificationController magnificationController = + mSystemSupport.getFullScreenMagnificationController(); boolean registeredJustForThisCall = registerMagnificationIfNeeded(displayId, magnificationController); final long identity = Binder.clearCallingIdentity(); @@ -888,8 +890,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ if (!hasRightsToCurrentUserLocked()) { return 0.0f; } - MagnificationController magnificationController = - mSystemSupport.getMagnificationController(); + FullScreenMagnificationController magnificationController = + mSystemSupport.getFullScreenMagnificationController(); boolean registeredJustForThisCall = registerMagnificationIfNeeded(displayId, magnificationController); final long identity = Binder.clearCallingIdentity(); @@ -905,7 +907,7 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ } private boolean registerMagnificationIfNeeded(int displayId, - MagnificationController magnificationController) { + FullScreenMagnificationController magnificationController) { if (!magnificationController.isRegistered(displayId) && mSecurityPolicy.canControlMagnification(this)) { magnificationController.register(displayId); @@ -926,8 +928,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ } final long identity = Binder.clearCallingIdentity(); try { - MagnificationController magnificationController = - mSystemSupport.getMagnificationController(); + FullScreenMagnificationController magnificationController = + mSystemSupport.getFullScreenMagnificationController(); return (magnificationController.reset(displayId, animate) || !magnificationController.isMagnifying(displayId)); } finally { @@ -947,8 +949,8 @@ abstract class AbstractAccessibilityServiceConnection extends IAccessibilityServ } final long identity = Binder.clearCallingIdentity(); try { - MagnificationController magnificationController = - mSystemSupport.getMagnificationController(); + FullScreenMagnificationController magnificationController = + mSystemSupport.getFullScreenMagnificationController(); if (!magnificationController.isRegistered(displayId)) { magnificationController.register(displayId); } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java index be470b1c31f21..8b40f610b4b38 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java @@ -34,6 +34,7 @@ import android.view.accessibility.AccessibilityEvent; import com.android.server.LocalServices; import com.android.server.accessibility.gestures.TouchExplorer; +import com.android.server.accessibility.magnification.FullScreenMagnificationGestureHandler; import com.android.server.accessibility.magnification.MagnificationGestureHandler; import com.android.server.accessibility.magnification.WindowMagnificationGestureHandler; import com.android.server.policy.WindowManagerPolicy; @@ -539,7 +540,7 @@ class AccessibilityInputFilter extends InputFilter implements EventStreamTransfo detectControlGestures, triggerable, displayId); } else { magnificationGestureHandler = new FullScreenMagnificationGestureHandler(displayContext, - mAms.getMagnificationController(), mAms::onMagnificationScaleChanged, + mAms.getFullScreenMagnificationController(), mAms::onMagnificationScaleChanged, detectControlGestures, triggerable, displayId); } return magnificationGestureHandler; diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java index 9f9ceb0d43d83..c92571ce31b01 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java @@ -116,6 +116,7 @@ import com.android.internal.util.DumpUtils; import com.android.internal.util.IntPair; import com.android.server.LocalServices; import com.android.server.SystemService; +import com.android.server.accessibility.magnification.FullScreenMagnificationController; import com.android.server.accessibility.magnification.MagnificationGestureHandler; import com.android.server.accessibility.magnification.WindowMagnificationManager; import com.android.server.wm.ActivityTaskManagerInternal; @@ -212,7 +213,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub // Lazily initialized - access through getSystemActionPerfomer() private SystemActionPerformer mSystemActionPerformer; - private MagnificationController mMagnificationController; + private FullScreenMagnificationController mFullScreenMagnificationController; private InteractionBridge mInteractionBridge; @@ -2191,13 +2192,13 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub return; } - if (mMagnificationController != null) { - mMagnificationController.setUserId(userState.mUserId); + if (mFullScreenMagnificationController != null) { + mFullScreenMagnificationController.setUserId(userState.mUserId); } if (mUiAutomationManager.suppressingAccessibilityServicesLocked() - && mMagnificationController != null) { - mMagnificationController.unregisterAll(); + && mFullScreenMagnificationController != null) { + mFullScreenMagnificationController.unregisterAll(); return; } @@ -2209,7 +2210,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub || userState.isShortcutMagnificationEnabledLocked()) { for (int i = 0; i < displays.size(); i++) { final Display display = displays.get(i); - getMagnificationController().register(display.getDisplayId()); + getFullScreenMagnificationController().register(display.getDisplayId()); } return; } @@ -2219,9 +2220,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub final Display display = displays.get(i); final int displayId = display.getDisplayId(); if (userHasListeningMagnificationServicesLocked(userState, displayId)) { - getMagnificationController().register(displayId); - } else if (mMagnificationController != null) { - mMagnificationController.unregister(displayId); + getFullScreenMagnificationController().register(displayId); + } else if (mFullScreenMagnificationController != null) { + mFullScreenMagnificationController.unregister(displayId); } } } @@ -2568,7 +2569,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } // In case user assigned magnification to the given shortcut. if (targetName.equals(MAGNIFICATION_CONTROLLER_NAME)) { - final boolean enabled = !getMagnificationController().isMagnifying(displayId); + final boolean enabled = !getFullScreenMagnificationController().isMagnifying(displayId); logAccessibilityShortcutActivated(MAGNIFICATION_COMPONENT_NAME, shortcutType, enabled); sendAccessibilityButtonToInputFilter(displayId); return; @@ -2928,13 +2929,14 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } @Override - public MagnificationController getMagnificationController() { + public FullScreenMagnificationController getFullScreenMagnificationController() { synchronized (mLock) { - if (mMagnificationController == null) { - mMagnificationController = new MagnificationController(mContext, this, mLock); - mMagnificationController.setUserId(mCurrentUserId); + if (mFullScreenMagnificationController == null) { + mFullScreenMagnificationController = new FullScreenMagnificationController(mContext, + this, mLock); + mFullScreenMagnificationController.setUserId(mCurrentUserId); } - return mMagnificationController; + return mFullScreenMagnificationController; } } @@ -3126,8 +3128,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub } } } - if (mMagnificationController != null) { - mMagnificationController.onDisplayRemoved(displayId); + if (mFullScreenMagnificationController != null) { + mFullScreenMagnificationController.onDisplayRemoved(displayId); } mA11yWindowManager.stopTrackingWindows(displayId); } diff --git a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java index fea2e7b841e02..e48d11d17f40d 100644 --- a/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java +++ b/services/accessibility/java/com/android/server/accessibility/AccessibilityServiceConnection.java @@ -120,7 +120,7 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect AccessibilityUserState userState = mUserStateWeakReference.get(); if (userState == null) return; userState.removeServiceLocked(this); - mSystemSupport.getMagnificationController().resetAllIfNeeded(mId); + mSystemSupport.getFullScreenMagnificationController().resetAllIfNeeded(mId); mActivityTaskManagerService.setAllowAppSwitches(mComponentName.flattenToString(), -1, userState.mUserId); resetLocked(); @@ -312,7 +312,7 @@ class AccessibilityServiceConnection extends AbstractAccessibilityServiceConnect userState.serviceDisconnectedLocked(this); } resetLocked(); - mSystemSupport.getMagnificationController().resetAllIfNeeded(mId); + mSystemSupport.getFullScreenMagnificationController().resetAllIfNeeded(mId); mSystemSupport.onClientChangeLocked(false); } } diff --git a/services/accessibility/java/com/android/server/accessibility/MagnificationController.java b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationController.java similarity index 95% rename from services/accessibility/java/com/android/server/accessibility/MagnificationController.java rename to services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationController.java index e784056d9e357..44c4bf4836a0d 100644 --- a/services/accessibility/java/com/android/server/accessibility/MagnificationController.java +++ b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationController.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.accessibility; +package com.android.server.accessibility.magnification; import android.animation.ValueAnimator; import android.annotation.NonNull; @@ -42,6 +42,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.LocalServices; +import com.android.server.accessibility.AccessibilityManagerService; import com.android.server.wm.WindowManagerInternal; import java.util.Locale; @@ -56,9 +57,9 @@ import java.util.Locale; * magnification region. If a value is out of bounds, it will be adjusted to guarantee these * constraints. */ -public class MagnificationController { +public class FullScreenMagnificationController { private static final boolean DEBUG = false; - private static final String LOG_TAG = "MagnificationController"; + private static final String LOG_TAG = "FullScreenMagnificationController"; public static final float MIN_SCALE = 1.0f; public static final float MAX_SCALE = 8.0f; @@ -140,11 +141,12 @@ public class MagnificationController { /** * Unregisters magnification callback from window manager. Callbacks to - * {@link MagnificationController#unregisterCallbackLocked(int, boolean)} after + * {@link FullScreenMagnificationController#unregisterCallbackLocked(int, boolean)} after * unregistered. * * @param delete true if this instance should be removed from the SparseArray in - * MagnificationController after unregistered, for example, display removed. + * FullScreenMagnificationController after unregistered, for example, + * display removed. */ @GuardedBy("mLock") void unregister(boolean delete) { @@ -164,7 +166,8 @@ public class MagnificationController { * called after animation finished. * * @param delete true if this instance should be removed from the SparseArray in - * MagnificationController after unregistered, for example, display removed. + * FullScreenMagnificationController after unregistered, for example, + * display removed. */ @GuardedBy("mLock") void unregisterPending(boolean delete) { @@ -257,15 +260,17 @@ public class MagnificationController { @Override public void onRotationChanged(int rotation) { // Treat as context change and reset - final Message m = PooledLambda.obtainMessage(MagnificationController::resetIfNeeded, - MagnificationController.this, mDisplayId, true); + final Message m = PooledLambda.obtainMessage( + FullScreenMagnificationController::resetIfNeeded, + FullScreenMagnificationController.this, mDisplayId, true); mControllerCtx.getHandler().sendMessage(m); } @Override public void onUserContextChanged() { - final Message m = PooledLambda.obtainMessage(MagnificationController::resetIfNeeded, - MagnificationController.this, mDisplayId, true); + final Message m = PooledLambda.obtainMessage( + FullScreenMagnificationController::resetIfNeeded, + FullScreenMagnificationController.this, mDisplayId, true); mControllerCtx.getHandler().sendMessage(m); } @@ -554,25 +559,25 @@ public class MagnificationController { float getMinOffsetXLocked() { final float viewportWidth = mMagnificationBounds.width(); final float viewportLeft = mMagnificationBounds.left; - return (viewportLeft + viewportWidth) - - (viewportLeft + viewportWidth) * mCurrentMagnificationSpec.scale; + return (viewportLeft + viewportWidth) + - (viewportLeft + viewportWidth) * mCurrentMagnificationSpec.scale; } float getMaxOffsetXLocked() { - return mMagnificationBounds.left - - mMagnificationBounds.left * mCurrentMagnificationSpec.scale; + return mMagnificationBounds.left + - mMagnificationBounds.left * mCurrentMagnificationSpec.scale; } float getMinOffsetYLocked() { final float viewportHeight = mMagnificationBounds.height(); final float viewportTop = mMagnificationBounds.top; - return (viewportTop + viewportHeight) - - (viewportTop + viewportHeight) * mCurrentMagnificationSpec.scale; + return (viewportTop + viewportHeight) + - (viewportTop + viewportHeight) * mCurrentMagnificationSpec.scale; } float getMaxOffsetYLocked() { - return mMagnificationBounds.top - - mMagnificationBounds.top * mCurrentMagnificationSpec.scale; + return mMagnificationBounds.top + - mMagnificationBounds.top * mCurrentMagnificationSpec.scale; } @Override @@ -590,9 +595,9 @@ public class MagnificationController { } /** - * MagnificationController Constructor + * FullScreenMagnificationController Constructor */ - public MagnificationController(@NonNull Context context, + public FullScreenMagnificationController(@NonNull Context context, @NonNull AccessibilityManagerService ams, @NonNull Object lock) { this(new ControllerContext(context, ams, LocalServices.getService(WindowManagerInternal.class), @@ -604,7 +609,7 @@ public class MagnificationController { * Constructor for tests */ @VisibleForTesting - public MagnificationController(@NonNull ControllerContext ctx, @NonNull Object lock) { + public FullScreenMagnificationController(@NonNull ControllerContext ctx, @NonNull Object lock) { mControllerCtx = ctx; mLock = lock; mMainThreadId = mControllerCtx.getContext().getMainLooper().getThread().getId(); @@ -1088,7 +1093,7 @@ public class MagnificationController { private void onScreenTurnedOff() { final Message m = PooledLambda.obtainMessage( - MagnificationController::resetAllIfNeeded, this, false); + FullScreenMagnificationController::resetAllIfNeeded, this, false); mControllerCtx.getHandler().sendMessage(m); } @@ -1253,14 +1258,14 @@ public class MagnificationController { synchronized (mLock) { if (mEnabled) { float fract = animation.getAnimatedFraction(); - mTmpMagnificationSpec.scale = mStartMagnificationSpec.scale + - (mEndMagnificationSpec.scale - mStartMagnificationSpec.scale) * fract; - mTmpMagnificationSpec.offsetX = mStartMagnificationSpec.offsetX + - (mEndMagnificationSpec.offsetX - mStartMagnificationSpec.offsetX) - * fract; - mTmpMagnificationSpec.offsetY = mStartMagnificationSpec.offsetY + - (mEndMagnificationSpec.offsetY - mStartMagnificationSpec.offsetY) - * fract; + mTmpMagnificationSpec.scale = mStartMagnificationSpec.scale + + (mEndMagnificationSpec.scale - mStartMagnificationSpec.scale) * fract; + mTmpMagnificationSpec.offsetX = mStartMagnificationSpec.offsetX + + (mEndMagnificationSpec.offsetX - mStartMagnificationSpec.offsetX) + * fract; + mTmpMagnificationSpec.offsetY = mStartMagnificationSpec.offsetY + + (mEndMagnificationSpec.offsetY - mStartMagnificationSpec.offsetY) + * fract; setMagnificationSpecLocked(mTmpMagnificationSpec); } } @@ -1269,10 +1274,10 @@ public class MagnificationController { private static class ScreenStateObserver extends BroadcastReceiver { private final Context mContext; - private final MagnificationController mController; + private final FullScreenMagnificationController mController; private boolean mRegistered = false; - public ScreenStateObserver(Context context, MagnificationController controller) { + ScreenStateObserver(Context context, FullScreenMagnificationController controller) { mContext = context; mController = controller; } diff --git a/services/accessibility/java/com/android/server/accessibility/FullScreenMagnificationGestureHandler.java b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java similarity index 94% rename from services/accessibility/java/com/android/server/accessibility/FullScreenMagnificationGestureHandler.java rename to services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java index 058a293529fb9..dad061262d494 100644 --- a/services/accessibility/java/com/android/server/accessibility/FullScreenMagnificationGestureHandler.java +++ b/services/accessibility/java/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandler.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.accessibility; +package com.android.server.accessibility.magnification; import static android.view.InputDevice.SOURCE_TOUCHSCREEN; import static android.view.MotionEvent.ACTION_CANCEL; @@ -59,8 +59,8 @@ import android.view.ViewConfiguration; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; +import com.android.server.accessibility.AccessibilityManagerService; import com.android.server.accessibility.gestures.GestureUtils; -import com.android.server.accessibility.magnification.MagnificationGestureHandler; import java.util.ArrayDeque; import java.util.Queue; @@ -114,7 +114,7 @@ import java.util.Queue; * 7. The magnification scale will be persisted in settings and in the cloud. */ @SuppressWarnings("WeakerAccess") -class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler { +public class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler { private static final String LOG_TAG = "FullScreenMagnificationGestureHandler"; private static final boolean DEBUG_ALL = false; @@ -127,9 +127,9 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler // to AccessibilityService.MagnificationController#setScale() has // different scale range private static final float MIN_SCALE = 2.0f; - private static final float MAX_SCALE = MagnificationController.MAX_SCALE; + private static final float MAX_SCALE = FullScreenMagnificationController.MAX_SCALE; - @VisibleForTesting final MagnificationController mMagnificationController; + @VisibleForTesting final FullScreenMagnificationController mFullScreenMagnificationController; @VisibleForTesting final DelegatingState mDelegatingState; @VisibleForTesting final DetectingState mDetectingState; @@ -163,7 +163,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler /** * @param context Context for resolving various magnification-related resources - * @param magnificationController the {@link MagnificationController} + * @param fullScreenMagnificationController the {@link FullScreenMagnificationController} * * @param detectTripleTap {@code true} if this detector should detect and respond to triple-tap * gestures for engaging and disengaging magnification, @@ -173,8 +173,8 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler * {@code false} if it should ignore such triggers. * @param displayId The logical display id. */ - FullScreenMagnificationGestureHandler(Context context, - MagnificationController magnificationController, + public FullScreenMagnificationGestureHandler(Context context, + FullScreenMagnificationController fullScreenMagnificationController, MagnificationGestureHandler.ScaleChangedListener listener, boolean detectTripleTap, boolean detectShortcutTrigger, @@ -185,7 +185,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler "FullScreenMagnificationGestureHandler(detectTripleTap = " + detectTripleTap + ", detectShortcutTrigger = " + detectShortcutTrigger + ")"); } - mMagnificationController = magnificationController; + mFullScreenMagnificationController = fullScreenMagnificationController; mDisplayId = displayId; mDelegatingState = new DelegatingState(); @@ -265,7 +265,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler mScreenStateReceiver.unregister(); } // Check if need to reset when MagnificationGestureHandler is the last magnifying service. - mMagnificationController.resetAllIfNeeded( + mFullScreenMagnificationController.resetAllIfNeeded( AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID); clearAndTransitionToStateDetecting(); } @@ -273,7 +273,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler @Override public void notifyShortcutTriggered() { if (mDetectShortcutTrigger) { - boolean wasMagnifying = mMagnificationController.resetIfNeeded(mDisplayId, + boolean wasMagnifying = mFullScreenMagnificationController.resetIfNeeded(mDisplayId, /* animate */ true); if (wasMagnifying) { clearAndTransitionToStateDetecting(); @@ -424,7 +424,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler } public void persistScaleAndTransitionTo(State state) { - mMagnificationController.persistScale(); + mFullScreenMagnificationController.persistScale(); clear(); transitionTo(state); } @@ -439,7 +439,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler Slog.i(LOG_TAG, "Panned content by scrollX: " + distanceX + " scrollY: " + distanceY); } - mMagnificationController.offsetMagnifiedRegion(mDisplayId, distanceX, + mFullScreenMagnificationController.offsetMagnifiedRegion(mDisplayId, distanceX, distanceY, AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID); return /* event consumed: */ true; } @@ -455,7 +455,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler mScaling = abs(deltaScale) > mScalingThreshold; return mScaling; } - final float initialScale = mMagnificationController.getScale(mDisplayId); + final float initialScale = mFullScreenMagnificationController.getScale(mDisplayId); final float targetScale = initialScale * detector.getScaleFactor(); // Don't allow a gesture to move the user further outside the @@ -477,7 +477,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler final float pivotX = detector.getFocusX(); final float pivotY = detector.getFocusY(); if (DEBUG_PANNING_SCALING) Slog.i(LOG_TAG, "Scaled content to: " + scale + "x"); - mMagnificationController.setScale(mDisplayId, scale, pivotX, pivotY, false, + mFullScreenMagnificationController.setScale(mDisplayId, scale, pivotX, pivotY, false, AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID); mListener.onMagnificationScaleChanged(mDisplayId, getMode()); return /* handled: */ true; @@ -537,9 +537,9 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler } final float eventX = event.getX(); final float eventY = event.getY(); - if (mMagnificationController.magnificationRegionContains( + if (mFullScreenMagnificationController.magnificationRegionContains( mDisplayId, eventX, eventY)) { - mMagnificationController.setCenter(mDisplayId, eventX, eventY, + mFullScreenMagnificationController.setCenter(mDisplayId, eventX, eventY, /* animate */ mLastMoveOutsideMagnifiedRegion, AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID); mLastMoveOutsideMagnifiedRegion = false; @@ -687,7 +687,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler mLastDetectingDownEventTime = event.getDownTime(); mHandler.removeMessages(MESSAGE_TRANSITION_TO_DELEGATING_STATE); - if (!mMagnificationController.magnificationRegionContains( + if (!mFullScreenMagnificationController.magnificationRegionContains( mDisplayId, event.getX(), event.getY())) { transitionToDelegatingStateAndClear(); @@ -705,7 +705,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler // If magnified, delay an ACTION_DOWN for mMultiTapMaxDelay // to ensure reachability of // STATE_PANNING_SCALING(triggerable with ACTION_POINTER_DOWN) - || mMagnificationController.isMagnifying(mDisplayId)) { + || mFullScreenMagnificationController.isMagnifying(mDisplayId)) { afterMultiTapTimeoutTransitionToDelegatingState(); @@ -717,7 +717,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler } break; case ACTION_POINTER_DOWN: { - if (mMagnificationController.isMagnifying(mDisplayId) + if (mFullScreenMagnificationController.isMagnifying(mDisplayId) && event.getPointerCount() == 2) { storeSecondPointerDownLocation(event); mHandler.sendEmptyMessageDelayed(MESSAGE_TRANSITION_TO_PANNINGSCALING_STATE, @@ -760,7 +760,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler mHandler.removeMessages(MESSAGE_ON_TRIPLE_TAP_AND_HOLD); - if (!mMagnificationController.magnificationRegionContains( + if (!mFullScreenMagnificationController.magnificationRegionContains( mDisplayId, event.getX(), event.getY())) { transitionToDelegatingStateAndClear(); @@ -811,7 +811,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler // Only log the triple tap event, use numTaps to filter. if (multitapTriggered && numTaps > 2) { - final boolean enabled = mMagnificationController.isMagnifying(mDisplayId); + final boolean enabled = mFullScreenMagnificationController.isMagnifying(mDisplayId); logMagnificationTripleTap(enabled); } return multitapTriggered; @@ -947,7 +947,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler clear(); // Toggle zoom - if (mMagnificationController.isMagnifying(mDisplayId)) { + if (mFullScreenMagnificationController.isMagnifying(mDisplayId)) { zoomOff(); } else { zoomOn(up.getX(), up.getY()); @@ -955,7 +955,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler } private boolean isMagnifying() { - return mMagnificationController.isMagnifying(mDisplayId); + return mFullScreenMagnificationController.isMagnifying(mDisplayId); } void transitionToViewportDraggingStateAndClear(MotionEvent down) { @@ -964,7 +964,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler clear(); mViewportDraggingState.mZoomedInBeforeDrag = - mMagnificationController.isMagnifying(mDisplayId); + mFullScreenMagnificationController.isMagnifying(mDisplayId); // Triple tap and hold also belongs to triple tap event. final boolean enabled = !mViewportDraggingState.mZoomedInBeforeDrag; @@ -995,7 +995,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler if (DEBUG_DETECTING) Slog.i(LOG_TAG, "setShortcutTriggered(" + state + ")"); mShortcutTriggered = state; - mMagnificationController.setForceShowMagnifiableBounds(mDisplayId, state); + mFullScreenMagnificationController.setForceShowMagnifiableBounds(mDisplayId, state); } /** @@ -1028,9 +1028,9 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler if (DEBUG_DETECTING) Slog.i(LOG_TAG, "zoomOn(" + centerX + ", " + centerY + ")"); final float scale = MathUtils.constrain( - mMagnificationController.getPersistedScale(), + mFullScreenMagnificationController.getPersistedScale(), MIN_SCALE, MAX_SCALE); - mMagnificationController.setScaleAndCenter(mDisplayId, + mFullScreenMagnificationController.setScaleAndCenter(mDisplayId, scale, centerX, centerY, /* animate */ true, AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID); @@ -1038,7 +1038,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler private void zoomOff() { if (DEBUG_DETECTING) Slog.i(LOG_TAG, "zoomOff()"); - mMagnificationController.reset(mDisplayId, /* animate */ true); + mFullScreenMagnificationController.reset(mDisplayId, /* animate */ true); } private static MotionEvent recycleAndNullify(@Nullable MotionEvent event) { @@ -1059,7 +1059,7 @@ class FullScreenMagnificationGestureHandler extends MagnificationGestureHandler + ", mDetectShortcutTrigger=" + mDetectShortcutTrigger + ", mCurrentState=" + State.nameOf(mCurrentState) + ", mPreviousState=" + State.nameOf(mPreviousState) - + ", mMagnificationController=" + mMagnificationController + + ", mMagnificationController=" + mFullScreenMagnificationController + ", mDisplayId=" + mDisplayId + '}'; } diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java b/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java index b5ea01a281a32..a3c5d1edd3516 100644 --- a/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java +++ b/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java @@ -34,7 +34,6 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.os.BackgroundThread; import com.android.server.LocalServices; -import com.android.server.accessibility.MagnificationController; import com.android.server.statusbar.StatusBarManagerInternal; /** @@ -50,8 +49,8 @@ public class WindowMagnificationManager implements private static final String TAG = "WindowMagnificationMgr"; //Ensure the range has consistency with full screen. - static final float MAX_SCALE = MagnificationController.MAX_SCALE; - static final float MIN_SCALE = MagnificationController.MIN_SCALE; + static final float MAX_SCALE = FullScreenMagnificationController.MAX_SCALE; + static final float MIN_SCALE = FullScreenMagnificationController.MIN_SCALE; private final Object mLock = new Object();; private final Context mContext; diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java index 0445bff8fd0d7..4b257afee388c 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AbstractAccessibilityServiceConnectionTest.java @@ -90,6 +90,7 @@ import android.view.accessibility.IAccessibilityInteractionConnection; import android.view.accessibility.IAccessibilityInteractionConnectionCallback; import com.android.server.accessibility.AccessibilityWindowManager.RemoteAccessibilityConnection; +import com.android.server.accessibility.magnification.FullScreenMagnificationController; import com.android.server.accessibility.test.MessageCapturingHandler; import com.android.server.wm.WindowManagerInternal; @@ -166,7 +167,7 @@ public class AbstractAccessibilityServiceConnectionTest { @Mock private IAccessibilityInteractionConnection mMockIA11yInteractionConnection; @Mock private IAccessibilityInteractionConnectionCallback mMockCallback; @Mock private FingerprintGestureDispatcher mMockFingerprintGestureDispatcher; - @Mock private MagnificationController mMockMagnificationController; + @Mock private FullScreenMagnificationController mMockFullScreenMagnificationController; @Mock private RemoteCallback.OnResultListener mMockListener; @Before @@ -177,8 +178,8 @@ public class AbstractAccessibilityServiceConnectionTest { when(mMockSystemSupport.getKeyEventDispatcher()).thenReturn(mMockKeyEventDispatcher); when(mMockSystemSupport.getFingerprintGestureDispatcher()) .thenReturn(mMockFingerprintGestureDispatcher); - when(mMockSystemSupport.getMagnificationController()) - .thenReturn(mMockMagnificationController); + when(mMockSystemSupport.getFullScreenMagnificationController()) + .thenReturn(mMockFullScreenMagnificationController); PowerManager powerManager = new PowerManager(mMockContext, mMockIPowerManager, mMockIThermalService, mHandler); @@ -533,7 +534,7 @@ public class AbstractAccessibilityServiceConnectionTest { public void getMagnificationScale() { final int displayId = 1; final float scale = 2.0f; - when(mMockMagnificationController.getScale(displayId)).thenReturn(scale); + when(mMockFullScreenMagnificationController.getScale(displayId)).thenReturn(scale); final float result = mServiceConnection.getMagnificationScale(displayId); assertThat(result, is(scale)); @@ -543,7 +544,7 @@ public class AbstractAccessibilityServiceConnectionTest { public void getMagnificationScale_serviceNotBelongCurrentUser_returnNoScale() { final int displayId = 1; final float scale = 2.0f; - when(mMockMagnificationController.getScale(displayId)).thenReturn(scale); + when(mMockFullScreenMagnificationController.getScale(displayId)).thenReturn(scale); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); final float result = mServiceConnection.getMagnificationScale(displayId); @@ -557,13 +558,14 @@ public class AbstractAccessibilityServiceConnectionTest { doAnswer((invocation) -> { ((Region) invocation.getArguments()[1]).set(region); return null; - }).when(mMockMagnificationController).getMagnificationRegion(eq(displayId), any()); - when(mMockMagnificationController.isRegistered(displayId)).thenReturn(false); + }).when(mMockFullScreenMagnificationController).getMagnificationRegion(eq(displayId), + any()); + when(mMockFullScreenMagnificationController.isRegistered(displayId)).thenReturn(false); final Region result = mServiceConnection.getMagnificationRegion(displayId); assertThat(result, is(region)); - verify(mMockMagnificationController).register(displayId); - verify(mMockMagnificationController).unregister(displayId); + verify(mMockFullScreenMagnificationController).register(displayId); + verify(mMockFullScreenMagnificationController).unregister(displayId); } @Test @@ -573,7 +575,8 @@ public class AbstractAccessibilityServiceConnectionTest { doAnswer((invocation) -> { ((Region) invocation.getArguments()[1]).set(region); return null; - }).when(mMockMagnificationController).getMagnificationRegion(eq(displayId), any()); + }).when(mMockFullScreenMagnificationController).getMagnificationRegion(eq(displayId), + any()); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); final Region result = mServiceConnection.getMagnificationRegion(displayId); @@ -584,20 +587,20 @@ public class AbstractAccessibilityServiceConnectionTest { public void getMagnificationCenterX_notRegistered_shouldRegisterThenUnregister() { final int displayId = 1; final float centerX = 480.0f; - when(mMockMagnificationController.getCenterX(displayId)).thenReturn(centerX); - when(mMockMagnificationController.isRegistered(displayId)).thenReturn(false); + when(mMockFullScreenMagnificationController.getCenterX(displayId)).thenReturn(centerX); + when(mMockFullScreenMagnificationController.isRegistered(displayId)).thenReturn(false); final float result = mServiceConnection.getMagnificationCenterX(displayId); assertThat(result, is(centerX)); - verify(mMockMagnificationController).register(displayId); - verify(mMockMagnificationController).unregister(displayId); + verify(mMockFullScreenMagnificationController).register(displayId); + verify(mMockFullScreenMagnificationController).unregister(displayId); } @Test public void getMagnificationCenterX_serviceNotBelongCurrentUser_returnZero() { final int displayId = 1; final float centerX = 480.0f; - when(mMockMagnificationController.getCenterX(displayId)).thenReturn(centerX); + when(mMockFullScreenMagnificationController.getCenterX(displayId)).thenReturn(centerX); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); final float result = mServiceConnection.getMagnificationCenterX(displayId); @@ -608,20 +611,20 @@ public class AbstractAccessibilityServiceConnectionTest { public void getMagnificationCenterY_notRegistered_shouldRegisterThenUnregister() { final int displayId = 1; final float centerY = 640.0f; - when(mMockMagnificationController.getCenterY(displayId)).thenReturn(centerY); - when(mMockMagnificationController.isRegistered(displayId)).thenReturn(false); + when(mMockFullScreenMagnificationController.getCenterY(displayId)).thenReturn(centerY); + when(mMockFullScreenMagnificationController.isRegistered(displayId)).thenReturn(false); final float result = mServiceConnection.getMagnificationCenterY(displayId); assertThat(result, is(centerY)); - verify(mMockMagnificationController).register(displayId); - verify(mMockMagnificationController).unregister(displayId); + verify(mMockFullScreenMagnificationController).register(displayId); + verify(mMockFullScreenMagnificationController).unregister(displayId); } @Test public void getMagnificationCenterY_serviceNotBelongCurrentUser_returnZero() { final int displayId = 1; final float centerY = 640.0f; - when(mMockMagnificationController.getCenterY(displayId)).thenReturn(centerY); + when(mMockFullScreenMagnificationController.getCenterY(displayId)).thenReturn(centerY); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); final float result = mServiceConnection.getMagnificationCenterY(displayId); @@ -631,7 +634,7 @@ public class AbstractAccessibilityServiceConnectionTest { @Test public void resetMagnification() { final int displayId = 1; - when(mMockMagnificationController.reset(displayId, true)).thenReturn(true); + when(mMockFullScreenMagnificationController.reset(displayId, true)).thenReturn(true); final boolean result = mServiceConnection.resetMagnification(displayId, true); assertThat(result, is(true)); @@ -640,7 +643,7 @@ public class AbstractAccessibilityServiceConnectionTest { @Test public void resetMagnification_cantControlMagnification_returnFalse() { final int displayId = 1; - when(mMockMagnificationController.reset(displayId, true)).thenReturn(true); + when(mMockFullScreenMagnificationController.reset(displayId, true)).thenReturn(true); when(mMockSecurityPolicy.canControlMagnification(mServiceConnection)).thenReturn(false); final boolean result = mServiceConnection.resetMagnification(displayId, true); @@ -650,7 +653,7 @@ public class AbstractAccessibilityServiceConnectionTest { @Test public void resetMagnification_serviceNotBelongCurrentUser_returnFalse() { final int displayId = 1; - when(mMockMagnificationController.reset(displayId, true)).thenReturn(true); + when(mMockFullScreenMagnificationController.reset(displayId, true)).thenReturn(true); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); final boolean result = mServiceConnection.resetMagnification(displayId, true); @@ -663,14 +666,14 @@ public class AbstractAccessibilityServiceConnectionTest { final float scale = 1.8f; final float centerX = 50.5f; final float centerY = 100.5f; - when(mMockMagnificationController.setScaleAndCenter(displayId, + when(mMockFullScreenMagnificationController.setScaleAndCenter(displayId, scale, centerX, centerY, true, SERVICE_ID)).thenReturn(true); - when(mMockMagnificationController.isRegistered(displayId)).thenReturn(false); + when(mMockFullScreenMagnificationController.isRegistered(displayId)).thenReturn(false); final boolean result = mServiceConnection.setMagnificationScaleAndCenter( displayId, scale, centerX, centerY, true); assertThat(result, is(true)); - verify(mMockMagnificationController).register(displayId); + verify(mMockFullScreenMagnificationController).register(displayId); } @Test @@ -679,7 +682,7 @@ public class AbstractAccessibilityServiceConnectionTest { final float scale = 1.8f; final float centerX = 50.5f; final float centerY = 100.5f; - when(mMockMagnificationController.setScaleAndCenter(displayId, + when(mMockFullScreenMagnificationController.setScaleAndCenter(displayId, scale, centerX, centerY, true, SERVICE_ID)).thenReturn(true); when(mMockSecurityPolicy.canControlMagnification(mServiceConnection)).thenReturn(false); @@ -694,7 +697,7 @@ public class AbstractAccessibilityServiceConnectionTest { final float scale = 1.8f; final float centerX = 50.5f; final float centerY = 100.5f; - when(mMockMagnificationController.setScaleAndCenter(displayId, + when(mMockFullScreenMagnificationController.setScaleAndCenter(displayId, scale, centerX, centerY, true, SERVICE_ID)).thenReturn(true); when(mMockSystemSupport.getCurrentUserIdLocked()).thenReturn(USER_ID2); diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityInputFilterTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityInputFilterTest.java index e16693535c9f9..4b2a9fcd10d24 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityInputFilterTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityInputFilterTest.java @@ -52,6 +52,8 @@ import androidx.test.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; import com.android.server.accessibility.gestures.TouchExplorer; +import com.android.server.accessibility.magnification.FullScreenMagnificationController; +import com.android.server.accessibility.magnification.FullScreenMagnificationGestureHandler; import com.android.server.accessibility.magnification.MagnificationGestureHandler; import com.android.server.accessibility.magnification.WindowMagnificationGestureHandler; @@ -89,7 +91,7 @@ public class AccessibilityInputFilterTest { FullScreenMagnificationGestureHandler.class, TouchExplorer.class, AutoclickController.class, AccessibilityInputFilter.class}; - private MagnificationController mMockMagnificationController; + private FullScreenMagnificationController mMockFullScreenMagnificationController; private AccessibilityManagerService mAms; private AccessibilityInputFilter mA11yInputFilter; private EventCaptor mCaptor1; @@ -135,12 +137,13 @@ public class AccessibilityInputFilterTest { setDisplayCount(1); mAms = spy(new AccessibilityManagerService(context)); - mMockMagnificationController = mock(MagnificationController.class); + mMockFullScreenMagnificationController = mock(FullScreenMagnificationController.class); mA11yInputFilter = new AccessibilityInputFilter(context, mAms, mEventHandler); mA11yInputFilter.onInstalled(); when(mAms.getValidDisplayList()).thenReturn(mDisplayList); - when(mAms.getMagnificationController()).thenReturn(mMockMagnificationController); + when(mAms.getFullScreenMagnificationController()).thenReturn( + mMockFullScreenMagnificationController); } @After diff --git a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityServiceConnectionTest.java b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityServiceConnectionTest.java index b6cf2785d7712..27edfd4ef1d2d 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityServiceConnectionTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/AccessibilityServiceConnectionTest.java @@ -44,6 +44,7 @@ import android.os.UserHandle; import android.testing.DexmakerShareClassLoaderRule; import android.view.Display; +import com.android.server.accessibility.magnification.FullScreenMagnificationController; import com.android.server.accessibility.test.MessageCapturingHandler; import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.WindowManagerInternal; @@ -87,7 +88,8 @@ public class AccessibilityServiceConnectionTest { @Mock WindowManagerInternal mMockWindowManagerInternal; @Mock SystemActionPerformer mMockSystemActionPerformer; @Mock KeyEventDispatcher mMockKeyEventDispatcher; - @Mock MagnificationController mMockMagnificationController; + @Mock + FullScreenMagnificationController mMockFullScreenMagnificationController; @Mock IBinder mMockIBinder; @Mock IAccessibilityServiceClient mMockServiceClient; @Mock MotionEventInjector mMockMotionEventInjector; @@ -98,8 +100,8 @@ public class AccessibilityServiceConnectionTest { public void setup() { MockitoAnnotations.initMocks(this); when(mMockSystemSupport.getKeyEventDispatcher()).thenReturn(mMockKeyEventDispatcher); - when(mMockSystemSupport.getMagnificationController()) - .thenReturn(mMockMagnificationController); + when(mMockSystemSupport.getFullScreenMagnificationController()) + .thenReturn(mMockFullScreenMagnificationController); when(mMockSystemSupport.getMotionEventInjectorForDisplayLocked( Display.DEFAULT_DISPLAY)).thenReturn(mMockMotionEventInjector); diff --git a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationControllerTest.java similarity index 82% rename from services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java rename to services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationControllerTest.java index 82c6498bd9bea..a9f2e4a50dedc 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/MagnificationControllerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationControllerTest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 The Android Open Source Project + * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.accessibility; +package com.android.server.accessibility.magnification; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -47,6 +47,7 @@ import android.view.MagnificationSpec; import androidx.test.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; +import com.android.server.accessibility.AccessibilityManagerService; import com.android.server.accessibility.test.MessageCapturingHandler; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.MagnificationCallbacks; @@ -66,7 +67,7 @@ import org.mockito.stubbing.Answer; import java.util.Locale; @RunWith(AndroidJUnit4.class) -public class MagnificationControllerTest { +public class FullScreenMagnificationControllerTest { static final Rect INITIAL_MAGNIFICATION_BOUNDS = new Rect(0, 0, 100, 200); static final PointF INITIAL_MAGNIFICATION_BOUNDS_CENTER = new PointF( INITIAL_MAGNIFICATION_BOUNDS.centerX(), INITIAL_MAGNIFICATION_BOUNDS.centerY()); @@ -85,8 +86,8 @@ public class MagnificationControllerTest { static final int DISPLAY_COUNT = 2; static final int INVALID_DISPLAY = 2; - final MagnificationController.ControllerContext mMockControllerCtx = - mock(MagnificationController.ControllerContext.class); + final FullScreenMagnificationController.ControllerContext mMockControllerCtx = + mock(FullScreenMagnificationController.ControllerContext.class); final Context mMockContext = mock(Context.class); final AccessibilityManagerService mMockAms = mock(AccessibilityManagerService.class); final WindowManagerInternal mMockWindowManager = mock(WindowManagerInternal.class); @@ -95,7 +96,7 @@ public class MagnificationControllerTest { ValueAnimator mMockValueAnimator; ValueAnimator.AnimatorUpdateListener mTargetAnimationListener; - MagnificationController mMagnificationController; + FullScreenMagnificationController mFullScreenMagnificationController; @Before public void setUp() { @@ -109,7 +110,8 @@ public class MagnificationControllerTest { when(mMockControllerCtx.getAnimationDuration()).thenReturn(1000L); initMockWindowManager(); - mMagnificationController = new MagnificationController(mMockControllerCtx, new Object()); + mFullScreenMagnificationController = new FullScreenMagnificationController( + mMockControllerCtx, new Object()); } @After @@ -131,23 +133,23 @@ public class MagnificationControllerTest { eq(DISPLAY_1), (MagnificationCallbacks) anyObject()); verify(mMockWindowManager).setMagnificationCallbacks( eq(INVALID_DISPLAY), (MagnificationCallbacks) anyObject()); - assertTrue(mMagnificationController.isRegistered(DISPLAY_0)); - assertTrue(mMagnificationController.isRegistered(DISPLAY_1)); - assertFalse(mMagnificationController.isRegistered(INVALID_DISPLAY)); + assertTrue(mFullScreenMagnificationController.isRegistered(DISPLAY_0)); + assertTrue(mFullScreenMagnificationController.isRegistered(DISPLAY_1)); + assertFalse(mFullScreenMagnificationController.isRegistered(INVALID_DISPLAY)); } @Test public void testRegister_WindowManagerAndContextUnregisterListeners() { register(DISPLAY_0); register(DISPLAY_1); - mMagnificationController.unregister(DISPLAY_0); + mFullScreenMagnificationController.unregister(DISPLAY_0); verify(mMockContext, times(0)).unregisterReceiver((BroadcastReceiver) anyObject()); - mMagnificationController.unregister(DISPLAY_1); + mFullScreenMagnificationController.unregister(DISPLAY_1); verify(mMockContext).unregisterReceiver((BroadcastReceiver) anyObject()); verify(mMockWindowManager).setMagnificationCallbacks(eq(DISPLAY_0), eq(null)); verify(mMockWindowManager).setMagnificationCallbacks(eq(DISPLAY_1), eq(null)); - assertFalse(mMagnificationController.isRegistered(DISPLAY_0)); - assertFalse(mMagnificationController.isRegistered(DISPLAY_1)); + assertFalse(mFullScreenMagnificationController.isRegistered(DISPLAY_0)); + assertFalse(mFullScreenMagnificationController.isRegistered(DISPLAY_1)); } @Test @@ -166,14 +168,14 @@ public class MagnificationControllerTest { Rect initialBounds = new Rect(); assertEquals(expectedInitialSpec, getCurrentMagnificationSpec(displayId)); - mMagnificationController.getMagnificationRegion(displayId, initialMagRegion); - mMagnificationController.getMagnificationBounds(displayId, initialBounds); + mFullScreenMagnificationController.getMagnificationRegion(displayId, initialMagRegion); + mFullScreenMagnificationController.getMagnificationBounds(displayId, initialBounds); assertEquals(INITIAL_MAGNIFICATION_REGION, initialMagRegion); assertEquals(INITIAL_MAGNIFICATION_BOUNDS, initialBounds); assertEquals(INITIAL_MAGNIFICATION_BOUNDS.centerX(), - mMagnificationController.getCenterX(displayId), 0.0f); + mFullScreenMagnificationController.getCenterX(displayId), 0.0f); assertEquals(INITIAL_MAGNIFICATION_BOUNDS.centerY(), - mMagnificationController.getCenterY(displayId), 0.0f); + mFullScreenMagnificationController.getCenterY(displayId), 0.0f); } @Test @@ -185,24 +187,26 @@ public class MagnificationControllerTest { } private void notRegistered_publicMethodsShouldBeBenign(int displayId) { - assertFalse(mMagnificationController.isMagnifying(displayId)); - assertFalse(mMagnificationController.magnificationRegionContains(displayId, 100, 100)); - assertFalse(mMagnificationController.reset(displayId, true)); - assertFalse(mMagnificationController.setScale(displayId, 2, 100, 100, true, 0)); - assertFalse(mMagnificationController.setCenter(displayId, 100, 100, false, 1)); - assertFalse(mMagnificationController.setScaleAndCenter(displayId, + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); + assertFalse( + mFullScreenMagnificationController.magnificationRegionContains(displayId, 100, + 100)); + assertFalse(mFullScreenMagnificationController.reset(displayId, true)); + assertFalse(mFullScreenMagnificationController.setScale(displayId, 2, 100, 100, true, 0)); + assertFalse(mFullScreenMagnificationController.setCenter(displayId, 100, 100, false, 1)); + assertFalse(mFullScreenMagnificationController.setScaleAndCenter(displayId, 1.5f, 100, 100, false, 2)); - assertTrue(mMagnificationController.getIdOfLastServiceToMagnify(displayId) < 0); + assertTrue(mFullScreenMagnificationController.getIdOfLastServiceToMagnify(displayId) < 0); - mMagnificationController.getMagnificationRegion(displayId, new Region()); - mMagnificationController.getMagnificationBounds(displayId, new Rect()); - mMagnificationController.getScale(displayId); - mMagnificationController.getOffsetX(displayId); - mMagnificationController.getOffsetY(displayId); - mMagnificationController.getCenterX(displayId); - mMagnificationController.getCenterY(displayId); - mMagnificationController.offsetMagnifiedRegion(displayId, 50, 50, 1); - mMagnificationController.unregister(displayId); + mFullScreenMagnificationController.getMagnificationRegion(displayId, new Region()); + mFullScreenMagnificationController.getMagnificationBounds(displayId, new Rect()); + mFullScreenMagnificationController.getScale(displayId); + mFullScreenMagnificationController.getOffsetX(displayId); + mFullScreenMagnificationController.getOffsetY(displayId); + mFullScreenMagnificationController.getCenterX(displayId); + mFullScreenMagnificationController.getCenterY(displayId); + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, 50, 50, 1); + mFullScreenMagnificationController.unregister(displayId); } @Test @@ -218,7 +222,7 @@ public class MagnificationControllerTest { final float scale = 2.0f; final PointF center = INITIAL_MAGNIFICATION_BOUNDS_CENTER; final PointF offsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, center, scale); - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScale(displayId, scale, center.x, center.y, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); @@ -226,8 +230,8 @@ public class MagnificationControllerTest { verify(mMockWindowManager).setMagnificationSpec( eq(displayId), argThat(closeTo(expectedSpec))); assertThat(getCurrentMagnificationSpec(displayId), closeTo(expectedSpec)); - assertEquals(center.x, mMagnificationController.getCenterX(displayId), 0.0); - assertEquals(center.y, mMagnificationController.getCenterY(displayId), 0.0); + assertEquals(center.x, mFullScreenMagnificationController.getCenterX(displayId), 0.0); + assertEquals(center.y, mFullScreenMagnificationController.getCenterY(displayId), 0.0); verify(mMockValueAnimator, times(0)).start(); } @@ -244,7 +248,7 @@ public class MagnificationControllerTest { MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); float scale = 2.0f; PointF pivotPoint = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScale(displayId, scale, pivotPoint.x, pivotPoint.y, true, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); @@ -254,8 +258,8 @@ public class MagnificationControllerTest { PointF offsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); MagnificationSpec endSpec = getMagnificationSpec(scale, offsets); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); assertThat(getCurrentMagnificationSpec(displayId), closeTo(endSpec)); verify(mMockValueAnimator).start(); @@ -291,13 +295,13 @@ public class MagnificationControllerTest { register(displayId); // First zoom in float scale = 2.0f; - assertTrue(mMagnificationController.setScale(displayId, scale, + assertTrue(mFullScreenMagnificationController.setScale(displayId, scale, INITIAL_MAGNIFICATION_BOUNDS.centerX(), INITIAL_MAGNIFICATION_BOUNDS.centerY(), false, SERVICE_ID_1)); Mockito.reset(mMockWindowManager); PointF newCenter = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setCenter(displayId, newCenter.x, newCenter.y, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); PointF expectedOffsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); @@ -305,8 +309,8 @@ public class MagnificationControllerTest { verify(mMockWindowManager).setMagnificationSpec( eq(displayId), argThat(closeTo(expectedSpec))); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.0); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.0); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.0); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.0); verify(mMockValueAnimator, times(0)).start(); } @@ -326,12 +330,12 @@ public class MagnificationControllerTest { PointF offsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); MagnificationSpec endSpec = getMagnificationSpec(scale, offsets); - assertTrue(mMagnificationController.setScaleAndCenter(displayId, scale, newCenter.x, - newCenter.y, true, SERVICE_ID_1)); + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, scale, + newCenter.x, newCenter.y, true, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); assertThat(getCurrentMagnificationSpec(displayId), closeTo(endSpec)); verify(mMockAms).notifyMagnificationChanged(displayId, INITIAL_MAGNIFICATION_REGION, scale, newCenter.x, newCenter.y); @@ -370,30 +374,30 @@ public class MagnificationControllerTest { MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); PointF newCenter = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; PointF offsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, - MagnificationController.MAX_SCALE); + FullScreenMagnificationController.MAX_SCALE); MagnificationSpec endSpec = getMagnificationSpec( - MagnificationController.MAX_SCALE, offsets); + FullScreenMagnificationController.MAX_SCALE, offsets); - assertTrue(mMagnificationController.setScaleAndCenter(displayId, - MagnificationController.MAX_SCALE + 1.0f, + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, + FullScreenMagnificationController.MAX_SCALE + 1.0f, newCenter.x, newCenter.y, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(endSpec))); Mockito.reset(mMockWindowManager); // Verify that we can't zoom below 1x - assertTrue(mMagnificationController.setScaleAndCenter(displayId, 0.5f, + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, 0.5f, INITIAL_MAGNIFICATION_BOUNDS_CENTER.x, INITIAL_MAGNIFICATION_BOUNDS_CENTER.y, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); assertEquals(INITIAL_MAGNIFICATION_BOUNDS_CENTER.x, - mMagnificationController.getCenterX(displayId), 0.5); + mFullScreenMagnificationController.getCenterX(displayId), 0.5); assertEquals(INITIAL_MAGNIFICATION_BOUNDS_CENTER.y, - mMagnificationController.getCenterY(displayId), 0.5); + mFullScreenMagnificationController.getCenterY(displayId), 0.5); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(startSpec))); } @@ -410,27 +414,27 @@ public class MagnificationControllerTest { float scale = 2.0f; // Off the edge to the top and left - assertTrue(mMagnificationController.setScaleAndCenter(displayId, + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, scale, -100f, -200f, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); PointF newCenter = INITIAL_BOUNDS_UPPER_LEFT_2X_CENTER; PointF newOffsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(getMagnificationSpec(scale, newOffsets)))); Mockito.reset(mMockWindowManager); // Off the edge to the bottom and right - assertTrue(mMagnificationController.setScaleAndCenter(displayId, scale, + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, scale, INITIAL_MAGNIFICATION_BOUNDS.right + 1, INITIAL_MAGNIFICATION_BOUNDS.bottom + 1, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); newCenter = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; newOffsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(getMagnificationSpec(scale, newOffsets)))); } @@ -466,7 +470,7 @@ public class MagnificationControllerTest { float scale = 2.0f; PointF startOffsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, startCenter, scale); // First zoom in - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScaleAndCenter(displayId, scale, startCenter.x, startCenter.y, false, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); @@ -474,7 +478,7 @@ public class MagnificationControllerTest { PointF newCenter = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; PointF newOffsets = computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale); - mMagnificationController.offsetMagnifiedRegion(displayId, + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, startOffsets.x - newOffsets.x, startOffsets.y - newOffsets.y, SERVICE_ID_1); mMessageCapturingHandler.sendAllMessages(); @@ -482,8 +486,8 @@ public class MagnificationControllerTest { MagnificationSpec expectedSpec = getMagnificationSpec(scale, newOffsets); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(expectedSpec))); - assertEquals(newCenter.x, mMagnificationController.getCenterX(displayId), 0.0); - assertEquals(newCenter.y, mMagnificationController.getCenterY(displayId), 0.0); + assertEquals(newCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.0); + assertEquals(newCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.0); verify(mMockValueAnimator, times(0)).start(); } @@ -499,9 +503,9 @@ public class MagnificationControllerTest { register(displayId); Mockito.reset(mMockWindowManager); MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); - mMagnificationController.offsetMagnifiedRegion(displayId, 10, 10, SERVICE_ID_1); + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, 10, 10, SERVICE_ID_1); assertThat(getCurrentMagnificationSpec(displayId), closeTo(startSpec)); - mMagnificationController.offsetMagnifiedRegion(displayId, -10, -10, SERVICE_ID_1); + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, -10, -10, SERVICE_ID_1); assertThat(getCurrentMagnificationSpec(displayId), closeTo(startSpec)); verifyNoMoreInteractions(mMockWindowManager); } @@ -520,24 +524,24 @@ public class MagnificationControllerTest { // Upper left edges PointF ulCenter = INITIAL_BOUNDS_UPPER_LEFT_2X_CENTER; - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScaleAndCenter(displayId, scale, ulCenter.x, ulCenter.y, false, SERVICE_ID_1)); Mockito.reset(mMockWindowManager); MagnificationSpec ulSpec = getCurrentMagnificationSpec(displayId); - mMagnificationController.offsetMagnifiedRegion(displayId, -10, -10, + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, -10, -10, SERVICE_ID_1); assertThat(getCurrentMagnificationSpec(displayId), closeTo(ulSpec)); verifyNoMoreInteractions(mMockWindowManager); // Lower right edges PointF lrCenter = INITIAL_BOUNDS_LOWER_RIGHT_2X_CENTER; - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScaleAndCenter(displayId, scale, lrCenter.x, lrCenter.y, false, SERVICE_ID_1)); Mockito.reset(mMockWindowManager); MagnificationSpec lrSpec = getCurrentMagnificationSpec(displayId); - mMagnificationController.offsetMagnifiedRegion(displayId, 10, 10, + mFullScreenMagnificationController.offsetMagnifiedRegion(displayId, 10, 10, SERVICE_ID_1); assertThat(getCurrentMagnificationSpec(displayId), closeTo(lrSpec)); verifyNoMoreInteractions(mMockWindowManager); @@ -554,14 +558,16 @@ public class MagnificationControllerTest { private void getIdOfLastServiceToChange_returnsCorrectValue(int displayId) { register(displayId); PointF startCenter = INITIAL_MAGNIFICATION_BOUNDS_CENTER; - assertTrue(mMagnificationController + assertTrue(mFullScreenMagnificationController .setScale(displayId, 2.0f, startCenter.x, startCenter.y, false, SERVICE_ID_1)); - assertEquals(SERVICE_ID_1, mMagnificationController.getIdOfLastServiceToMagnify(displayId)); - assertTrue(mMagnificationController + assertEquals(SERVICE_ID_1, + mFullScreenMagnificationController.getIdOfLastServiceToMagnify(displayId)); + assertTrue(mFullScreenMagnificationController .setScale(displayId, 1.5f, startCenter.x, startCenter.y, false, SERVICE_ID_2)); - assertEquals(SERVICE_ID_2, mMagnificationController.getIdOfLastServiceToMagnify(displayId)); + assertEquals(SERVICE_ID_2, + mFullScreenMagnificationController.getIdOfLastServiceToMagnify(displayId)); } @Test @@ -575,16 +581,16 @@ public class MagnificationControllerTest { private void resetIfNeeded_resetsOnlyIfLastMagnifyingServiceIsDisabled(int displayId) { register(displayId); PointF startCenter = INITIAL_MAGNIFICATION_BOUNDS_CENTER; - mMagnificationController + mFullScreenMagnificationController .setScale(displayId, 2.0f, startCenter.x, startCenter.y, false, SERVICE_ID_1); - mMagnificationController + mFullScreenMagnificationController .setScale(displayId, 1.5f, startCenter.x, startCenter.y, false, SERVICE_ID_2); - assertFalse(mMagnificationController.resetIfNeeded(displayId, SERVICE_ID_1)); - assertTrue(mMagnificationController.isMagnifying(displayId)); - assertTrue(mMagnificationController.resetIfNeeded(displayId, SERVICE_ID_2)); - assertFalse(mMagnificationController.isMagnifying(displayId)); + assertFalse(mFullScreenMagnificationController.resetIfNeeded(displayId, SERVICE_ID_1)); + assertTrue(mFullScreenMagnificationController.isMagnifying(displayId)); + assertTrue(mFullScreenMagnificationController.resetIfNeeded(displayId, SERVICE_ID_2)); + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); } @Test @@ -600,16 +606,16 @@ public class MagnificationControllerTest { final int userId2 = 2; register(displayId); - mMagnificationController.setUserId(userId1); + mFullScreenMagnificationController.setUserId(userId1); PointF startCenter = INITIAL_MAGNIFICATION_BOUNDS_CENTER; float scale = 2.0f; - mMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, false, - SERVICE_ID_1); + mFullScreenMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, + false, SERVICE_ID_1); - mMagnificationController.setUserId(userId1); - assertTrue(mMagnificationController.isMagnifying(displayId)); - mMagnificationController.setUserId(userId2); - assertFalse(mMagnificationController.isMagnifying(displayId)); + mFullScreenMagnificationController.setUserId(userId1); + assertTrue(mFullScreenMagnificationController.isMagnifying(displayId)); + mFullScreenMagnificationController.setUserId(userId2); + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); } @Test @@ -625,11 +631,11 @@ public class MagnificationControllerTest { zoomIn2xToMiddle(displayId); mMessageCapturingHandler.sendAllMessages(); reset(mMockAms); - assertTrue(mMagnificationController.resetIfNeeded(displayId, false)); + assertTrue(mFullScreenMagnificationController.resetIfNeeded(displayId, false)); verify(mMockAms).notifyMagnificationChanged(eq(displayId), eq(INITIAL_MAGNIFICATION_REGION), eq(1.0f), anyFloat(), anyFloat()); - assertFalse(mMagnificationController.isMagnifying(displayId)); - assertFalse(mMagnificationController.resetIfNeeded(displayId, false)); + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); + assertFalse(mFullScreenMagnificationController.resetIfNeeded(displayId, false)); } @Test @@ -646,8 +652,8 @@ public class MagnificationControllerTest { mMessageCapturingHandler.sendAllMessages(); br.onReceive(mMockContext, null); mMessageCapturingHandler.sendAllMessages(); - assertFalse(mMagnificationController.isMagnifying(DISPLAY_0)); - assertFalse(mMagnificationController.isMagnifying(DISPLAY_1)); + assertFalse(mFullScreenMagnificationController.isMagnifying(DISPLAY_0)); + assertFalse(mFullScreenMagnificationController.isMagnifying(DISPLAY_1)); } @Test @@ -665,7 +671,7 @@ public class MagnificationControllerTest { mMessageCapturingHandler.sendAllMessages(); callbacks.onUserContextChanged(); mMessageCapturingHandler.sendAllMessages(); - assertFalse(mMagnificationController.isMagnifying(displayId)); + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); } @Test @@ -681,10 +687,10 @@ public class MagnificationControllerTest { MagnificationCallbacks callbacks = getMagnificationCallbacks(displayId); zoomIn2xToMiddle(displayId); mMessageCapturingHandler.sendAllMessages(); - assertTrue(mMagnificationController.isMagnifying(displayId)); + assertTrue(mFullScreenMagnificationController.isMagnifying(displayId)); callbacks.onRotationChanged(0); mMessageCapturingHandler.sendAllMessages(); - assertFalse(mMagnificationController.isMagnifying(displayId)); + assertFalse(mFullScreenMagnificationController.isMagnifying(displayId)); } @Test @@ -722,8 +728,8 @@ public class MagnificationControllerTest { PointF startCenter = INITIAL_MAGNIFICATION_BOUNDS_CENTER; float scale = 2.0f; // setting animate parameter to true is differ from zoomIn2xToMiddle() - mMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, true, - SERVICE_ID_1); + mFullScreenMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, + true, SERVICE_ID_1); MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); MagnificationCallbacks callbacks = getMagnificationCallbacks(displayId); Mockito.reset(mMockWindowManager); @@ -750,8 +756,8 @@ public class MagnificationControllerTest { mMessageCapturingHandler.sendAllMessages(); PointF startCenter = OTHER_BOUNDS_LOWER_RIGHT_2X_CENTER; float scale = 2.0f; - mMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, false, - SERVICE_ID_1); + mFullScreenMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, + false, SERVICE_ID_1); mMessageCapturingHandler.sendAllMessages(); MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); verify(mMockWindowManager).setMagnificationSpec(eq(displayId), argThat(closeTo(startSpec))); @@ -784,8 +790,8 @@ public class MagnificationControllerTest { mMessageCapturingHandler.sendAllMessages(); PointF startCenter = OTHER_BOUNDS_LOWER_RIGHT_2X_CENTER; float scale = 2.0f; - mMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, true, - SERVICE_ID_1); + mFullScreenMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, + true, SERVICE_ID_1); mMessageCapturingHandler.sendAllMessages(); MagnificationSpec startSpec = getCurrentMagnificationSpec(displayId); when(mMockValueAnimator.isRunning()).thenReturn(true); @@ -947,12 +953,12 @@ public class MagnificationControllerTest { MagnificationSpec firstEndSpec = getMagnificationSpec( scale, computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, firstCenter, scale)); - assertTrue(mMagnificationController.setScaleAndCenter(displayId, + assertTrue(mFullScreenMagnificationController.setScaleAndCenter(displayId, scale, firstCenter.x, firstCenter.y, true, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); - assertEquals(firstCenter.x, mMagnificationController.getCenterX(displayId), 0.5); - assertEquals(firstCenter.y, mMagnificationController.getCenterY(displayId), 0.5); + assertEquals(firstCenter.x, mFullScreenMagnificationController.getCenterX(displayId), 0.5); + assertEquals(firstCenter.y, mFullScreenMagnificationController.getCenterY(displayId), 0.5); assertThat(getCurrentMagnificationSpec(displayId), closeTo(firstEndSpec)); verify(mMockValueAnimator, times(1)).start(); @@ -977,7 +983,7 @@ public class MagnificationControllerTest { PointF newCenter = INITIAL_BOUNDS_UPPER_LEFT_2X_CENTER; MagnificationSpec newEndSpec = getMagnificationSpec( scale, computeOffsets(INITIAL_MAGNIFICATION_BOUNDS, newCenter, scale)); - assertTrue(mMagnificationController.setCenter(displayId, + assertTrue(mFullScreenMagnificationController.setCenter(displayId, newCenter.x, newCenter.y, true, SERVICE_ID_1)); mMessageCapturingHandler.sendAllMessages(); @@ -1032,7 +1038,7 @@ public class MagnificationControllerTest { private void register(int displayId) { mMockValueAnimator = mock(ValueAnimator.class); when(mMockControllerCtx.newValueAnimator()).thenReturn(mMockValueAnimator); - mMagnificationController.register(displayId); + mFullScreenMagnificationController.register(displayId); ArgumentCaptor listenerArgumentCaptor = ArgumentCaptor.forClass(ValueAnimator.AnimatorUpdateListener.class); verify(mMockValueAnimator).addUpdateListener(listenerArgumentCaptor.capture()); @@ -1043,9 +1049,9 @@ public class MagnificationControllerTest { private void zoomIn2xToMiddle(int displayId) { PointF startCenter = INITIAL_MAGNIFICATION_BOUNDS_CENTER; float scale = 2.0f; - mMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, false, - SERVICE_ID_1); - assertTrue(mMagnificationController.isMagnifying(displayId)); + mFullScreenMagnificationController.setScale(displayId, scale, startCenter.x, startCenter.y, + false, SERVICE_ID_1); + assertTrue(mFullScreenMagnificationController.isMagnifying(displayId)); } private MagnificationCallbacks getMagnificationCallbacks(int displayId) { @@ -1084,9 +1090,9 @@ public class MagnificationControllerTest { } private MagnificationSpec getCurrentMagnificationSpec(int displayId) { - return getMagnificationSpec(mMagnificationController.getScale(displayId), - mMagnificationController.getOffsetX(displayId), - mMagnificationController.getOffsetY(displayId)); + return getMagnificationSpec(mFullScreenMagnificationController.getScale(displayId), + mFullScreenMagnificationController.getOffsetX(displayId), + mFullScreenMagnificationController.getOffsetY(displayId)); } private MagSpecMatcher closeTo(MagnificationSpec spec) { diff --git a/services/tests/servicestests/src/com/android/server/accessibility/FullScreenMagnificationGestureHandlerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java similarity index 96% rename from services/tests/servicestests/src/com/android/server/accessibility/FullScreenMagnificationGestureHandlerTest.java rename to services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java index 3678d5444790b..008cbed10d18a 100644 --- a/services/tests/servicestests/src/com/android/server/accessibility/FullScreenMagnificationGestureHandlerTest.java +++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/FullScreenMagnificationGestureHandlerTest.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 The Android Open Source Project + * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ * limitations under the License. */ -package com.android.server.accessibility; +package com.android.server.accessibility.magnification; import static android.view.MotionEvent.ACTION_DOWN; import static android.view.MotionEvent.ACTION_MOVE; @@ -51,6 +51,8 @@ import android.view.ViewConfiguration; import androidx.test.InstrumentationRegistry; import androidx.test.runner.AndroidJUnit4; +import com.android.server.accessibility.AccessibilityManagerService; +import com.android.server.accessibility.EventStreamTransformation; import com.android.server.accessibility.magnification.MagnificationGestureHandler.ScaleChangedListener; import com.android.server.testutils.OffsettableClock; import com.android.server.testutils.TestHandler; @@ -121,7 +123,7 @@ public class FullScreenMagnificationGestureHandlerTest { private static final int DISPLAY_0 = 0; private Context mContext; - MagnificationController mMagnificationController; + FullScreenMagnificationController mFullScreenMagnificationController; @Mock ScaleChangedListener mMockScaleChangedListener; @@ -135,8 +137,8 @@ public class FullScreenMagnificationGestureHandlerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = InstrumentationRegistry.getContext(); - final MagnificationController.ControllerContext mockController = - mock(MagnificationController.ControllerContext.class); + final FullScreenMagnificationController.ControllerContext mockController = + mock(FullScreenMagnificationController.ControllerContext.class); final WindowManagerInternal mockWindowManager = mock(WindowManagerInternal.class); when(mockController.getContext()).thenReturn(mContext); when(mockController.getAms()).thenReturn(mock(AccessibilityManagerService.class)); @@ -145,7 +147,8 @@ public class FullScreenMagnificationGestureHandlerTest { when(mockController.newValueAnimator()).thenReturn(new ValueAnimator()); when(mockController.getAnimationDuration()).thenReturn(1000L); when(mockWindowManager.setMagnificationCallbacks(eq(DISPLAY_0), any())).thenReturn(true); - mMagnificationController = new MagnificationController(mockController, new Object()) { + mFullScreenMagnificationController = new FullScreenMagnificationController(mockController, + new Object()) { @Override public boolean magnificationRegionContains(int displayId, float x, float y) { return true; @@ -154,7 +157,7 @@ public class FullScreenMagnificationGestureHandlerTest { @Override void setForceShowMagnifiableBounds(int displayId, boolean show) {} }; - mMagnificationController.register(DISPLAY_0); + mFullScreenMagnificationController.register(DISPLAY_0); mClock = new OffsettableClock.Stopped(); boolean detectTripleTap = true; @@ -164,14 +167,14 @@ public class FullScreenMagnificationGestureHandlerTest { @After public void tearDown() { - mMagnificationController.unregister(DISPLAY_0); + mFullScreenMagnificationController.unregister(DISPLAY_0); } @NonNull private FullScreenMagnificationGestureHandler newInstance(boolean detectTripleTap, boolean detectShortcutTrigger) { FullScreenMagnificationGestureHandler h = new FullScreenMagnificationGestureHandler( - mContext, mMagnificationController, mMockScaleChangedListener, + mContext, mFullScreenMagnificationController, mMockScaleChangedListener, detectTripleTap, detectShortcutTrigger, DISPLAY_0); mHandler = new TestHandler(h.mDetectingState, mClock) { @Override @@ -653,7 +656,7 @@ public class FullScreenMagnificationGestureHandlerTest { } private boolean isZoomed() { - return mMgh.mMagnificationController.isMagnifying(DISPLAY_0); + return mMgh.mFullScreenMagnificationController.isMagnifying(DISPLAY_0); } private int tapCount() {