summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/view/accessibility/IWindowMagnificationConnectionCallback.aidl3
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/MagnificationSettingsController.java11
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java14
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java69
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettingsCallback.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnifierCallback.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java16
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java1
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationSettingsControllerTest.java13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java6
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationSettingsTest.java158
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java12
-rw-r--r--services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java10
-rw-r--r--services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java10
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java12
-rw-r--r--services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationManagerTest.java7
18 files changed, 200 insertions, 166 deletions
diff --git a/core/java/android/view/accessibility/IWindowMagnificationConnectionCallback.aidl b/core/java/android/view/accessibility/IWindowMagnificationConnectionCallback.aidl
index adfeb6d11008..21b433465a3a 100644
--- a/core/java/android/view/accessibility/IWindowMagnificationConnectionCallback.aidl
+++ b/core/java/android/view/accessibility/IWindowMagnificationConnectionCallback.aidl
@@ -57,8 +57,9 @@ import android.graphics.Rect;
*
* @param displayId The logical display id.
* @param scale the target scale, or {@link Float#NaN} to leave unchanged
+ * @param updatePersistence whether the new scale should be persisted in Settings
*/
- void onPerformScaleAction(int displayId, float scale);
+ void onPerformScaleAction(int displayId, float scale, boolean updatePersistence);
/**
* Called when the accessibility action is performed.
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationSettingsController.java b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationSettingsController.java
index fd3c15889822..859e183d39fe 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationSettingsController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/MagnificationSettingsController.java
@@ -107,6 +107,10 @@ public class MagnificationSettingsController implements ComponentCallbacks {
return mWindowMagnificationSettings.isSettingPanelShowing();
}
+ void setMagnificationScale(float scale) {
+ mWindowMagnificationSettings.setMagnificationScale(scale);
+ }
+
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
final int configDiff = newConfig.diff(mConfiguration);
@@ -160,8 +164,9 @@ public class MagnificationSettingsController implements ComponentCallbacks {
*
* @param displayId The logical display id.
* @param scale Magnification scale value.
+ * @param updatePersistence whether the new scale should be persisted.
*/
- void onMagnifierScale(int displayId, float scale);
+ void onMagnifierScale(int displayId, float scale, boolean updatePersistence);
/**
* Called when magnification mode changed.
@@ -211,9 +216,9 @@ public class MagnificationSettingsController implements ComponentCallbacks {
}
@Override
- public void onMagnifierScale(float scale) {
+ public void onMagnifierScale(float scale, boolean updatePersistence) {
mSettingsControllerCallback.onMagnifierScale(mDisplayId,
- A11Y_ACTION_SCALE_RANGE.clamp(scale));
+ A11Y_ACTION_SCALE_RANGE.clamp(scale), updatePersistence);
}
};
}
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
index 1739ba4b3a01..baabd95f5caa 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java
@@ -310,6 +310,10 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
return;
}
scales.put(displayId, scale);
+
+ final MagnificationSettingsController magnificationSettingsController =
+ mMagnificationSettingsSupplier.get(displayId);
+ magnificationSettingsController.setMagnificationScale(scale);
}
@VisibleForTesting
@@ -329,9 +333,10 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
}
@Override
- public void onPerformScaleAction(int displayId, float scale) {
+ public void onPerformScaleAction(int displayId, float scale, boolean updatePersistence) {
if (mWindowMagnificationConnectionImpl != null) {
- mWindowMagnificationConnectionImpl.onPerformScaleAction(displayId, scale);
+ mWindowMagnificationConnectionImpl.onPerformScaleAction(
+ displayId, scale, updatePersistence);
}
}
@@ -380,9 +385,10 @@ public class WindowMagnification implements CoreStartable, CommandQueue.Callback
}
@Override
- public void onMagnifierScale(int displayId, float scale) {
+ public void onMagnifierScale(int displayId, float scale, boolean updatePersistence) {
if (mWindowMagnificationConnectionImpl != null) {
- mWindowMagnificationConnectionImpl.onPerformScaleAction(displayId, scale);
+ mWindowMagnificationConnectionImpl.onPerformScaleAction(
+ displayId, scale, updatePersistence);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java
index f1d00ce218c2..928445bde8ff 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java
@@ -129,10 +129,10 @@ class WindowMagnificationConnectionImpl extends IWindowMagnificationConnection.S
}
}
- void onPerformScaleAction(int displayId, float scale) {
+ void onPerformScaleAction(int displayId, float scale, boolean updatePersistence) {
if (mConnectionCallback != null) {
try {
- mConnectionCallback.onPerformScaleAction(displayId, scale);
+ mConnectionCallback.onPerformScaleAction(displayId, scale, updatePersistence);
} catch (RemoteException e) {
Log.e(TAG, "Failed to inform performing scale action", e);
}
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
index e7eab7e462e1..602f817f826b 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java
@@ -1491,13 +1491,9 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
// Simulate tapping the drag view so it opens the Settings.
handleSingleTap(mDragView);
} else if (action == R.id.accessibility_action_zoom_in) {
- final float scale = mScale + A11Y_CHANGE_SCALE_DIFFERENCE;
- mWindowMagnifierCallback.onPerformScaleAction(mDisplayId,
- A11Y_ACTION_SCALE_RANGE.clamp(scale));
+ performScale(mScale + A11Y_CHANGE_SCALE_DIFFERENCE);
} else if (action == R.id.accessibility_action_zoom_out) {
- final float scale = mScale - A11Y_CHANGE_SCALE_DIFFERENCE;
- mWindowMagnifierCallback.onPerformScaleAction(mDisplayId,
- A11Y_ACTION_SCALE_RANGE.clamp(scale));
+ performScale(mScale - A11Y_CHANGE_SCALE_DIFFERENCE);
} else if (action == R.id.accessibility_action_move_up) {
move(0, -mSourceBounds.height());
} else if (action == R.id.accessibility_action_move_down) {
@@ -1512,5 +1508,11 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold
mWindowMagnifierCallback.onAccessibilityActionPerformed(mDisplayId);
return true;
}
+
+ private void performScale(float scale) {
+ scale = A11Y_ACTION_SCALE_RANGE.clamp(scale);
+ mWindowMagnifierCallback.onPerformScaleAction(
+ mDisplayId, scale, /* updatePersistence= */ true);
+ }
}
} \ No newline at end of file
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
index 1e1d4b7b2e5b..6ec5320bf4c3 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettings.java
@@ -57,7 +57,6 @@ import android.widget.SeekBar;
import android.widget.Switch;
import android.widget.TextView;
-import com.android.internal.accessibility.common.MagnificationConstants;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.R;
@@ -89,14 +88,12 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
private final MagnificationGestureDetector mGestureDetector;
private boolean mSingleTapDetected = false;
- @VisibleForTesting
- SeekBarWithIconButtonsView mZoomSeekbar;
+ private SeekBarWithIconButtonsView mZoomSeekbar;
private LinearLayout mAllowDiagonalScrollingView;
private TextView mAllowDiagonalScrollingTitle;
private Switch mAllowDiagonalScrollingSwitch;
private LinearLayout mPanelView;
private LinearLayout mSettingView;
- private LinearLayout mButtonView;
private ImageButton mSmallButton;
private ImageButton mMediumButton;
private ImageButton mLargeButton;
@@ -110,10 +107,11 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
* magnitude = 10 means, for every 1 scale increase, 10 progress increase in seekbar.
*/
private int mSeekBarMagnitude;
+ private float mScale = SCALE_MIN_VALUE;
+
private WindowMagnificationSettingsCallback mCallback;
private ContentObserver mMagnificationCapabilityObserver;
- private ContentObserver mMagnificationScaleObserver;
@Retention(RetentionPolicy.SOURCE)
@IntDef({
@@ -163,30 +161,20 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
});
}
};
- mMagnificationScaleObserver = new ContentObserver(
- mContext.getMainThreadHandler()) {
- @Override
- public void onChange(boolean selfChange) {
- setScaleSeekbar(getMagnificationScale());
- }
- };
}
private class ZoomSeekbarChangeListener implements
SeekBarWithIconButtonsView.OnSeekBarWithIconButtonsChangeListener {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
- float scale = (progress / (float) mSeekBarMagnitude) + SCALE_MIN_VALUE;
- // Update persisted scale only when scale >= PERSISTED_SCALE_MIN_VALUE const.
- // We assume if the scale is lower than the PERSISTED_SCALE_MIN_VALUE, there will be
- // no obvious magnification effect.
- if (scale >= MagnificationConstants.PERSISTED_SCALE_MIN_VALUE) {
- mSecureSettings.putFloatForUser(
- Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE,
- scale,
- UserHandle.USER_CURRENT);
+ // Notify the service to update the magnifier scale only when the progress changed is
+ // triggered by user interaction on seekbar
+ if (fromUser) {
+ final float scale = transformProgressToScale(progress);
+ // We don't need to update the persisted scale when the seekbar progress is
+ // changing. The update should be triggered when the changing is ended.
+ mCallback.onMagnifierScale(scale, /* updatePersistence= */ false);
}
- mCallback.onMagnifierScale(scale);
}
@Override
@@ -201,7 +189,14 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
@Override
public void onUserInteractionFinalized(SeekBar seekBar, @ControlUnitType int control) {
- // Do nothing
+ // Update the Settings persisted scale only when user interaction with seekbar ends
+ final int progress = seekBar.getProgress();
+ final float scale = transformProgressToScale(progress);
+ mCallback.onMagnifierScale(scale, /* updatePersistence= */ true);
+ }
+
+ private float transformProgressToScale(float progress) {
+ return (progress / (float) mSeekBarMagnitude) + SCALE_MIN_VALUE;
}
}
@@ -322,7 +317,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
// Unregister observer before removing view
mSecureSettings.unregisterContentObserver(mMagnificationCapabilityObserver);
- mSecureSettings.unregisterContentObserver(mMagnificationScaleObserver);
mWindowManager.removeView(mSettingView);
mIsVisible = false;
if (resetPosition) {
@@ -374,7 +368,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
private void showSettingPanel(boolean resetPosition) {
if (!mIsVisible) {
updateUIControlsIfNeeded();
- setScaleSeekbar(getMagnificationScale());
+ setScaleSeekbar(mScale);
if (resetPosition) {
mDraggableWindowBounds.set(getDraggableWindowBounds());
mParams.x = mDraggableWindowBounds.right;
@@ -387,10 +381,6 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY,
mMagnificationCapabilityObserver,
UserHandle.USER_CURRENT);
- mSecureSettings.registerContentObserverForUser(
- Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE,
- mMagnificationScaleObserver,
- UserHandle.USER_CURRENT);
// Exclude magnification switch button from system gesture area.
setSystemGestureExclusion();
@@ -430,11 +420,17 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
UserHandle.USER_CURRENT);
}
- private float getMagnificationScale() {
- return mSecureSettings.getFloatForUser(
- Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE,
- SCALE_MIN_VALUE,
- UserHandle.USER_CURRENT);
+ /**
+ * Only called from outside to notify the controlling magnifier scale changed
+ *
+ * @param scale The new controlling magnifier scale
+ */
+ public void setMagnificationScale(float scale) {
+ mScale = scale;
+
+ if (isSettingPanelShowing()) {
+ setScaleSeekbar(scale);
+ }
}
private void updateUIControlsIfNeeded() {
@@ -523,10 +519,7 @@ class WindowMagnificationSettings implements MagnificationGestureDetector.OnGest
mZoomSeekbar.setMax((int) (mZoomSeekbar.getChangeMagnitude()
* (SCALE_MAX_VALUE - SCALE_MIN_VALUE)));
mSeekBarMagnitude = mZoomSeekbar.getChangeMagnitude();
- float scale = mSecureSettings.getFloatForUser(
- Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE, 0,
- UserHandle.USER_CURRENT);
- setScaleSeekbar(scale);
+ setScaleSeekbar(mScale);
mZoomSeekbar.setOnSeekBarWithIconButtonsChangeListener(new ZoomSeekbarChangeListener());
mAllowDiagonalScrollingView =
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettingsCallback.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettingsCallback.java
index 3dbff5d7898f..2eee7a63ab21 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettingsCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationSettingsCallback.java
@@ -52,8 +52,9 @@ public interface WindowMagnificationSettingsCallback {
* Called when set magnification scale.
*
* @param scale Magnification scale value.
+ * @param updatePersistence whether the scale should be persisted
*/
- void onMagnifierScale(float scale);
+ void onMagnifierScale(float scale, boolean updatePersistence);
/**
* Called when magnification mode changed.
diff --git a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnifierCallback.java b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnifierCallback.java
index e18161d658a8..a25e9a20f81c 100644
--- a/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnifierCallback.java
+++ b/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnifierCallback.java
@@ -44,8 +44,9 @@ interface WindowMagnifierCallback {
*
* @param displayId The logical display id.
* @param scale the target scale, or {@link Float#NaN} to leave unchanged
+ * @param updatePersistence whether the scale should be persisted
*/
- void onPerformScaleAction(int displayId, float scale);
+ void onPerformScaleAction(int displayId, float scale, boolean updatePersistence);
/**
* Called when the accessibility action is performed.
diff --git a/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java b/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
index 277b4274bb82..f362831e8c88 100644
--- a/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
+++ b/packages/SystemUI/src/com/android/systemui/common/ui/view/SeekBarWithIconButtonsView.java
@@ -171,6 +171,22 @@ public class SeekBarWithIconButtonsView extends LinearLayout {
}
/**
+ * Only for testing. Get previous set mOnSeekBarChangeListener to the seekbar.
+ */
+ @VisibleForTesting
+ public OnSeekBarWithIconButtonsChangeListener getOnSeekBarWithIconButtonsChangeListener() {
+ return mSeekBarListener.mOnSeekBarChangeListener;
+ }
+
+ /**
+ * Only for testing. Get {@link #mSeekbar} in the layout.
+ */
+ @VisibleForTesting
+ public SeekBar getSeekbar() {
+ return mSeekbar;
+ }
+
+ /**
* Start and End icons might need to be updated when there is a change in seekbar progress.
* Icon Start will need to be enabled when the seekbar progress is larger than 0.
* Icon End will need to be enabled when the seekbar progress is less than Max.
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 caf230d4e793..67d6aa8e98cf 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/IWindowMagnificationConnectionTest.java
@@ -198,6 +198,7 @@ public class IWindowMagnificationConnectionTest extends SysuiTestCase {
assertTrue(mWindowMagnification.mUsersScales.contains(testUserId));
assertEquals(mWindowMagnification.mUsersScales.get(testUserId).get(TEST_DISPLAY),
(Float) testScale);
+ verify(mMagnificationSettingsController).setMagnificationScale(eq(testScale));
}
private class FakeControllerSupplier extends
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationSettingsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationSettingsControllerTest.java
index 62a176c94d67..9eead6a422ac 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationSettingsControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationSettingsControllerTest.java
@@ -86,6 +86,14 @@ public class MagnificationSettingsControllerTest extends SysuiTestCase {
}
@Test
+ public void testSetMagnificationScale() {
+ final float scale = 3.0f;
+ mMagnificationSettingsController.setMagnificationScale(scale);
+
+ verify(mWindowMagnificationSettings).setMagnificationScale(eq(scale));
+ }
+
+ @Test
public void testOnConfigurationChanged_notifySettingsPanel() {
mMagnificationSettingsController.onConfigurationChanged(ActivityInfo.CONFIG_DENSITY);
@@ -145,10 +153,11 @@ public class MagnificationSettingsControllerTest extends SysuiTestCase {
@Test
public void testPanelOnMagnifierScale_delegateToCallback() {
final float scale = 3.0f;
+ final boolean updatePersistence = true;
mMagnificationSettingsController.mWindowMagnificationSettingsCallback
- .onMagnifierScale(scale);
+ .onMagnifierScale(scale, updatePersistence);
verify(mMagnificationSettingControllerCallback).onMagnifierScale(
- eq(mContext.getDisplayId()), eq(scale));
+ eq(mContext.getDisplayId()), eq(scale), eq(updatePersistence));
}
}
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 31c09b8e7ec4..56f81606a282 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java
@@ -645,10 +645,12 @@ public class WindowMagnificationControllerTest extends SysuiTestCase {
assertTrue(
mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_out, null));
// Minimum scale is 1.0.
- verify(mWindowMagnifierCallback).onPerformScaleAction(eq(displayId), eq(1.0f));
+ verify(mWindowMagnifierCallback).onPerformScaleAction(
+ eq(displayId), /* scale= */ eq(1.0f), /* updatePersistence= */ eq(true));
assertTrue(mirrorView.performAccessibilityAction(R.id.accessibility_action_zoom_in, null));
- verify(mWindowMagnifierCallback).onPerformScaleAction(eq(displayId), eq(2.5f));
+ verify(mWindowMagnifierCallback).onPerformScaleAction(
+ eq(displayId), /* scale= */ eq(2.5f), /* updatePersistence= */ eq(true));
// TODO: Verify the final state when the mirror surface is visible.
assertTrue(mirrorView.performAccessibilityAction(R.id.accessibility_action_move_up, null));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationSettingsTest.java b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationSettingsTest.java
index 275723be3859..eddb8d186d73 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationSettingsTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationSettingsTest.java
@@ -16,7 +16,6 @@
package com.android.systemui.accessibility;
-import static android.provider.Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_CAPABILITY;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_ALL;
import static android.provider.Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN;
@@ -28,10 +27,12 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -55,10 +56,11 @@ import android.widget.LinearLayout;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.SmallTest;
-import com.android.internal.accessibility.common.MagnificationConstants;
import com.android.internal.graphics.SfVsyncFrameCallbackProvider;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
+import com.android.systemui.common.ui.view.SeekBarWithIconButtonsView;
+import com.android.systemui.common.ui.view.SeekBarWithIconButtonsView.OnSeekBarWithIconButtonsChangeListener;
import com.android.systemui.util.settings.SecureSettings;
import org.junit.After;
@@ -79,6 +81,7 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
private static final int MAGNIFICATION_SIZE_LARGE = 3;
private ViewGroup mSettingView;
+ private SeekBarWithIconButtonsView mZoomSeekbar;
@Mock
private AccessibilityManager mAccessibilityManager;
@Mock
@@ -111,6 +114,7 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
mSecureSettings);
mSettingView = mWindowMagnificationSettings.getSettingView();
+ mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider);
mSecureSettingsScaleCaptor = ArgumentCaptor.forClass(Float.class);
mSecureSettingsNameCaptor = ArgumentCaptor.forClass(String.class);
mSecureSettingsUserHandleCaptor = ArgumentCaptor.forClass(Integer.class);
@@ -337,20 +341,6 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
}
@Test
- public void showSettingsPanel_observerForMagnificationScaleRegistered() {
- setupMagnificationCapabilityAndMode(
- /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
- /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
-
- mWindowMagnificationSettings.showSettingPanel();
-
- verify(mSecureSettings).registerContentObserverForUser(
- eq(ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE),
- any(ContentObserver.class),
- eq(UserHandle.USER_CURRENT));
- }
-
- @Test
public void hideSettingsPanel_observerUnregistered() {
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
@@ -359,19 +349,25 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
mWindowMagnificationSettings.showSettingPanel();
mWindowMagnificationSettings.hideSettingPanel();
- verify(mSecureSettings, times(2)).unregisterContentObserver(any(ContentObserver.class));
+ verify(mSecureSettings).unregisterContentObserver(any(ContentObserver.class));
}
@Test
public void seekbarProgress_justInflated_maxValueAndProgressSetCorrectly() {
- setupScaleInSecureSettings(0f);
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(0);
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getMax()).isEqualTo(70);
+ mWindowMagnificationSettings.setMagnificationScale(2f);
+ mWindowMagnificationSettings.inflateView();
+
+ // inflateView() would create new settingsView in WindowMagnificationSettings so we
+ // need to retrieve the new mZoomSeekbar
+ mSettingView = mWindowMagnificationSettings.getSettingView();
+ mZoomSeekbar = mSettingView.findViewById(R.id.magnifier_zoom_slider);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(10);
+ assertThat(mZoomSeekbar.getMax()).isEqualTo(70);
}
@Test
public void seekbarProgress_minMagnification_seekbarProgressIsCorrect() {
- setupScaleInSecureSettings(0f);
+ mWindowMagnificationSettings.setMagnificationScale(1f);
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
@@ -379,24 +375,24 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
mWindowMagnificationSettings.showSettingPanel();
// Seekbar index from 0 to 70. 1.0f scale (A11Y_SCALE_MIN_VALUE) would correspond to 0.
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(0);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(0);
}
@Test
public void seekbarProgress_belowMinMagnification_seekbarProgressIsZero() {
- setupScaleInSecureSettings(0f);
+ mWindowMagnificationSettings.setMagnificationScale(0f);
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
mWindowMagnificationSettings.showSettingPanel();
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(0);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(0);
}
@Test
public void seekbarProgress_magnificationBefore_seekbarProgressIsHalf() {
- setupScaleInSecureSettings(4f);
+ mWindowMagnificationSettings.setMagnificationScale(4f);
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
@@ -405,12 +401,12 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
// float scale : from 1.0f to 8.0f, seekbar index from 0 to 70.
// 4.0f would correspond to 30.
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(30);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(30);
}
@Test
public void seekbarProgress_maxMagnificationBefore_seekbarProgressIsMax() {
- setupScaleInSecureSettings(8f);
+ mWindowMagnificationSettings.setMagnificationScale(8f);
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
@@ -419,12 +415,12 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
// 8.0f is max magnification {@link MagnificationScaleProvider#MAX_SCALE}.
// Max zoom seek bar is 70.
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(70);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(70);
}
@Test
public void seekbarProgress_aboveMaxMagnificationBefore_seekbarProgressIsMax() {
- setupScaleInSecureSettings(9f);
+ mWindowMagnificationSettings.setMagnificationScale(9f);
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
@@ -432,52 +428,63 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
mWindowMagnificationSettings.showSettingPanel();
// Max zoom seek bar is 70.
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(70);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(70);
}
@Test
- public void seekbarProgress_progressChangedRoughlyHalf_scaleAndCallbackUpdated() {
- setupMagnificationCapabilityAndMode(
- /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
- /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
- mWindowMagnificationSettings.showSettingPanel();
+ public void onSeekBarProgressChanged_fromUserFalse_callbackNotTriggered() {
+ OnSeekBarWithIconButtonsChangeListener onChangeListener =
+ mZoomSeekbar.getOnSeekBarWithIconButtonsChangeListener();
+ onChangeListener.onProgressChanged(
+ mZoomSeekbar.getSeekbar(), /* progress= */ 30, /* fromUser= */ false);
- mWindowMagnificationSettings.mZoomSeekbar.setProgress(30);
+ verify(mWindowMagnificationSettingsCallback, never())
+ .onMagnifierScale(/* scale= */ anyFloat(), /* updatePersistence= */ eq(false));
+ }
+
+ @Test
+ public void onSeekBarProgressChangedToRoughlyHalf_fromUserTrue_callbackUpdated() {
+ OnSeekBarWithIconButtonsChangeListener onChangeListener =
+ mZoomSeekbar.getOnSeekBarWithIconButtonsChangeListener();
+ onChangeListener.onProgressChanged(
+ mZoomSeekbar.getSeekbar(), /* progress= */ 30, /* fromUser= */ true);
- verifyScaleUpdatedInSecureSettings(4f);
verifyCallbackOnMagnifierScale(4f);
}
@Test
- public void seekbarProgress_minProgress_callbackUpdated() {
- setupMagnificationCapabilityAndMode(
- /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
- /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
- mWindowMagnificationSettings.showSettingPanel();
- // Set progress to non-zero first so onProgressChanged can be triggered upon setting to 0.
- mWindowMagnificationSettings.mZoomSeekbar.setProgress(30);
+ public void onSeekBarProgressChangedToMin_fromUserTrue_callbackUpdated() {
+ OnSeekBarWithIconButtonsChangeListener onChangeListener =
+ mZoomSeekbar.getOnSeekBarWithIconButtonsChangeListener();
+ onChangeListener.onProgressChanged(
+ mZoomSeekbar.getSeekbar(), /* progress= */ 0, /* fromUser= */ true);
+
+ verifyCallbackOnMagnifierScale(1f);
+ }
- mWindowMagnificationSettings.mZoomSeekbar.setProgress(0);
+ @Test
+ public void onSeekBarProgressChangedToMax_fromUserTrue_callbackUpdated() {
+ OnSeekBarWithIconButtonsChangeListener onChangeListener =
+ mZoomSeekbar.getOnSeekBarWithIconButtonsChangeListener();
+ onChangeListener.onProgressChanged(
+ mZoomSeekbar.getSeekbar(), /* progress= */ 70, /* fromUser= */ true);
- // For now, secure settings will not be updated for values < 1.3f. Follow up on this later.
- verify(mWindowMagnificationSettingsCallback, times(2))
- .onMagnifierScale(mCallbackMagnifierScaleCaptor.capture());
- var capturedArgs = mCallbackMagnifierScaleCaptor.getAllValues();
- assertThat(capturedArgs).hasSize(2);
- assertThat(capturedArgs.get(1)).isWithin(0.01f).of(1f);
+ verifyCallbackOnMagnifierScale(8f);
}
@Test
- public void seekbarProgress_maxProgress_scaleAndCallbackUpdated() {
- setupMagnificationCapabilityAndMode(
- /* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW,
- /* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
- mWindowMagnificationSettings.showSettingPanel();
+ public void onSeekbarUserInteractionFinalized_persistedScaleUpdated() {
+ OnSeekBarWithIconButtonsChangeListener onChangeListener =
+ mZoomSeekbar.getOnSeekBarWithIconButtonsChangeListener();
- mWindowMagnificationSettings.mZoomSeekbar.setProgress(70);
+ mZoomSeekbar.setProgress(30);
+ onChangeListener.onUserInteractionFinalized(
+ mZoomSeekbar.getSeekbar(),
+ OnSeekBarWithIconButtonsChangeListener.ControlUnitType.SLIDER);
- verifyScaleUpdatedInSecureSettings(8f);
- verifyCallbackOnMagnifierScale(8f);
+ // should trigger callback to update magnifier scale and persist the scale
+ verify(mWindowMagnificationSettingsCallback)
+ .onMagnifierScale(/* scale= */ eq(4f), /* updatePersistence= */ eq(true));
}
@Test
@@ -485,35 +492,17 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
setupMagnificationCapabilityAndMode(
/* capability= */ ACCESSIBILITY_MAGNIFICATION_MODE_ALL,
/* mode= */ ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW);
- var contentObserverCaptor = ArgumentCaptor.forClass(ContentObserver.class);
mWindowMagnificationSettings.showSettingPanel();
- verify(mSecureSettings).registerContentObserverForUser(
- eq(ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE),
- contentObserverCaptor.capture(),
- eq(UserHandle.USER_CURRENT));
// Simulate outside changes.
- setupScaleInSecureSettings(4f);
- // Simulate callback due to outside change.
- contentObserverCaptor.getValue().onChange(/* selfChange= */ false);
-
- assertThat(mWindowMagnificationSettings.mZoomSeekbar.getProgress()).isEqualTo(30);
- }
+ mWindowMagnificationSettings.setMagnificationScale(4f);
- private void verifyScaleUpdatedInSecureSettings(float scale) {
- verify(mSecureSettings).putFloatForUser(
- mSecureSettingsNameCaptor.capture(),
- mSecureSettingsScaleCaptor.capture(),
- mSecureSettingsUserHandleCaptor.capture());
- assertThat(mSecureSettingsScaleCaptor.getValue()).isWithin(0.01f).of(scale);
- assertThat(mSecureSettingsNameCaptor.getValue())
- .isEqualTo(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE);
- assertThat(mSecureSettingsUserHandleCaptor.getValue()).isEqualTo(UserHandle.USER_CURRENT);
+ assertThat(mZoomSeekbar.getProgress()).isEqualTo(30);
}
private void verifyCallbackOnMagnifierScale(float scale) {
verify(mWindowMagnificationSettingsCallback)
- .onMagnifierScale(mCallbackMagnifierScaleCaptor.capture());
+ .onMagnifierScale(mCallbackMagnifierScaleCaptor.capture(), anyBoolean());
assertThat(mCallbackMagnifierScaleCaptor.getValue()).isWithin(0.01f).of(scale);
}
@@ -533,11 +522,4 @@ public class WindowMagnificationSettingsTest extends SysuiTestCase {
anyInt(),
eq(UserHandle.USER_CURRENT))).thenReturn(mode);
}
-
- private void setupScaleInSecureSettings(float scale) {
- when(mSecureSettings.getFloatForUser(
- ACCESSIBILITY_DISPLAY_MAGNIFICATION_SCALE,
- MagnificationConstants.SCALE_MIN_VALUE,
- UserHandle.USER_CURRENT)).thenReturn(scale);
- }
}
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 db580742a68f..d75781aee26c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationTest.java
@@ -163,13 +163,15 @@ public class WindowMagnificationTest extends SysuiTestCase {
@Test
public void onPerformScaleAction_enabled_notifyCallback() throws RemoteException {
final float newScale = 4.0f;
+ final boolean updatePersistence = true;
mCommandQueue.requestWindowMagnificationConnection(true);
waitForIdleSync();
mWindowMagnification.mWindowMagnifierCallback
- .onPerformScaleAction(TEST_DISPLAY, newScale);
+ .onPerformScaleAction(TEST_DISPLAY, newScale, updatePersistence);
- verify(mConnectionCallback).onPerformScaleAction(TEST_DISPLAY, newScale);
+ verify(mConnectionCallback).onPerformScaleAction(
+ eq(TEST_DISPLAY), eq(newScale), eq(updatePersistence));
}
@Test
@@ -249,10 +251,12 @@ public class WindowMagnificationTest extends SysuiTestCase {
mCommandQueue.requestWindowMagnificationConnection(true);
waitForIdleSync();
final float scale = 3.0f;
+ final boolean updatePersistence = false;
mWindowMagnification.mMagnificationSettingsControllerCallback.onMagnifierScale(
- TEST_DISPLAY, scale);
+ TEST_DISPLAY, scale, updatePersistence);
- verify(mConnectionCallback).onPerformScaleAction(eq(TEST_DISPLAY), eq(scale));
+ verify(mConnectionCallback).onPerformScaleAction(
+ eq(TEST_DISPLAY), eq(scale), eq(updatePersistence));
}
@Test
diff --git a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
index f6948e9cbb3b..effd8732d086 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/MagnificationController.java
@@ -172,14 +172,18 @@ public class MagnificationController implements WindowMagnificationManager.Callb
}
@Override
- public void onPerformScaleAction(int displayId, float scale) {
+ public void onPerformScaleAction(int displayId, float scale, boolean updatePersistence) {
if (getFullScreenMagnificationController().isActivated(displayId)) {
getFullScreenMagnificationController().setScaleAndCenter(displayId, scale,
Float.NaN, Float.NaN, false, MAGNIFICATION_GESTURE_HANDLER_ID);
- getFullScreenMagnificationController().persistScale(displayId);
+ if (updatePersistence) {
+ getFullScreenMagnificationController().persistScale(displayId);
+ }
} else if (getWindowMagnificationMgr().isWindowMagnifierEnabled(displayId)) {
getWindowMagnificationMgr().setScale(displayId, scale);
- getWindowMagnificationMgr().persistScale(displayId);
+ if (updatePersistence) {
+ getWindowMagnificationMgr().persistScale(displayId);
+ }
}
}
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 d96682c5529d..816f22f8c7b0 100644
--- a/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java
+++ b/services/accessibility/java/com/android/server/accessibility/magnification/WindowMagnificationManager.java
@@ -167,8 +167,9 @@ public class WindowMagnificationManager implements
*
* @param displayId The logical display id.
* @param scale the target scale, or {@link Float#NaN} to leave unchanged
+ * @param updatePersistence whether the scale should be persisted
*/
- void onPerformScaleAction(int displayId, float scale);
+ void onPerformScaleAction(int displayId, float scale, boolean updatePersistence);
/**
* Called when the accessibility action is performed.
@@ -977,14 +978,15 @@ public class WindowMagnificationManager implements
}
@Override
- public void onPerformScaleAction(int displayId, float scale) {
+ public void onPerformScaleAction(int displayId, float scale, boolean updatePersistence) {
if (mTrace.isA11yTracingEnabledForTypes(
FLAGS_WINDOW_MAGNIFICATION_CONNECTION_CALLBACK)) {
mTrace.logTrace(TAG + "ConnectionCallback.onPerformScaleAction",
FLAGS_WINDOW_MAGNIFICATION_CONNECTION_CALLBACK,
- "displayId=" + displayId + ";scale=" + scale);
+ "displayId=" + displayId + ";scale=" + scale
+ + ";updatePersistence=" + updatePersistence);
}
- mCallback.onPerformScaleAction(displayId, scale);
+ mCallback.onPerformScaleAction(displayId, scale, updatePersistence);
}
@Override
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
index 81dd96195ee0..d4c6fad99645 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/MagnificationControllerTest.java
@@ -606,9 +606,10 @@ public class MagnificationControllerTest {
public void onPerformScaleAction_fullScreenMagnifierEnabled_handleScaleChange()
throws RemoteException {
final float newScale = 4.0f;
+ final boolean updatePersistence = true;
setMagnificationEnabled(MODE_FULLSCREEN);
- mMagnificationController.onPerformScaleAction(TEST_DISPLAY, newScale);
+ mMagnificationController.onPerformScaleAction(TEST_DISPLAY, newScale, updatePersistence);
verify(mScreenMagnificationController).setScaleAndCenter(eq(TEST_DISPLAY), eq(newScale),
anyFloat(), anyFloat(), anyBoolean(), anyInt());
@@ -619,12 +620,13 @@ public class MagnificationControllerTest {
public void onPerformScaleAction_windowMagnifierEnabled_handleScaleChange()
throws RemoteException {
final float newScale = 4.0f;
+ final boolean updatePersistence = false;
setMagnificationEnabled(MODE_WINDOW);
- mMagnificationController.onPerformScaleAction(TEST_DISPLAY, newScale);
+ mMagnificationController.onPerformScaleAction(TEST_DISPLAY, newScale, updatePersistence);
verify(mWindowMagnificationManager).setScale(eq(TEST_DISPLAY), eq(newScale));
- verify(mWindowMagnificationManager).persistScale(eq(TEST_DISPLAY));
+ verify(mWindowMagnificationManager, never()).persistScale(eq(TEST_DISPLAY));
}
@Test
@@ -1310,9 +1312,9 @@ public class MagnificationControllerTest {
}
@Override
- public void onPerformScaleAction(int displayId, float scale) {
+ public void onPerformScaleAction(int displayId, float scale, boolean updatePersistence) {
if (mCallback != null) {
- mCallback.onPerformScaleAction(displayId, scale);
+ mCallback.onPerformScaleAction(displayId, scale, updatePersistence);
}
}
diff --git a/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationManagerTest.java b/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationManagerTest.java
index e8b337ab97a7..27e6ef199fe2 100644
--- a/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationManagerTest.java
+++ b/services/tests/servicestests/src/com/android/server/accessibility/magnification/WindowMagnificationManagerTest.java
@@ -576,12 +576,15 @@ public class WindowMagnificationManagerTest {
@Test
public void onPerformScaleAction_magnifierEnabled_notifyAction() throws RemoteException {
final float newScale = 4.0f;
+ final boolean updatePersistence = true;
mWindowMagnificationManager.setConnection(mMockConnection.getConnection());
mWindowMagnificationManager.enableWindowMagnification(TEST_DISPLAY, 3.0f, NaN, NaN);
- mMockConnection.getConnectionCallback().onPerformScaleAction(TEST_DISPLAY, newScale);
+ mMockConnection.getConnectionCallback().onPerformScaleAction(
+ TEST_DISPLAY, newScale, updatePersistence);
- verify(mMockCallback).onPerformScaleAction(eq(TEST_DISPLAY), eq(newScale));
+ verify(mMockCallback).onPerformScaleAction(
+ eq(TEST_DISPLAY), eq(newScale), eq(updatePersistence));
}
@Test