Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +28 −11 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; Loading Loading @@ -67,7 +68,7 @@ class MagnificationModeSwitch { private final int mTapTimeout = ViewConfiguration.getTapTimeout(); private final int mTouchSlop; private int mMagnificationMode = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; private final WindowManager.LayoutParams mParams; private final LayoutParams mParams; private boolean mIsVisible = false; MagnificationModeSwitch(Context context) { Loading @@ -80,7 +81,7 @@ class MagnificationModeSwitch { mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mWindowManager = (WindowManager) mContext.getSystemService( Context.WINDOW_SERVICE); mParams = createLayoutParams(); mParams = createLayoutParams(context); mImageView = imageView; mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); applyResourcesValues(); Loading Loading @@ -221,11 +222,22 @@ class MagnificationModeSwitch { } void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_DENSITY) == 0) { return; } if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) { applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); return; } if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { updateAccessibilityWindowTitle(); return; } } private void updateAccessibilityWindowTitle() { mParams.accessibilityTitle = getAccessibilityWindowTitle(mContext); if (mIsVisible) { mWindowManager.updateViewLayout(mImageView, mParams); } } private void toggleMagnificationMode() { Loading Loading @@ -261,14 +273,19 @@ class MagnificationModeSwitch { : R.drawable.ic_open_in_new_fullscreen; } private static WindowManager.LayoutParams createLayoutParams() { final WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, private static LayoutParams createLayoutParams(Context context) { final LayoutParams params = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT); params.gravity = Gravity.BOTTOM | Gravity.RIGHT; params.accessibilityTitle = getAccessibilityWindowTitle(context); return params; } private static String getAccessibilityWindowTitle(Context context) { return context.getString(com.android.internal.R.string.android_system_label); } } packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java +2 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,8 @@ public class WindowMagnification extends SystemUI implements WindowMagnifierCall CommandQueue.Callbacks { private static final String TAG = "WindowMagnification"; private static final int CONFIG_MASK = ActivityInfo.CONFIG_DENSITY | ActivityInfo.CONFIG_ORIENTATION; ActivityInfo.CONFIG_DENSITY | ActivityInfo.CONFIG_ORIENTATION | ActivityInfo.CONFIG_LOCALE; @VisibleForTesting protected WindowMagnificationAnimationController mWindowMagnificationAnimationController; Loading packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java +24 −10 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ package com.android.systemui.accessibility; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; import static android.view.WindowManager.LayoutParams; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; Loading Loading @@ -254,9 +254,18 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } } else if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { onRotate(); } else if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { updateAccessibilityWindowTitleIfNeeded(); } } private void updateAccessibilityWindowTitleIfNeeded() { if (!isWindowVisible()) return; LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); params.accessibilityTitle = getAccessibilityWindowTitle(); mWm.updateViewLayout(mMirrorView, params); } /** Handles MirrorWindow position when the navigation bar mode changed. */ public void onNavigationModeChanged(int mode) { mNavBarMode = mode; Loading Loading @@ -290,8 +299,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return; } // The rect of MirrorView is going to be transformed. WindowManager.LayoutParams params = (WindowManager.LayoutParams) mMirrorView.getLayoutParams(); LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); mTmpRect.set(params.x, params.y, params.x + params.width, params.y + params.height); final RectF transformedRect = new RectF(mTmpRect); matrix.mapRect(transformedRect); Loading @@ -313,17 +322,18 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold int windowWidth = mMagnificationFrame.width() + 2 * mMirrorSurfaceMargin; int windowHeight = mMagnificationFrame.height() + 2 * mMirrorSurfaceMargin; WindowManager.LayoutParams params = new WindowManager.LayoutParams( LayoutParams params = new LayoutParams( windowWidth, windowHeight, WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT); params.gravity = Gravity.TOP | Gravity.LEFT; params.x = mMagnificationFrame.left - mMirrorSurfaceMargin; params.y = mMagnificationFrame.top - mMirrorSurfaceMargin; params.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; params.layoutInDisplayCutoutMode = LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; params.setTitle(mContext.getString(R.string.magnification_window_title)); params.accessibilityTitle = getAccessibilityWindowTitle(); mMirrorView = LayoutInflater.from(mContext).inflate(R.layout.window_magnifier_view, null); mMirrorSurfaceView = mMirrorView.findViewById(R.id.surface_view); Loading Loading @@ -369,6 +379,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return regionInsideDragBorder; } private String getAccessibilityWindowTitle() { return mResources.getString(com.android.internal.R.string.android_system_label); } private void showControls() { if (mMirrorWindowControl != null) { mMirrorWindowControl.showControl(); Loading Loading @@ -432,8 +446,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } final int maxMirrorViewX = mDisplaySize.x - mMirrorView.getWidth(); final int maxMirrorViewY = mDisplaySize.y - mMirrorView.getHeight() - mNavGestureHeight; WindowManager.LayoutParams params = (WindowManager.LayoutParams) mMirrorView.getLayoutParams(); LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); params.x = mMagnificationFrame.left - mMirrorSurfaceMargin; params.y = mMagnificationFrame.top - mMirrorSurfaceMargin; // If nav bar mode supports swipe-up gesture, the Y position of mirror view should not Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,33 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertShowFadingAnimation(FADE_OUT_ALPHA); } @Test public void showButton_hasAccessibilityWindowTitle() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).addView(eq(mSpyImageView), paramsArgumentCaptor.capture()); assertEquals(getContext().getResources().getString( com.android.internal.R.string.android_system_label), paramsArgumentCaptor.getValue().accessibilityTitle); } @Test public void onLocaleChanged_buttonIsShowing_updateA11yWindowTitle() { final String newA11yWindowTitle = "new a11y window title"; mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); getContext().getOrCreateTestableResources().addOverride( com.android.internal.R.string.android_system_label, newA11yWindowTitle); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_LOCALE); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).updateViewLayout(eq(mSpyImageView), paramsArgumentCaptor.capture()); assertEquals(newA11yWindowTitle, paramsArgumentCaptor.getValue().accessibilityTitle); } private void assertModeUnchanged(int expectedMode) { final int actualMode = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, 0); Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java +39 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.content.pm.ActivityInfo; import android.content.res.Resources; import android.os.Handler; import android.testing.AndroidTestingRunner; import android.testing.TestableResources; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; Loading Loading @@ -114,8 +115,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { when(mTransaction.remove(any())).thenReturn(mTransaction); when(mTransaction.setGeometry(any(), any(), any(), anyInt())).thenReturn(mTransaction); mResources = Mockito.spy(mContext.getResources()); when(mContext.getResources()).thenReturn(mResources); mResources = getContext().getOrCreateTestableResources().getResources(); mWindowMagnificationController = new WindowMagnificationController(mContext, mHandler, mSfVsyncFrameProvider, mMirrorWindowControl, mTransaction, mWindowMagnifierCallback); Loading Loading @@ -222,7 +222,6 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { assertEquals(Surface.ROTATION_90, mWindowMagnificationController.mRotation); } @Test public void onDensityChanged_enabled_updateDimensionsAndResetWindowMagnification() { mInstrumentation.runOnMainSync(() -> { Loading Loading @@ -310,4 +309,41 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { verify(mWindowManager).updateViewLayout(eq(mMirrorView), any()); } @Test public void enableWindowMagnification_hasA11yWindowTitle() { mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN); }); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).addView(eq(mMirrorView), paramsArgumentCaptor.capture()); assertEquals(getContext().getResources().getString( com.android.internal.R.string.android_system_label), paramsArgumentCaptor.getValue().accessibilityTitle); } @Test public void onLocaleChanged_enabled_updateA11yWindowTitle() { final String newA11yWindowTitle = "new a11y window title"; mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN); }); final TestableResources testableResources = getContext().getOrCreateTestableResources(); testableResources.addOverride(com.android.internal.R.string.android_system_label, newA11yWindowTitle); when(mContext.getResources()).thenReturn(testableResources.getResources()); mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.onConfigurationChanged(ActivityInfo.CONFIG_LOCALE); }); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).updateViewLayout(eq(mMirrorView), paramsArgumentCaptor.capture()); assertEquals(newA11yWindowTitle, paramsArgumentCaptor.getValue().accessibilityTitle); } } Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationModeSwitch.java +28 −11 Original line number Diff line number Diff line Loading @@ -32,6 +32,7 @@ import android.view.MotionEvent; import android.view.View; import android.view.ViewConfiguration; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityNodeInfo; import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction; Loading Loading @@ -67,7 +68,7 @@ class MagnificationModeSwitch { private final int mTapTimeout = ViewConfiguration.getTapTimeout(); private final int mTouchSlop; private int mMagnificationMode = Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN; private final WindowManager.LayoutParams mParams; private final LayoutParams mParams; private boolean mIsVisible = false; MagnificationModeSwitch(Context context) { Loading @@ -80,7 +81,7 @@ class MagnificationModeSwitch { mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mWindowManager = (WindowManager) mContext.getSystemService( Context.WINDOW_SERVICE); mParams = createLayoutParams(); mParams = createLayoutParams(context); mImageView = imageView; mTouchSlop = ViewConfiguration.get(mContext).getScaledTouchSlop(); applyResourcesValues(); Loading Loading @@ -221,11 +222,22 @@ class MagnificationModeSwitch { } void onConfigurationChanged(int configDiff) { if ((configDiff & ActivityInfo.CONFIG_DENSITY) == 0) { return; } if ((configDiff & ActivityInfo.CONFIG_DENSITY) != 0) { applyResourcesValues(); mImageView.setImageResource(getIconResId(mMagnificationMode)); return; } if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { updateAccessibilityWindowTitle(); return; } } private void updateAccessibilityWindowTitle() { mParams.accessibilityTitle = getAccessibilityWindowTitle(mContext); if (mIsVisible) { mWindowManager.updateViewLayout(mImageView, mParams); } } private void toggleMagnificationMode() { Loading Loading @@ -261,14 +273,19 @@ class MagnificationModeSwitch { : R.drawable.ic_open_in_new_fullscreen; } private static WindowManager.LayoutParams createLayoutParams() { final WindowManager.LayoutParams params = new WindowManager.LayoutParams( WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, private static LayoutParams createLayoutParams(Context context) { final LayoutParams params = new LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT); params.gravity = Gravity.BOTTOM | Gravity.RIGHT; params.accessibilityTitle = getAccessibilityWindowTitle(context); return params; } private static String getAccessibilityWindowTitle(Context context) { return context.getString(com.android.internal.R.string.android_system_label); } }
packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java +2 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,8 @@ public class WindowMagnification extends SystemUI implements WindowMagnifierCall CommandQueue.Callbacks { private static final String TAG = "WindowMagnification"; private static final int CONFIG_MASK = ActivityInfo.CONFIG_DENSITY | ActivityInfo.CONFIG_ORIENTATION; ActivityInfo.CONFIG_DENSITY | ActivityInfo.CONFIG_ORIENTATION | ActivityInfo.CONFIG_LOCALE; @VisibleForTesting protected WindowMagnificationAnimationController mWindowMagnificationAnimationController; Loading
packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java +24 −10 Original line number Diff line number Diff line Loading @@ -16,7 +16,7 @@ package com.android.systemui.accessibility; import static android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; import static android.view.WindowManager.LayoutParams; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_2BUTTON; import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL; Loading Loading @@ -254,9 +254,18 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } } else if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { onRotate(); } else if ((configDiff & ActivityInfo.CONFIG_LOCALE) != 0) { updateAccessibilityWindowTitleIfNeeded(); } } private void updateAccessibilityWindowTitleIfNeeded() { if (!isWindowVisible()) return; LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); params.accessibilityTitle = getAccessibilityWindowTitle(); mWm.updateViewLayout(mMirrorView, params); } /** Handles MirrorWindow position when the navigation bar mode changed. */ public void onNavigationModeChanged(int mode) { mNavBarMode = mode; Loading Loading @@ -290,8 +299,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return; } // The rect of MirrorView is going to be transformed. WindowManager.LayoutParams params = (WindowManager.LayoutParams) mMirrorView.getLayoutParams(); LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); mTmpRect.set(params.x, params.y, params.x + params.width, params.y + params.height); final RectF transformedRect = new RectF(mTmpRect); matrix.mapRect(transformedRect); Loading @@ -313,17 +322,18 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold int windowWidth = mMagnificationFrame.width() + 2 * mMirrorSurfaceMargin; int windowHeight = mMagnificationFrame.height() + 2 * mMirrorSurfaceMargin; WindowManager.LayoutParams params = new WindowManager.LayoutParams( LayoutParams params = new LayoutParams( windowWidth, windowHeight, WindowManager.LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, LayoutParams.TYPE_ACCESSIBILITY_MAGNIFICATION_OVERLAY, LayoutParams.FLAG_NOT_TOUCH_MODAL | LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSPARENT); params.gravity = Gravity.TOP | Gravity.LEFT; params.x = mMagnificationFrame.left - mMirrorSurfaceMargin; params.y = mMagnificationFrame.top - mMirrorSurfaceMargin; params.layoutInDisplayCutoutMode = LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; params.layoutInDisplayCutoutMode = LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES; params.setTitle(mContext.getString(R.string.magnification_window_title)); params.accessibilityTitle = getAccessibilityWindowTitle(); mMirrorView = LayoutInflater.from(mContext).inflate(R.layout.window_magnifier_view, null); mMirrorSurfaceView = mMirrorView.findViewById(R.id.surface_view); Loading Loading @@ -369,6 +379,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return regionInsideDragBorder; } private String getAccessibilityWindowTitle() { return mResources.getString(com.android.internal.R.string.android_system_label); } private void showControls() { if (mMirrorWindowControl != null) { mMirrorWindowControl.showControl(); Loading Loading @@ -432,8 +446,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } final int maxMirrorViewX = mDisplaySize.x - mMirrorView.getWidth(); final int maxMirrorViewY = mDisplaySize.y - mMirrorView.getHeight() - mNavGestureHeight; WindowManager.LayoutParams params = (WindowManager.LayoutParams) mMirrorView.getLayoutParams(); LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); params.x = mMagnificationFrame.left - mMirrorSurfaceMargin; params.y = mMagnificationFrame.top - mMirrorSurfaceMargin; // If nav bar mode supports swipe-up gesture, the Y position of mirror view should not Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationModeSwitchTest.java +27 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,33 @@ public class MagnificationModeSwitchTest extends SysuiTestCase { assertShowFadingAnimation(FADE_OUT_ALPHA); } @Test public void showButton_hasAccessibilityWindowTitle() { mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_WINDOW); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).addView(eq(mSpyImageView), paramsArgumentCaptor.capture()); assertEquals(getContext().getResources().getString( com.android.internal.R.string.android_system_label), paramsArgumentCaptor.getValue().accessibilityTitle); } @Test public void onLocaleChanged_buttonIsShowing_updateA11yWindowTitle() { final String newA11yWindowTitle = "new a11y window title"; mMagnificationModeSwitch.showButton(ACCESSIBILITY_MAGNIFICATION_MODE_FULLSCREEN); getContext().getOrCreateTestableResources().addOverride( com.android.internal.R.string.android_system_label, newA11yWindowTitle); mMagnificationModeSwitch.onConfigurationChanged(ActivityInfo.CONFIG_LOCALE); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).updateViewLayout(eq(mSpyImageView), paramsArgumentCaptor.capture()); assertEquals(newA11yWindowTitle, paramsArgumentCaptor.getValue().accessibilityTitle); } private void assertModeUnchanged(int expectedMode) { final int actualMode = Settings.Secure.getInt(mContext.getContentResolver(), Settings.Secure.ACCESSIBILITY_MAGNIFICATION_MODE, 0); Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/WindowMagnificationControllerTest.java +39 −3 Original line number Diff line number Diff line Loading @@ -41,6 +41,7 @@ import android.content.pm.ActivityInfo; import android.content.res.Resources; import android.os.Handler; import android.testing.AndroidTestingRunner; import android.testing.TestableResources; import android.view.Display; import android.view.Surface; import android.view.SurfaceControl; Loading Loading @@ -114,8 +115,7 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { when(mTransaction.remove(any())).thenReturn(mTransaction); when(mTransaction.setGeometry(any(), any(), any(), anyInt())).thenReturn(mTransaction); mResources = Mockito.spy(mContext.getResources()); when(mContext.getResources()).thenReturn(mResources); mResources = getContext().getOrCreateTestableResources().getResources(); mWindowMagnificationController = new WindowMagnificationController(mContext, mHandler, mSfVsyncFrameProvider, mMirrorWindowControl, mTransaction, mWindowMagnifierCallback); Loading Loading @@ -222,7 +222,6 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { assertEquals(Surface.ROTATION_90, mWindowMagnificationController.mRotation); } @Test public void onDensityChanged_enabled_updateDimensionsAndResetWindowMagnification() { mInstrumentation.runOnMainSync(() -> { Loading Loading @@ -310,4 +309,41 @@ public class WindowMagnificationControllerTest extends SysuiTestCase { verify(mWindowManager).updateViewLayout(eq(mMirrorView), any()); } @Test public void enableWindowMagnification_hasA11yWindowTitle() { mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN); }); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).addView(eq(mMirrorView), paramsArgumentCaptor.capture()); assertEquals(getContext().getResources().getString( com.android.internal.R.string.android_system_label), paramsArgumentCaptor.getValue().accessibilityTitle); } @Test public void onLocaleChanged_enabled_updateA11yWindowTitle() { final String newA11yWindowTitle = "new a11y window title"; mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.enableWindowMagnification(Float.NaN, Float.NaN, Float.NaN); }); final TestableResources testableResources = getContext().getOrCreateTestableResources(); testableResources.addOverride(com.android.internal.R.string.android_system_label, newA11yWindowTitle); when(mContext.getResources()).thenReturn(testableResources.getResources()); mInstrumentation.runOnMainSync(() -> { mWindowMagnificationController.onConfigurationChanged(ActivityInfo.CONFIG_LOCALE); }); ArgumentCaptor<WindowManager.LayoutParams> paramsArgumentCaptor = ArgumentCaptor.forClass( WindowManager.LayoutParams.class); verify(mWindowManager).updateViewLayout(eq(mMirrorView), paramsArgumentCaptor.capture()); assertEquals(newA11yWindowTitle, paramsArgumentCaptor.getValue().accessibilityTitle); } }