summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author mincheli <mincheli@google.com> 2021-11-16 09:30:14 +0800
committer mincheli <mincheli@google.com> 2021-11-17 20:02:51 +0800
commit1c4bb8dc27efa97d6f69b8d2dba90429f04f882f (patch)
tree88c00e9d1ff67d9a4b6e4336d5da46f433e5a016
parent39c38f9b22820059a768937b454b48389a1b1dcc (diff)
Refactoring that make WindowMagnificationController has WindowMagnificationAnimationController
It reverses the relationship between WindowMagnificationAnimationController and WindowMagnificationController to simplify the further changes. 1. WindowMagnificationController has WindowMagnificationAnimationController instance. WindowMagnificationController is able to know if window magnifier is animating or not. If it is animating, the setScale() action or moveMagnifier() will be interrupted. 2. ControllerSupplier supplies WindowMagnificationController in WindowMagnification.class. Bug: 206734640 Test: atest IWindowMagnificationConnectionTest, atest WindowMagnificationAnimationControllerTest, atest WindowMagnificationControllerTest, atest WindowMagnificationTest, Change-Id: Ibe3471dc99d1aed506b3fd04d12131321d82a07a
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java65
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java72
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java43
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java22
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationAnimationControllerTest.java43
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java21
7 files changed, 132 insertions, 140 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
index 33ce20686e66..794b9dd5b68b 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
@@ -68,15 +68,15 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
private Configuration mLastConfiguration;
private SysUiState mSysUiState;
- private static class AnimationControllerSupplier extends
- DisplayIdIndexSupplier<WindowMagnificationAnimationController> {
+ private static class ControllerSupplier extends
+ DisplayIdIndexSupplier<WindowMagnificationController> {
private final Context mContext;
private final Handler mHandler;
private final WindowMagnifierCallback mWindowMagnifierCallback;
private final SysUiState mSysUiState;
- AnimationControllerSupplier(Context context, Handler handler,
+ ControllerSupplier(Context context, Handler handler,
WindowMagnifierCallback windowMagnifierCallback,
DisplayManager displayManager, SysUiState sysUiState) {
super(displayManager);
@@ -87,19 +87,19 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
}
@Override
- protected WindowMagnificationAnimationController createInstance(Display display) {
+ protected WindowMagnificationController createInstance(Display display) {
final Context windowContext = mContext.createWindowContext(display,
TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, /* options */ null);
- final WindowMagnificationController controller = new WindowMagnificationController(
+ return new WindowMagnificationController(
windowContext,
- mHandler, new SfVsyncFrameCallbackProvider(), null,
+ mHandler, new WindowMagnificationAnimationController(windowContext),
+ new SfVsyncFrameCallbackProvider(), null,
new SurfaceControl.Transaction(), mWindowMagnifierCallback, mSysUiState);
- return new WindowMagnificationAnimationController(windowContext, controller);
}
}
@VisibleForTesting
- DisplayIdIndexSupplier<WindowMagnificationAnimationController> mAnimationControllerSupplier;
+ DisplayIdIndexSupplier<WindowMagnificationController> mMagnificationControllerSupplier;
@Inject
public WindowMagnification(Context context, @Main Handler mainHandler,
@@ -113,7 +113,7 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
mModeSwitchesController = modeSwitchesController;
mSysUiState = sysUiState;
mOverviewProxyService = overviewProxyService;
- mAnimationControllerSupplier = new AnimationControllerSupplier(context,
+ mMagnificationControllerSupplier = new ControllerSupplier(context,
mHandler, this, context.getSystemService(DisplayManager.class), sysUiState);
}
@@ -121,8 +121,9 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
public void onConfigurationChanged(Configuration newConfig) {
final int configDiff = newConfig.diff(mLastConfiguration);
mLastConfiguration.setTo(newConfig);
- mAnimationControllerSupplier.forEach(
- animationController -> animationController.onConfigurationChanged(configDiff));
+ mMagnificationControllerSupplier.forEach(
+ magnificationController -> magnificationController.onConfigurationChanged(
+ configDiff));
if (mModeSwitchesController != null) {
mModeSwitchesController.onConfigurationChanged(configDiff);
}
@@ -143,10 +144,10 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
private void updateSysUiStateFlag() {
//TODO(b/187510533): support multi-display once SysuiState supports it.
- final WindowMagnificationAnimationController controller =
- mAnimationControllerSupplier.valueAt(Display.DEFAULT_DISPLAY);
+ final WindowMagnificationController controller =
+ mMagnificationControllerSupplier.valueAt(Display.DEFAULT_DISPLAY);
if (controller != null) {
- controller.updateSysUiStateFlag();
+ controller.updateSysUIStateFlag();
} else {
// The instance is initialized when there is an IPC request. Considering
// self-crash cases, we need to reset the flag in such situation.
@@ -158,39 +159,39 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
@MainThread
void enableWindowMagnification(int displayId, float scale, float centerX, float centerY,
@Nullable IRemoteMagnificationAnimationCallback callback) {
- final WindowMagnificationAnimationController windowMagnificationAnimationController =
- mAnimationControllerSupplier.get(displayId);
- if (windowMagnificationAnimationController != null) {
- windowMagnificationAnimationController.enableWindowMagnification(scale, centerX,
+ final WindowMagnificationController windowMagnificationController =
+ mMagnificationControllerSupplier.get(displayId);
+ if (windowMagnificationController != null) {
+ windowMagnificationController.enableWindowMagnification(scale, centerX,
centerY, callback);
}
}
@MainThread
void setScale(int displayId, float scale) {
- final WindowMagnificationAnimationController windowMagnificationAnimationController =
- mAnimationControllerSupplier.get(displayId);
- if (windowMagnificationAnimationController != null) {
- windowMagnificationAnimationController.setScale(scale);
+ final WindowMagnificationController windowMagnificationController =
+ mMagnificationControllerSupplier.get(displayId);
+ if (windowMagnificationController != null) {
+ windowMagnificationController.setScale(scale);
}
}
@MainThread
void moveWindowMagnifier(int displayId, float offsetX, float offsetY) {
- final WindowMagnificationAnimationController windowMagnificationAnimationController =
- mAnimationControllerSupplier.get(displayId);
- if (windowMagnificationAnimationController != null) {
- windowMagnificationAnimationController.moveWindowMagnifier(offsetX, offsetY);
+ final WindowMagnificationController windowMagnificationcontroller =
+ mMagnificationControllerSupplier.get(displayId);
+ if (windowMagnificationcontroller != null) {
+ windowMagnificationcontroller.moveWindowMagnifier(offsetX, offsetY);
}
}
@MainThread
void disableWindowMagnification(int displayId,
@Nullable IRemoteMagnificationAnimationCallback callback) {
- final WindowMagnificationAnimationController windowMagnificationAnimationController =
- mAnimationControllerSupplier.get(displayId);
- if (windowMagnificationAnimationController != null) {
- windowMagnificationAnimationController.deleteWindowMagnification(callback);
+ final WindowMagnificationController windowMagnificationController =
+ mMagnificationControllerSupplier.get(displayId);
+ if (windowMagnificationController != null) {
+ windowMagnificationController.deleteWindowMagnification(callback);
}
}
@@ -234,8 +235,8 @@ public class WindowMagnification extends CoreStartable implements WindowMagnifie
@Override
public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
pw.println(TAG);
- mAnimationControllerSupplier.forEach(
- animationController -> animationController.dump(pw));
+ mMagnificationControllerSupplier.forEach(
+ magnificationController -> magnificationController.dump(pw));
}
private void setWindowMagnificationConnection() {
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java
index 8cb608f768eb..1bfa9c1a2a51 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java
@@ -19,6 +19,7 @@ package com.android.systemui.accessibility;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.annotation.IntDef;
+import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.UiContext;
import android.content.Context;
@@ -31,7 +32,6 @@ import android.view.animation.AccelerateInterpolator;
import com.android.internal.annotations.VisibleForTesting;
import com.android.systemui.R;
-import java.io.PrintWriter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -54,11 +54,11 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
// The window magnification is enabled.
private static final int STATE_ENABLED = 1;
// The window magnification is going to be disabled when the animation is end.
- private static final int STATE_DISABLING = 2;
+ private static final int STATE_DISABLING = 2;
// The animation is running for enabling the window magnification.
private static final int STATE_ENABLING = 3;
- private final WindowMagnificationController mController;
+ private WindowMagnificationController mController;
private final ValueAnimator mValueAnimator;
private final AnimationSpec mStartSpec = new AnimationSpec();
private final AnimationSpec mEndSpec = new AnimationSpec();
@@ -71,21 +71,22 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
@MagnificationState
private int mState = STATE_DISABLED;
- WindowMagnificationAnimationController(@UiContext Context context,
- WindowMagnificationController controller) {
- this(context, controller, newValueAnimator(context.getResources()));
+ WindowMagnificationAnimationController(@UiContext Context context) {
+ this(context, newValueAnimator(context.getResources()));
}
@VisibleForTesting
- WindowMagnificationAnimationController(Context context,
- WindowMagnificationController controller, ValueAnimator valueAnimator) {
+ WindowMagnificationAnimationController(Context context, ValueAnimator valueAnimator) {
mContext = context;
- mController = controller;
mValueAnimator = valueAnimator;
mValueAnimator.addUpdateListener(this);
mValueAnimator.addListener(this);
}
+ void setWindowMagnificationController(@NonNull WindowMagnificationController controller) {
+ mController = controller;
+ }
+
/**
* Wraps {@link WindowMagnificationController#enableWindowMagnification(float, float, float)}
* with transition animation. If the window magnification is not enabled, the scale will start
@@ -105,6 +106,9 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
*/
void enableWindowMagnification(float scale, float centerX, float centerY,
@Nullable IRemoteMagnificationAnimationCallback animationCallback) {
+ if (mController == null) {
+ return;
+ }
sendAnimationCallback(false);
// Enable window magnification without animation immediately.
if (animationCallback == null) {
@@ -139,6 +143,9 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
}
private void setupEnableAnimationSpecs(float scale, float centerX, float centerY) {
+ if (mController == null) {
+ return;
+ }
final float currentScale = mController.getScale();
final float currentCenterX = mController.getCenterX();
final float currentCenterY = mController.getCenterY();
@@ -160,15 +167,9 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
}
}
- /**
- * Wraps {@link WindowMagnificationController#setScale(float)}. If the animation is
- * running, it has no effect.
- */
- void setScale(float scale) {
- if (mValueAnimator.isRunning()) {
- return;
- }
- mController.setScale(scale);
+ /** Returns {@code true} if the animator is running. */
+ boolean isAnimating() {
+ return mValueAnimator.isRunning();
}
/**
@@ -181,6 +182,9 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
*/
void deleteWindowMagnification(
@Nullable IRemoteMagnificationAnimationCallback animationCallback) {
+ if (mController == null) {
+ return;
+ }
sendAnimationCallback(false);
// Delete window magnification without animation.
if (animationCallback == null) {
@@ -206,25 +210,6 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
setState(STATE_DISABLING);
}
- /**
- * Wraps {@link WindowMagnificationController#moveWindowMagnifier(float, float)}. If the
- * animation is running, it has no effect.
- * @param offsetX The amount in pixels to offset the window magnifier in the X direction, in
- * current screen pixels.
- * @param offsetY The amount in pixels to offset the window magnifier in the Y direction, in
- * current screen pixels.
- */
- void moveWindowMagnifier(float offsetX, float offsetY) {
- if (mValueAnimator.isRunning()) {
- return;
- }
- mController.moveWindowMagnifier(offsetX, offsetY);
- }
-
- void onConfigurationChanged(int configDiff) {
- mController.onConfigurationChanged(configDiff);
- }
-
private void setState(@MagnificationState int state) {
if (DEBUG) {
Log.d(TAG, "setState from " + mState + " to " + state);
@@ -239,7 +224,7 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
@Override
public void onAnimationEnd(Animator animation, boolean isReverse) {
- if (mEndAnimationCanceled) {
+ if (mEndAnimationCanceled || mController == null) {
return;
}
if (Float.isNaN(mController.getScale())) {
@@ -279,6 +264,9 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
@Override
public void onAnimationUpdate(ValueAnimator animation) {
+ if (mController == null) {
+ return;
+ }
final float fract = animation.getAnimatedFraction();
final float sentScale = mStartSpec.mScale + (mEndSpec.mScale - mStartSpec.mScale) * fract;
final float centerX =
@@ -288,14 +276,6 @@ class WindowMagnificationAnimationController implements ValueAnimator.AnimatorUp
mController.enableWindowMagnification(sentScale, centerX, centerY);
}
- public void updateSysUiStateFlag() {
- mController.updateSysUIStateFlag();
- }
-
- void dump(PrintWriter pw) {
- mController.dump(pw);
- }
-
private static ValueAnimator newValueAnimator(Resources resources) {
final ValueAnimator valueAnimator = new ValueAnimator();
valueAnimator.setDuration(
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index b48def2b948c..250700487b7f 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -59,6 +59,7 @@ import android.view.WindowManagerGlobal;
import android.view.WindowMetrics;
import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
+import android.view.accessibility.IRemoteMagnificationAnimationCallback;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
@@ -133,6 +134,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
// The top Y of the system gesture rect at the bottom. Set to -1 if it is invalid.
private int mSystemGestureTop = -1;
+ private final WindowMagnificationAnimationController mAnimationController;
private final SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
private final MagnificationGestureDetector mGestureDetector;
private final int mBounceEffectDuration;
@@ -148,11 +150,14 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
private MirrorWindowControl mMirrorWindowControl;
WindowMagnificationController(@UiContext Context context, @NonNull Handler handler,
+ @NonNull WindowMagnificationAnimationController animationController,
SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
MirrorWindowControl mirrorWindowControl, SurfaceControl.Transaction transaction,
@NonNull WindowMagnifierCallback callback, SysUiState sysUiState) {
mContext = context;
mHandler = handler;
+ mAnimationController = animationController;
+ mAnimationController.setWindowMagnificationController(this);
mSfVsyncFrameProvider = sfVsyncFrameProvider;
mWindowMagnifierCallback = callback;
mSysUiState = sysUiState;
@@ -259,6 +264,19 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
}
/**
+ * Wraps {@link WindowMagnificationController#deleteWindowMagnification()}} with transition
+ * animation. If the window magnification is enabling, it runs the animation in reverse.
+ *
+ * @param animationCallback Called when the transition is complete, the given arguments
+ * are as same as current values, or the transition is interrupted
+ * due to the new transition request.
+ */
+ void deleteWindowMagnification(
+ @Nullable IRemoteMagnificationAnimationCallback animationCallback) {
+ mAnimationController.deleteWindowMagnification(animationCallback);
+ }
+
+ /**
* Deletes the magnification window.
*/
void deleteWindowMagnification() {
@@ -693,6 +711,27 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
}
/**
+ * Wraps {@link WindowMagnificationController#enableWindowMagnification(float, float, float)}
+ * with transition animation. If the window magnification is not enabled, the scale will start
+ * from 1.0 and the center won't be changed during the animation. If animator is
+ * {@code STATE_DISABLING}, the animation runs in reverse.
+ *
+ * @param scale The target scale, or {@link Float#NaN} to leave unchanged.
+ * @param centerX The screen-relative X coordinate around which to center,
+ * or {@link Float#NaN} to leave unchanged.
+ * @param centerY The screen-relative Y coordinate around which to center,
+ * or {@link Float#NaN} to leave unchanged.
+ * @param animationCallback Called when the transition is complete, the given arguments
+ * are as same as current values, or the transition is interrupted
+ * due to the new transition request.
+ */
+ void enableWindowMagnification(float scale, float centerX, float centerY,
+ @Nullable IRemoteMagnificationAnimationCallback animationCallback) {
+ mAnimationController.enableWindowMagnification(scale, centerX,
+ centerY, animationCallback);
+ }
+
+ /**
* Enables window magnification with specified parameters. If the given scale is <strong>less
* than or equal to 1.0f<strong>, then
* {@link WindowMagnificationController#deleteWindowMagnification()} will be called instead to
@@ -732,7 +771,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
* @param scale the target scale, or {@link Float#NaN} to leave unchanged
*/
void setScale(float scale) {
- if (!isWindowVisible() || mScale == scale) {
+ if (mAnimationController.isAnimating() || !isWindowVisible() || mScale == scale) {
return;
}
enableWindowMagnification(scale, Float.NaN, Float.NaN);
@@ -749,7 +788,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
* current screen pixels.
*/
void moveWindowMagnifier(float offsetX, float offsetY) {
- if (mMirrorSurfaceView == null) {
+ if (mAnimationController.isAnimating() || mMirrorSurfaceView == null) {
return;
}
if (updateMagnificationFramePosition((int) offsetX, (int) offsetY)) {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java
index 77286b11f652..326d90260137 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java
@@ -64,7 +64,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
@Mock
private IWindowMagnificationConnectionCallback mConnectionCallback;
@Mock
- private WindowMagnificationAnimationController mWindowMagnificationAnimationController;
+ private WindowMagnificationController mWindowMagnificationController;
@Mock
private ModeSwitchesController mModeSwitchesController;
@Mock
@@ -89,7 +89,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
mWindowMagnification = new WindowMagnification(getContext(),
getContext().getMainThreadHandler(), mCommandQueue,
mModeSwitchesController, mSysUiState, mOverviewProxyService);
- mWindowMagnification.mAnimationControllerSupplier = new FakeAnimationControllerSupplier(
+ mWindowMagnification.mMagnificationControllerSupplier = new FakeControllerSupplier(
mContext.getSystemService(DisplayManager.class));
mWindowMagnification.requestWindowMagnificationConnection(true);
@@ -103,7 +103,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
Float.NaN, mAnimationCallback);
waitForIdleSync();
- verify(mWindowMagnificationAnimationController).enableWindowMagnification(eq(3.0f),
+ verify(mWindowMagnificationController).enableWindowMagnification(eq(3.0f),
eq(Float.NaN), eq(Float.NaN), eq(mAnimationCallback));
}
@@ -113,7 +113,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
mAnimationCallback);
waitForIdleSync();
- verify(mWindowMagnificationAnimationController).deleteWindowMagnification(
+ verify(mWindowMagnificationController).deleteWindowMagnification(
mAnimationCallback);
}
@@ -122,7 +122,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
mIWindowMagnificationConnection.setScale(TEST_DISPLAY, 3.0f);
waitForIdleSync();
- verify(mWindowMagnificationAnimationController).setScale(3.0f);
+ verify(mWindowMagnificationController).setScale(3.0f);
}
@Test
@@ -130,7 +130,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
mIWindowMagnificationConnection.moveWindowMagnifier(TEST_DISPLAY, 100f, 200f);
waitForIdleSync();
- verify(mWindowMagnificationAnimationController).moveWindowMagnifier(100f, 200f);
+ verify(mWindowMagnificationController).moveWindowMagnifier(100f, 200f);
}
@Test
@@ -151,16 +151,16 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
verify(mModeSwitchesController).removeButton(TEST_DISPLAY);
}
- private class FakeAnimationControllerSupplier extends
- DisplayIdIndexSupplier<WindowMagnificationAnimationController> {
+ private class FakeControllerSupplier extends
+ DisplayIdIndexSupplier<WindowMagnificationController> {
- FakeAnimationControllerSupplier(DisplayManager displayManager) {
+ FakeControllerSupplier(DisplayManager displayManager) {
super(displayManager);
}
@Override
- protected WindowMagnificationAnimationController createInstance(Display display) {
- return mWindowMagnificationAnimationController;
+ protected WindowMagnificationController createInstance(Display display) {
+ return mWindowMagnificationController;
}
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationAnimationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationAnimationControllerTest.java
index 148c6ef0be53..854fc33d768d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationAnimationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationAnimationControllerTest.java
@@ -100,12 +100,13 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
mInstrumentation = InstrumentationRegistry.getInstrumentation();
mWaitingAnimationPeriod = 2 * ANIMATION_DURATION_MS;
mWaitIntermediateAnimationPeriod = ANIMATION_DURATION_MS / 2;
+ mWindowMagnificationAnimationController = new WindowMagnificationAnimationController(
+ mContext, newValueAnimator());
mController = new SpyWindowMagnificationController(mContext, mHandler,
+ mWindowMagnificationAnimationController,
mSfVsyncFrameProvider, null, new SurfaceControl.Transaction(),
mWindowMagnifierCallback, mSysUiState);
mSpyController = mController.getSpyController();
- mWindowMagnificationAnimationController = new WindowMagnificationAnimationController(
- mContext, mController, newValueAnimator());
}
@After
@@ -383,17 +384,6 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
}
@Test
- public void setScale_enabled_expectedScale() {
- enableWindowMagnificationWithoutAnimation();
-
- mInstrumentation.runOnMainSync(
- () -> mWindowMagnificationAnimationController.setScale(DEFAULT_SCALE + 1));
-
- verify(mSpyController).setScale(DEFAULT_SCALE + 1);
- verifyFinalSpec(DEFAULT_SCALE + 1, DEFAULT_CENTER_X, DEFAULT_CENTER_Y);
- }
-
- @Test
public void deleteWindowMagnification_enabled_expectedValuesAndInvokeCallback()
throws RemoteException {
enableWindowMagnificationWithoutAnimation();
@@ -508,26 +498,12 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
enableWindowMagnificationWithoutAnimation();
mInstrumentation.runOnMainSync(
- () -> mWindowMagnificationAnimationController.moveWindowMagnifier(100f, 200f));
+ () -> mController.moveWindowMagnifier(100f, 200f));
verify(mSpyController).moveWindowMagnifier(100f, 200f);
verifyFinalSpec(DEFAULT_SCALE, DEFAULT_CENTER_X + 100f, DEFAULT_CENTER_Y + 100f);
}
- @Test
- public void onConfigurationChanged_passThrough() {
- mWindowMagnificationAnimationController.onConfigurationChanged(100);
-
- verify(mSpyController).onConfigurationChanged(100);
- }
-
- @Test
- public void updateSysUiStateFlag_passThrough() {
- mWindowMagnificationAnimationController.updateSysUiStateFlag();
-
- verify(mSpyController).updateSysUIStateFlag();
- }
-
private void verifyFinalSpec(float expectedScale, float expectedCenterX,
float expectedCenterY) {
assertEquals(expectedScale, mController.getScale(), 0f);
@@ -581,11 +557,12 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
private WindowMagnificationController mSpyController;
SpyWindowMagnificationController(Context context, Handler handler,
+ WindowMagnificationAnimationController animationController,
SfVsyncFrameCallbackProvider sfVsyncFrameProvider,
MirrorWindowControl mirrorWindowControl, SurfaceControl.Transaction transaction,
WindowMagnifierCallback callback, SysUiState sysUiState) {
- super(context, handler, sfVsyncFrameProvider, mirrorWindowControl, transaction,
- callback, sysUiState);
+ super(context, handler, animationController, sfVsyncFrameProvider, mirrorWindowControl,
+ transaction, callback, sysUiState);
mSpyController = Mockito.mock(WindowMagnificationController.class);
}
@@ -622,12 +599,6 @@ public class WindowMagnificationAnimationControllerTest extends SysuiTestCase {
super.updateSysUIStateFlag();
mSpyController.updateSysUIStateFlag();
}
-
- @Override
- void onConfigurationChanged(int configDiff) {
- super.onConfigurationChanged(configDiff);
- mSpyController.onConfigurationChanged(configDiff);
- }
}
private static ValueAnimator newValueAnimator() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
index 70457cf46e0d..9a3046554e0c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
@@ -89,6 +89,8 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
@Mock
private Handler mHandler;
@Mock
+ private WindowMagnificationAnimationController mWindowMagnificationAnimationController;
+ @Mock
private SfVsyncFrameCallbackProvider mSfVsyncFrameProvider;
@Mock
private MirrorWindowControl mMirrorWindowControl;
@@ -128,7 +130,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
mResources = getContext().getOrCreateTestableResources().getResources();
mWindowMagnificationController = new WindowMagnificationController(mContext,
- mHandler, mSfVsyncFrameProvider,
+ mHandler, mWindowMagnificationAnimationController, mSfVsyncFrameProvider,
mMirrorWindowControl, mTransaction, mWindowMagnifierCallback, mSysUiState);
verify(mMirrorWindowControl).setWindowDelegate(
@@ -174,7 +176,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
mWindowManager.setWindowBounds(new Rect(0, 0, screenSize, screenSize));
//We need to initialize new one because the window size is determined when initialization.
final WindowMagnificationController controller = new WindowMagnificationController(mContext,
- mHandler, mSfVsyncFrameProvider,
+ mHandler, mWindowMagnificationAnimationController, mSfVsyncFrameProvider,
mMirrorWindowControl, mTransaction, mWindowMagnifierCallback, mSysUiState);
mInstrumentation.runOnMainSync(() -> {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java
index fb1716aed474..c898150d857c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java
@@ -167,30 +167,29 @@ public class WindowMagnificationTest extends SysuiTestCase {
@Test
public void overviewProxyIsConnected_controllerIsAvailable_updateSysUiStateFlag() {
- final WindowMagnificationAnimationController mController = mock(
- WindowMagnificationAnimationController.class);
- mWindowMagnification.mAnimationControllerSupplier = new FakeAnimationControllerSupplier(
+ final WindowMagnificationController mController = mock(WindowMagnificationController.class);
+ mWindowMagnification.mMagnificationControllerSupplier = new FakeControllerSupplier(
mContext.getSystemService(DisplayManager.class), mController);
- mWindowMagnification.mAnimationControllerSupplier.get(TEST_DISPLAY);
+ mWindowMagnification.mMagnificationControllerSupplier.get(TEST_DISPLAY);
mOverviewProxyListener.onConnectionChanged(true);
- verify(mController).updateSysUiStateFlag();
+ verify(mController).updateSysUIStateFlag();
}
- private static class FakeAnimationControllerSupplier extends
- DisplayIdIndexSupplier<WindowMagnificationAnimationController> {
+ private static class FakeControllerSupplier extends
+ DisplayIdIndexSupplier<WindowMagnificationController> {
- private final WindowMagnificationAnimationController mController;
+ private final WindowMagnificationController mController;
- FakeAnimationControllerSupplier(DisplayManager displayManager,
- WindowMagnificationAnimationController controller) {
+ FakeControllerSupplier(DisplayManager displayManager,
+ WindowMagnificationController controller) {
super(displayManager);
mController = controller;
}
@Override
- protected WindowMagnificationAnimationController createInstance(Display display) {
+ protected WindowMagnificationController createInstance(Display display) {
return mController;
}
}