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

Commit 52ba2178 authored by ryanlwlin's avatar ryanlwlin
Browse files

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
parent fc5e3f62
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -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);
                }
+2 −1
Original line number Diff line number Diff line
@@ -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;
+19 −17
Original line number Diff line number Diff line
@@ -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);
        }
+2 −2
Original line number Diff line number Diff line
@@ -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);
        }
    }
+37 −32
Original line number Diff line number Diff line
@@ -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,13 +1258,13 @@ 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)
                    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)
                    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;
        }
Loading