Move magnification-relatd stuff to MagnificationController
We moved most of magnification-related stuff to MagnificationController
to centeralize the common magnification logic and the interaction
between magnification modes.
Test: atest CtsAccessibilityServiceTestCases
atest com.android.server.accessibility
atest com.android.server.accessibility.magnification
Change-Id: I30face9d94a29844dfa1d4a98139628bf1d79fec
This commit is contained in:
@@ -119,8 +119,8 @@ 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.MagnificationController;
|
||||
import com.android.server.accessibility.magnification.MagnificationGestureHandler;
|
||||
import com.android.server.accessibility.magnification.MagnificationTransitionController;
|
||||
import com.android.server.accessibility.magnification.WindowMagnificationManager;
|
||||
import com.android.server.wm.ActivityTaskManagerInternal;
|
||||
import com.android.server.wm.WindowManagerInternal;
|
||||
@@ -219,16 +219,12 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
// Lazily initialized - access through getSystemActionPerfomer()
|
||||
private SystemActionPerformer mSystemActionPerformer;
|
||||
|
||||
private FullScreenMagnificationController mFullScreenMagnificationController;
|
||||
|
||||
private InteractionBridge mInteractionBridge;
|
||||
|
||||
private AlertDialog mEnableTouchExplorationDialog;
|
||||
|
||||
private AccessibilityInputFilter mInputFilter;
|
||||
|
||||
private WindowMagnificationManager mWindowMagnificationMgr;
|
||||
|
||||
private boolean mHasInputFilter;
|
||||
|
||||
private KeyEventDispatcher mKeyEventDispatcher;
|
||||
@@ -259,7 +255,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
|
||||
private Point mTempPoint = new Point();
|
||||
private boolean mIsAccessibilityButtonShown;
|
||||
private MagnificationTransitionController mMagnificationTransitionController;
|
||||
private MagnificationController mMagnificationController;
|
||||
|
||||
private AccessibilityUserState getCurrentUserStateLocked() {
|
||||
return getUserStateLocked(mCurrentUserId);
|
||||
@@ -292,7 +288,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
SystemActionPerformer systemActionPerformer,
|
||||
AccessibilityWindowManager a11yWindowManager,
|
||||
AccessibilityDisplayListener a11yDisplayListener,
|
||||
WindowMagnificationManager windowMagnificationMgr) {
|
||||
MagnificationController magnificationController) {
|
||||
mContext = context;
|
||||
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
|
||||
mWindowManagerService = LocalServices.getService(WindowManagerInternal.class);
|
||||
@@ -303,8 +299,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
mSystemActionPerformer = systemActionPerformer;
|
||||
mA11yWindowManager = a11yWindowManager;
|
||||
mA11yDisplayListener = a11yDisplayListener;
|
||||
mWindowMagnificationMgr = windowMagnificationMgr;
|
||||
mMagnificationTransitionController = new MagnificationTransitionController(this, mLock);
|
||||
mMagnificationController = magnificationController;
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -324,7 +319,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
mA11yWindowManager = new AccessibilityWindowManager(mLock, mMainHandler,
|
||||
mWindowManagerService, this, mSecurityPolicy, this);
|
||||
mA11yDisplayListener = new AccessibilityDisplayListener(mContext, mMainHandler);
|
||||
mMagnificationTransitionController = new MagnificationTransitionController(this, mLock);
|
||||
mMagnificationController = new MagnificationController(this, mLock, mContext);
|
||||
init();
|
||||
}
|
||||
|
||||
@@ -1195,9 +1190,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
// The user changed.
|
||||
mCurrentUserId = userId;
|
||||
|
||||
if (mWindowMagnificationMgr != null) {
|
||||
mWindowMagnificationMgr.setUserId(mCurrentUserId);
|
||||
}
|
||||
mMagnificationController.updateUserIdIfNeeded(mCurrentUserId);
|
||||
AccessibilityUserState userState = getCurrentUserStateLocked();
|
||||
|
||||
readConfigurationForUserStateLocked(userState);
|
||||
@@ -1554,7 +1547,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
if (fallBackMagnificationModeSettingsLocked(userState)) {
|
||||
return;
|
||||
}
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(
|
||||
mMagnificationController.transitionMagnificationModeLocked(
|
||||
Display.DEFAULT_DISPLAY, userState.getMagnificationModeLocked(),
|
||||
this::onMagnificationTransitionEndedLocked);
|
||||
}
|
||||
@@ -2310,13 +2303,9 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
return;
|
||||
}
|
||||
|
||||
if (mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.setUserId(userState.mUserId);
|
||||
}
|
||||
|
||||
if (mUiAutomationManager.suppressingAccessibilityServicesLocked()
|
||||
&& mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.unregisterAll();
|
||||
&& mMagnificationController.isFullScreenMagnificationControllerInitialized()) {
|
||||
getFullScreenMagnificationController().unregisterAll();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -2339,8 +2328,8 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
final int displayId = display.getDisplayId();
|
||||
if (userHasListeningMagnificationServicesLocked(userState, displayId)) {
|
||||
getFullScreenMagnificationController().register(displayId);
|
||||
} else if (mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.unregister(displayId);
|
||||
} else if (mMagnificationController.isFullScreenMagnificationControllerInitialized()) {
|
||||
getFullScreenMagnificationController().unregister(displayId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2990,10 +2979,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
*/
|
||||
public WindowMagnificationManager getWindowMagnificationMgr() {
|
||||
synchronized (mLock) {
|
||||
if (mWindowMagnificationMgr == null) {
|
||||
mWindowMagnificationMgr = new WindowMagnificationManager(mContext, mCurrentUserId);
|
||||
}
|
||||
return mWindowMagnificationMgr;
|
||||
return mMagnificationController.getWindowMagnificationMgr();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3060,12 +3046,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
@Override
|
||||
public FullScreenMagnificationController getFullScreenMagnificationController() {
|
||||
synchronized (mLock) {
|
||||
if (mFullScreenMagnificationController == null) {
|
||||
mFullScreenMagnificationController = new FullScreenMagnificationController(mContext,
|
||||
this, mLock);
|
||||
mFullScreenMagnificationController.setUserId(mCurrentUserId);
|
||||
}
|
||||
return mFullScreenMagnificationController;
|
||||
return mMagnificationController.getFullScreenMagnificationController();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3307,9 +3288,7 @@ public class AccessibilityManagerService extends IAccessibilityManager.Stub
|
||||
}
|
||||
}
|
||||
}
|
||||
if (mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.onDisplayRemoved(displayId);
|
||||
}
|
||||
mMagnificationController.onDisplayRemoved(displayId);
|
||||
mA11yWindowManager.stopTrackingWindows(displayId);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@ import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.annotation.Nullable;
|
||||
import android.content.Context;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.Region;
|
||||
@@ -29,21 +30,26 @@ import android.util.Slog;
|
||||
import android.util.SparseArray;
|
||||
import android.view.accessibility.MagnificationAnimationCallback;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.server.accessibility.AccessibilityManagerService;
|
||||
|
||||
/**
|
||||
* Handles magnification mode transition.
|
||||
* Handles all magnification controllers initialization, generic interactions
|
||||
* and magnification mode transition.
|
||||
*/
|
||||
public class MagnificationTransitionController {
|
||||
public class MagnificationController {
|
||||
|
||||
private static final boolean DEBUG = false;
|
||||
private static final String TAG = "MagnificationController";
|
||||
private final AccessibilityManagerService mAms;
|
||||
private final PointF mTempPoint = new PointF();
|
||||
private final Object mLock;
|
||||
private final Context mContext;
|
||||
private final SparseArray<DisableMagnificationCallback>
|
||||
mMagnificationEndRunnableSparseArray = new SparseArray();
|
||||
|
||||
private FullScreenMagnificationController mFullScreenMagnificationController;
|
||||
private WindowMagnificationManager mWindowMagnificationMgr;
|
||||
|
||||
/**
|
||||
* A callback to inform the magnification transition result.
|
||||
@@ -56,9 +62,20 @@ public class MagnificationTransitionController {
|
||||
void onResult(boolean success);
|
||||
}
|
||||
|
||||
public MagnificationTransitionController(AccessibilityManagerService ams, Object lock) {
|
||||
public MagnificationController(AccessibilityManagerService ams, Object lock,
|
||||
Context context) {
|
||||
mAms = ams;
|
||||
mLock = lock;
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public MagnificationController(AccessibilityManagerService ams, Object lock,
|
||||
Context context, FullScreenMagnificationController fullScreenMagnificationController,
|
||||
WindowMagnificationManager windowMagnificationManager) {
|
||||
this(ams, lock, context);
|
||||
mFullScreenMagnificationController = fullScreenMagnificationController;
|
||||
mWindowMagnificationMgr = windowMagnificationManager;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -97,7 +114,7 @@ public class MagnificationTransitionController {
|
||||
}
|
||||
final FullScreenMagnificationController screenMagnificationController =
|
||||
getFullScreenMagnificationController();
|
||||
final WindowMagnificationManager windowMagnificationMgr = getWindowMagnificationManager();
|
||||
final WindowMagnificationManager windowMagnificationMgr = getWindowMagnificationMgr();
|
||||
final float scale = windowMagnificationMgr.getPersistedScale();
|
||||
final DisableMagnificationCallback animationEndCallback =
|
||||
new DisableMagnificationCallback(transitionCallBack, displayId, targetMode,
|
||||
@@ -111,6 +128,39 @@ public class MagnificationTransitionController {
|
||||
setDisableMagnificationCallbackLocked(displayId, animationEndCallback);
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the active user ID of {@link FullScreenMagnificationController} and {@link
|
||||
* WindowMagnificationManager}.
|
||||
*
|
||||
* @param userId the currently active user ID
|
||||
*/
|
||||
public void updateUserIdIfNeeded(int userId) {
|
||||
synchronized (mLock) {
|
||||
if (mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.setUserId(userId);
|
||||
}
|
||||
if (mWindowMagnificationMgr != null) {
|
||||
mWindowMagnificationMgr.setUserId(userId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the magnification instance with given id.
|
||||
*
|
||||
* @param displayId The logical display id.
|
||||
*/
|
||||
public void onDisplayRemoved(int displayId) {
|
||||
synchronized (mLock) {
|
||||
if (mFullScreenMagnificationController != null) {
|
||||
mFullScreenMagnificationController.onDisplayRemoved(displayId);
|
||||
}
|
||||
if (mWindowMagnificationMgr != null) {
|
||||
mWindowMagnificationMgr.onDisplayRemoved(displayId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private DisableMagnificationCallback getDisableMagnificationEndRunnableLocked(
|
||||
int displayId) {
|
||||
return mMagnificationEndRunnableSparseArray.get(displayId);
|
||||
@@ -125,31 +175,63 @@ public class MagnificationTransitionController {
|
||||
}
|
||||
}
|
||||
|
||||
private FullScreenMagnificationController getFullScreenMagnificationController() {
|
||||
return mAms.getFullScreenMagnificationController();
|
||||
/**
|
||||
* Getter of {@link FullScreenMagnificationController}.
|
||||
*
|
||||
* @return {@link FullScreenMagnificationController}.
|
||||
*/
|
||||
public FullScreenMagnificationController getFullScreenMagnificationController() {
|
||||
synchronized (mLock) {
|
||||
if (mFullScreenMagnificationController == null) {
|
||||
mFullScreenMagnificationController = new FullScreenMagnificationController(mContext,
|
||||
mAms, mLock);
|
||||
mFullScreenMagnificationController.setUserId(mAms.getCurrentUserIdLocked());
|
||||
}
|
||||
}
|
||||
return mFullScreenMagnificationController;
|
||||
}
|
||||
|
||||
private WindowMagnificationManager getWindowMagnificationManager() {
|
||||
return mAms.getWindowMagnificationMgr();
|
||||
/**
|
||||
* Is {@link #mFullScreenMagnificationController} is initialized.
|
||||
* @return {code true} if {@link #mFullScreenMagnificationController} is initialized.
|
||||
*/
|
||||
public boolean isFullScreenMagnificationControllerInitialized() {
|
||||
synchronized (mLock) {
|
||||
return mFullScreenMagnificationController != null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter of {@link WindowMagnificationManager}.
|
||||
*
|
||||
* @return {@link WindowMagnificationManager}.
|
||||
*/
|
||||
public WindowMagnificationManager getWindowMagnificationMgr() {
|
||||
synchronized (mLock) {
|
||||
if (mWindowMagnificationMgr == null) {
|
||||
mWindowMagnificationMgr = new WindowMagnificationManager(mContext,
|
||||
mAms.getCurrentUserIdLocked());
|
||||
}
|
||||
return mWindowMagnificationMgr;
|
||||
}
|
||||
}
|
||||
|
||||
private @Nullable
|
||||
PointF getCurrentMagnificationBoundsCenterLocked(int displayId, int targetMode) {
|
||||
if (targetMode == ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN) {
|
||||
final WindowMagnificationManager magnificationManager = getWindowMagnificationManager();
|
||||
if (!magnificationManager.isWindowMagnifierEnabled(displayId)) {
|
||||
if (mWindowMagnificationMgr == null
|
||||
|| !mWindowMagnificationMgr.isWindowMagnifierEnabled(displayId)) {
|
||||
return null;
|
||||
}
|
||||
mTempPoint.set(magnificationManager.getCenterX(displayId),
|
||||
magnificationManager.getCenterY(displayId));
|
||||
mTempPoint.set(mWindowMagnificationMgr.getCenterX(displayId),
|
||||
mWindowMagnificationMgr.getCenterY(displayId));
|
||||
} else {
|
||||
final FullScreenMagnificationController screenMagnificationController =
|
||||
getFullScreenMagnificationController();
|
||||
if (!screenMagnificationController.isMagnifying(displayId)) {
|
||||
if (mFullScreenMagnificationController == null
|
||||
|| !mFullScreenMagnificationController.isMagnifying(displayId)) {
|
||||
return null;
|
||||
}
|
||||
mTempPoint.set(screenMagnificationController.getCenterX(displayId),
|
||||
screenMagnificationController.getCenterY(displayId));
|
||||
mTempPoint.set(mFullScreenMagnificationController.getCenterX(displayId),
|
||||
mFullScreenMagnificationController.getCenterY(displayId));
|
||||
}
|
||||
return mTempPoint;
|
||||
}
|
||||
@@ -228,7 +310,7 @@ public class MagnificationTransitionController {
|
||||
mCurrentCenter.y, true,
|
||||
AccessibilityManagerService.MAGNIFICATION_GESTURE_HANDLER_ID);
|
||||
} else {
|
||||
getWindowMagnificationManager().enableWindowMagnification(mDisplayId,
|
||||
getWindowMagnificationMgr().enableWindowMagnification(mDisplayId,
|
||||
mCurrentScale, mCurrentCenter.x,
|
||||
mCurrentCenter.y);
|
||||
}
|
||||
@@ -452,6 +452,15 @@ public class WindowMagnificationManager implements
|
||||
return magnifier;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the window magnifier with given id.
|
||||
*
|
||||
* @param displayId The logical display id.
|
||||
*/
|
||||
void onDisplayRemoved(int displayId) {
|
||||
disableWindowMagnification(displayId, true);
|
||||
}
|
||||
|
||||
private class ConnectionCallback extends IWindowMagnificationConnectionCallback.Stub implements
|
||||
IBinder.DeathRecipient {
|
||||
private boolean mExpiredDeathRecipient = false;
|
||||
|
||||
@@ -49,6 +49,7 @@ import androidx.test.InstrumentationRegistry;
|
||||
|
||||
import com.android.server.LocalServices;
|
||||
import com.android.server.accessibility.AccessibilityManagerService.AccessibilityDisplayListener;
|
||||
import com.android.server.accessibility.magnification.MagnificationController;
|
||||
import com.android.server.accessibility.magnification.WindowMagnificationManager;
|
||||
import com.android.server.accessibility.test.MessageCapturingHandler;
|
||||
import com.android.server.wm.ActivityTaskManagerInternal;
|
||||
@@ -94,6 +95,7 @@ public class AccessibilityManagerServiceTest extends AndroidTestCase {
|
||||
@Mock private IBinder mMockBinder;
|
||||
@Mock private IAccessibilityServiceClient mMockServiceClient;
|
||||
@Mock private WindowMagnificationManager mMockWindowMagnificationMgr;
|
||||
@Mock private MagnificationController mMockMagnificationController;
|
||||
private AccessibilityUserState mUserState;
|
||||
|
||||
private MessageCapturingHandler mHandler = new MessageCapturingHandler(null);
|
||||
@@ -110,6 +112,8 @@ public class AccessibilityManagerServiceTest extends AndroidTestCase {
|
||||
LocalServices.addService(
|
||||
ActivityTaskManagerInternal.class, mMockActivityTaskManagerInternal);
|
||||
|
||||
when(mMockMagnificationController.getWindowMagnificationMgr()).thenReturn(
|
||||
mMockWindowMagnificationMgr);
|
||||
mA11yms = new AccessibilityManagerService(
|
||||
InstrumentationRegistry.getContext(),
|
||||
mMockPackageManager,
|
||||
@@ -117,7 +121,7 @@ public class AccessibilityManagerServiceTest extends AndroidTestCase {
|
||||
mMockSystemActionPerformer,
|
||||
mMockA11yWindowManager,
|
||||
mMockA11yDisplayListener,
|
||||
mMockWindowMagnificationMgr);
|
||||
mMockMagnificationController);
|
||||
|
||||
final AccessibilityUserState userState = new AccessibilityUserState(
|
||||
mA11yms.getCurrentUserIdLocked(), mMockContext, mA11yms);
|
||||
|
||||
@@ -62,7 +62,7 @@ import org.mockito.MockitoAnnotations;
|
||||
* Tests for MagnificationController.
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class MagnificationTransitionControllerTest {
|
||||
public class MagnificationControllerTest {
|
||||
|
||||
private static final int TEST_DISPLAY = Display.DEFAULT_DISPLAY;
|
||||
private static final Region MAGNIFICATION_REGION = new Region(0, 0, 500, 600);
|
||||
@@ -75,7 +75,7 @@ public class MagnificationTransitionControllerTest {
|
||||
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
|
||||
|
||||
@Mock private AccessibilityManagerService mService;
|
||||
@Mock private MagnificationTransitionController.TransitionCallBack mTransitionCallBack;
|
||||
@Mock private MagnificationController.TransitionCallBack mTransitionCallBack;
|
||||
@Mock private Context mContext;
|
||||
@Mock private FullScreenMagnificationController mScreenMagnificationController;
|
||||
@Captor private ArgumentCaptor<MagnificationAnimationCallback> mCallbackArgumentCaptor;
|
||||
@@ -83,7 +83,7 @@ public class MagnificationTransitionControllerTest {
|
||||
private MockWindowMagnificationConnection mMockConnection;
|
||||
private WindowMagnificationManager mWindowMagnificationManager;
|
||||
private MockContentResolver mMockResolver;
|
||||
private MagnificationTransitionController mMagnificationTransitionController;
|
||||
private MagnificationController mMagnificationController;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
@@ -95,14 +95,12 @@ public class MagnificationTransitionControllerTest {
|
||||
Settings.Secure.putFloatForUser(mMockResolver,
|
||||
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, DEFAULT_SCALE,
|
||||
CURRENT_USER_ID);
|
||||
mWindowMagnificationManager = new WindowMagnificationManager(mContext, CURRENT_USER_ID);
|
||||
when(mService.getFullScreenMagnificationController()).thenReturn(
|
||||
mScreenMagnificationController);
|
||||
when(mService.getWindowMagnificationMgr()).thenReturn(mWindowMagnificationManager);
|
||||
mWindowMagnificationManager = Mockito.spy(
|
||||
new WindowMagnificationManager(mContext, CURRENT_USER_ID));
|
||||
mMockConnection = new MockWindowMagnificationConnection(true);
|
||||
mWindowMagnificationManager.setConnection(mMockConnection.getConnection());
|
||||
mMagnificationTransitionController = new MagnificationTransitionController(mService,
|
||||
new Object());
|
||||
mMagnificationController = new MagnificationController(mService, new Object(), mContext,
|
||||
mScreenMagnificationController, mWindowMagnificationManager);
|
||||
}
|
||||
|
||||
@After
|
||||
@@ -113,7 +111,7 @@ public class MagnificationTransitionControllerTest {
|
||||
@Test
|
||||
public void transitionToWindowMode_notMagnifying_doNothing() throws RemoteException {
|
||||
setMagnificationModeSettings(MODE_FULLSCREEN);
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_WINDOW,
|
||||
mTransitionCallBack);
|
||||
|
||||
@@ -130,7 +128,7 @@ public class MagnificationTransitionControllerTest {
|
||||
throws RemoteException {
|
||||
setMagnificationEnabled(MODE_FULLSCREEN);
|
||||
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_WINDOW,
|
||||
mTransitionCallBack);
|
||||
|
||||
@@ -147,11 +145,11 @@ public class MagnificationTransitionControllerTest {
|
||||
public void transitionToWindowMode_disablingWindowMode_enablingWindowWithFormerCenter()
|
||||
throws RemoteException {
|
||||
setMagnificationEnabled(MODE_WINDOW);
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_FULLSCREEN,
|
||||
mTransitionCallBack);
|
||||
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_WINDOW,
|
||||
mTransitionCallBack);
|
||||
|
||||
@@ -166,7 +164,7 @@ public class MagnificationTransitionControllerTest {
|
||||
throws RemoteException {
|
||||
setMagnificationEnabled(MODE_WINDOW);
|
||||
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_FULLSCREEN,
|
||||
mTransitionCallBack);
|
||||
mMockConnection.invokeCallbacks();
|
||||
@@ -186,7 +184,7 @@ public class MagnificationTransitionControllerTest {
|
||||
magnificationBounds.bottom + 100);
|
||||
setMagnificationEnabled(MODE_WINDOW, magnifiedCenter.x, magnifiedCenter.y);
|
||||
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_FULLSCREEN,
|
||||
mTransitionCallBack);
|
||||
mMockConnection.invokeCallbacks();
|
||||
@@ -202,11 +200,11 @@ public class MagnificationTransitionControllerTest {
|
||||
public void transitionToFullScreenMode_disablingFullScreen_enableFullScreenWithFormerCenter()
|
||||
throws RemoteException {
|
||||
setMagnificationEnabled(MODE_FULLSCREEN);
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_WINDOW,
|
||||
mTransitionCallBack);
|
||||
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_FULLSCREEN,
|
||||
mTransitionCallBack);
|
||||
|
||||
@@ -221,7 +219,7 @@ public class MagnificationTransitionControllerTest {
|
||||
public void interruptDuringTransitionToFullScreenMode_windowMagnifying_notifyTransitionFailed()
|
||||
throws RemoteException {
|
||||
setMagnificationEnabled(MODE_WINDOW);
|
||||
mMagnificationTransitionController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
mMagnificationController.transitionMagnificationModeLocked(TEST_DISPLAY,
|
||||
MODE_FULLSCREEN,
|
||||
mTransitionCallBack);
|
||||
|
||||
@@ -237,7 +235,23 @@ public class MagnificationTransitionControllerTest {
|
||||
verify(mTransitionCallBack).onResult(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDisplayRemoved_notifyAllModules() {
|
||||
mMagnificationController.onDisplayRemoved(TEST_DISPLAY);
|
||||
|
||||
verify(mScreenMagnificationController).onDisplayRemoved(TEST_DISPLAY);
|
||||
verify(mWindowMagnificationManager).onDisplayRemoved(TEST_DISPLAY);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateUserIdIfNeeded_AllModulesAvailable_setUserId() {
|
||||
mMagnificationController.updateUserIdIfNeeded(CURRENT_USER_ID);
|
||||
|
||||
verify(mScreenMagnificationController).setUserId(CURRENT_USER_ID);
|
||||
verify(mWindowMagnificationManager).setUserId(CURRENT_USER_ID);
|
||||
}
|
||||
private void setMagnificationEnabled(int mode) throws RemoteException {
|
||||
|
||||
setMagnificationEnabled(mode, MAGNIFIED_CENTER_X, MAGNIFIED_CENTER_Y);
|
||||
}
|
||||
|
||||
@@ -369,6 +369,16 @@ public class WindowMagnificationManagerTest {
|
||||
assertEquals(mWindowMagnificationManager.getCenterY(TEST_DISPLAY), 200f);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDisplayRemoved_enabledOnTestDisplay_disabled() {
|
||||
mWindowMagnificationManager.requestConnection(true);
|
||||
mWindowMagnificationManager.enableWindowMagnification(TEST_DISPLAY, 3f, 100f, 200f);
|
||||
|
||||
mWindowMagnificationManager.onDisplayRemoved(TEST_DISPLAY);
|
||||
|
||||
assertFalse(mWindowMagnificationManager.isWindowMagnifierEnabled(TEST_DISPLAY));
|
||||
}
|
||||
|
||||
private MotionEvent generatePointersDownEvent(PointF[] pointersLocation) {
|
||||
final int len = pointersLocation.length;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user