Loading packages/SystemUI/aconfig/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ flag { } } flag { name: "update_window_magnifier_bottom_boundary_with_mouse" namespace: "accessibility" description: "Update the window magnification behavior with bottom gesture insets with mouse." bug: "419389153" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "hearing_devices_dialog_related_tools" namespace: "accessibility" Loading packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java +12 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.annotation.Nullable; import android.content.Context; import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.Handler; import android.os.Looper; import android.os.Message; Loading Loading @@ -98,11 +99,13 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks private final SysUiState mSysUiState; private final SecureSettings mSecureSettings; private final WindowManagerProvider mWindowManagerProvider; private final InputManager mInputManager; WindowMagnificationControllerSupplier(Context context, Handler handler, WindowMagnifierCallback windowMagnifierCallback, DisplayManager displayManager, SysUiState sysUiState, SecureSettings secureSettings, WindowManagerProvider windowManagerProvider) { SecureSettings secureSettings, WindowManagerProvider windowManagerProvider, InputManager inputManager) { super(displayManager); mContext = context; mHandler = handler; Loading @@ -110,6 +113,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mSysUiState = sysUiState; mSecureSettings = secureSettings; mWindowManagerProvider = windowManagerProvider; mInputManager = inputManager; } @Override Loading @@ -135,7 +139,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mSysUiState, mSecureSettings, scvhSupplier, windowManager); windowManager, mInputManager); } } Loading Loading @@ -233,11 +238,11 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks SecureSettings secureSettings, DisplayTracker displayTracker, DisplayManager displayManager, AccessibilityLogger a11yLogger, IWindowManager iWindowManager, AccessibilityManager accessibilityManager, WindowManagerProvider windowManagerProvider) { WindowManagerProvider windowManagerProvider, InputManager inputManager) { this(context, mainHandler.getLooper(), executor, commandQueue, modeSwitchesController, sysUiState, launcherProxyService, secureSettings, displayTracker, displayManager, a11yLogger, iWindowManager, accessibilityManager, windowManagerProvider); windowManagerProvider, inputManager); } @VisibleForTesting Loading @@ -248,7 +253,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks DisplayManager displayManager, AccessibilityLogger a11yLogger, IWindowManager iWindowManager, AccessibilityManager accessibilityManager, WindowManagerProvider windowManagerProvider) { WindowManagerProvider windowManagerProvider, InputManager inputManager) { mHandler = new Handler(looper) { @Override public void handleMessage(@NonNull Message msg) { Loading @@ -267,7 +273,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mA11yLogger = a11yLogger; mWindowMagnificationControllerSupplier = new WindowMagnificationControllerSupplier(context, mHandler, mWindowMagnifierCallback, displayManager, sysUiState, secureSettings, windowManagerProvider); displayManager, sysUiState, secureSettings, windowManagerProvider, inputManager); mFullscreenMagnificationControllerSupplier = new FullscreenMagnificationControllerSupplier( context, displayManager, mHandler, mExecutor, iWindowManager, windowManagerProvider); Loading packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java +69 −21 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.hardware.input.InputManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; Loading @@ -56,6 +57,7 @@ import android.util.SparseArray; import android.util.TypedValue; import android.view.Display; import android.view.Gravity; import android.view.InputDevice; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.Surface; Loading Loading @@ -248,6 +250,42 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold @Nullable private final MirrorWindowControl mMirrorWindowControl; private final InputManager mInputManager; private boolean mIsMouseOrKeyboardConnected = false; private final InputManager.InputDeviceListener mInputDeviceListener = new InputManager.InputDeviceListener() { @Override public void onInputDeviceAdded(int deviceId) { onInputDeviceChanged(deviceId); } @Override public void onInputDeviceRemoved(int deviceId) { onInputDeviceChanged(deviceId); } @Override public void onInputDeviceChanged(int deviceId) { final boolean wasConnected = mIsMouseOrKeyboardConnected; mIsMouseOrKeyboardConnected = false; for (final int id : mInputManager.getInputDeviceIds()) { final InputDevice device = mInputManager.getInputDevice(id); if (device == null || !device.isEnabled() || device.isVirtual()) { continue; } if (device.supportsSource(InputDevice.SOURCE_MOUSE) || device.isFullKeyboard()) { mIsMouseOrKeyboardConnected = true; break; } } if (wasConnected != mIsMouseOrKeyboardConnected) { // mIsMouseOrKeyboardConnected affects how to handle insets. onWindowInsetChanged(); } } }; WindowMagnificationController( @UiContext Context context, @NonNull Handler handler, Loading @@ -258,7 +296,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold SysUiState sysUiState, SecureSettings secureSettings, Supplier<SurfaceControlViewHost> scvhSupplier, WindowManager windowManager) { WindowManager windowManager, InputManager inputManager) { mContext = context; mHandler = handler; mAnimationController = animationController; Loading @@ -269,6 +308,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold mScvhSupplier = scvhSupplier; mConfiguration = new Configuration(context.getResources().getConfiguration()); mWindowMagnificationFrameSizePrefs = new WindowMagnificationFrameSizePrefs(mContext); mInputManager = inputManager; final Display display = mContext.getDisplay(); mDisplayId = mContext.getDisplayId(); Loading Loading @@ -387,10 +427,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold final WindowMetrics windowMetrics = mWm.getCurrentWindowMetrics(); final Insets insets = windowMetrics.getWindowInsets().getInsets(systemGestures()); final int gestureTop; if (Flags.updateWindowMagnifierBottomBoundary()) { gestureTop = windowMetrics.getBounds().bottom - insets.bottom; } else { if (canOverlapWithBottomGestureInsets()) { gestureTop = insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1; } else { gestureTop = windowMetrics.getBounds().bottom - insets.bottom; } if (gestureTop != mSystemGestureTop) { mSystemGestureTop = gestureTop; Loading Loading @@ -470,6 +510,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return; } if (Flags.updateWindowMagnifierBottomBoundaryWithMouse()) { mInputManager.unregisterInputDeviceListener(mInputDeviceListener); } if (mMirrorSurface != null) { mTransaction.remove(mMirrorSurface).apply(); mMirrorSurface = null; Loading Loading @@ -534,9 +578,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold if (configDiff == 0) { return; } if (Flags.updateWindowMagnifierBottomBoundary()) { updateSystemGestureInsetsTop(); } if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { onRotate(); } Loading Loading @@ -714,14 +756,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } private void onWindowInsetChanged() { if (Flags.updateWindowMagnifierBottomBoundary()) { updateSystemGestureInsetsTop(); } else { if (updateSystemGestureInsetsTop()) { updateSystemUIStateIfNeeded(); } } } private void applyTouchableRegion() { // Sometimes this can get posted and run after deleteWindowMagnification() is called. Loading Loading @@ -985,9 +1023,9 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold final int x = MathUtils.clamp(mMagnificationFrame.left - mMirrorSurfaceMargin, minX, maxX); final int minY = -mOuterBorderSize; final int maxY = Flags.updateWindowMagnifierBottomBoundary() ? mSystemGestureTop - height + mOuterBorderSize : mWindowBounds.bottom - height + mOuterBorderSize; final int maxY = canOverlapWithBottomGestureInsets() ? mWindowBounds.bottom - height + mOuterBorderSize : mSystemGestureTop - height + mOuterBorderSize; final int y = MathUtils.clamp(mMagnificationFrame.top - mMirrorSurfaceMargin, minY, maxY); if (computeWindowSize) { LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); Loading Loading @@ -1143,11 +1181,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } private void updateSysUIState(boolean force) { if (Flags.updateWindowMagnifierBottomBoundary()) { return; } final boolean overlap = isActivated() && mSystemGestureTop > 0 final boolean overlap = isActivated() && canOverlapWithBottomGestureInsets() && mSystemGestureTop > 0 && mMirrorViewBounds.bottom > mSystemGestureTop; if (force || overlap != mOverlapWithGestureInsets) { mOverlapWithGestureInsets = overlap; Loading Loading @@ -1274,6 +1309,11 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold createWindowlessMirrorWindow(); showControls(); applyResourcesValues(); if (Flags.updateWindowMagnifierBottomBoundaryWithMouse()) { mInputManager.registerInputDeviceListener(mInputDeviceListener, mHandler); mInputDeviceListener.onInputDeviceChanged(-1); } } else { modifyWindowMagnification(false); } Loading Loading @@ -1634,9 +1674,17 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold scaleAnimator.start(); } private boolean canOverlapWithBottomGestureInsets() { return !Flags.updateWindowMagnifierBottomBoundary() || (Flags.updateWindowMagnifierBottomBoundaryWithMouse() && mIsMouseOrKeyboardConnected); } public void dump(PrintWriter pw) { pw.println("WindowMagnificationController (displayId=" + mDisplayId + "):"); pw.println(" mOverlapWithGestureInsets:" + mOverlapWithGestureInsets); pw.println(" canOverlapWithBottomGestureInsets:" + canOverlapWithBottomGestureInsets()); pw.println(" mScale:" + mScale); pw.println(" mWindowBounds:" + mWindowBounds); pw.println(" mMirrorViewBounds:" + (isActivated() ? mMirrorViewBounds : "empty")); Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/IMagnificationConnectionTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.RemoteException; import android.provider.Settings; import android.testing.TestableLooper; Loading Loading @@ -95,6 +96,8 @@ public class IMagnificationConnectionTest extends SysuiTestCase { private IWindowManager mIWindowManager; @Mock private WindowManagerProvider mWindowManagerProvider; @Mock private InputManager mInputManager; private IMagnificationConnection mIMagnificationConnection; private MagnificationImpl mMagnification; Loading @@ -116,7 +119,8 @@ public class IMagnificationConnectionTest extends SysuiTestCase { mTestableLooper.getLooper(), mContext.getMainExecutor(), mCommandQueue, mModeSwitchesController, mSysUiState, mLauncherProxyService, mSecureSettings, mDisplayTracker, getContext().getSystemService(DisplayManager.class), mA11yLogger, mIWindowManager, mAccessibilityManager, mWindowManagerProvider); mA11yLogger, mIWindowManager, mAccessibilityManager, mWindowManagerProvider, mInputManager); mMagnification.mWindowMagnificationControllerSupplier = new FakeWindowMagnificationControllerSupplier( mContext.getSystemService(DisplayManager.class)); Loading packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.RemoteException; import android.testing.TestableLooper; import android.view.Display; Loading Loading @@ -99,6 +100,8 @@ public class MagnificationTest extends SysuiTestCase { private IWindowManager mIWindowManager; @Mock private WindowManagerProvider mWindowManagerProvider; @Mock private InputManager mInputManager; @Before public void setUp() throws Exception { Loading Loading @@ -132,7 +135,8 @@ public class MagnificationTest extends SysuiTestCase { mCommandQueue, mModeSwitchesController, mSysUiState, mLauncherProxyService, mSecureSettings, mDisplayTracker, getContext().getSystemService(DisplayManager.class), mA11yLogger, mIWindowManager, getContext().getSystemService(AccessibilityManager.class), mWindowManagerProvider); getContext().getSystemService(AccessibilityManager.class), mWindowManagerProvider, mInputManager); mMagnification.mWindowMagnificationControllerSupplier = new FakeControllerSupplier( mContext.getSystemService(DisplayManager.class), mWindowMagnificationController); mMagnification.mMagnificationSettingsSupplier = new FakeSettingsSupplier( Loading Loading
packages/SystemUI/aconfig/accessibility.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -85,6 +85,16 @@ flag { } } flag { name: "update_window_magnifier_bottom_boundary_with_mouse" namespace: "accessibility" description: "Update the window magnification behavior with bottom gesture insets with mouse." bug: "419389153" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "hearing_devices_dialog_related_tools" namespace: "accessibility" Loading
packages/SystemUI/src/com/android/systemui/accessibility/MagnificationImpl.java +12 −6 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import android.annotation.Nullable; import android.content.Context; import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.Handler; import android.os.Looper; import android.os.Message; Loading Loading @@ -98,11 +99,13 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks private final SysUiState mSysUiState; private final SecureSettings mSecureSettings; private final WindowManagerProvider mWindowManagerProvider; private final InputManager mInputManager; WindowMagnificationControllerSupplier(Context context, Handler handler, WindowMagnifierCallback windowMagnifierCallback, DisplayManager displayManager, SysUiState sysUiState, SecureSettings secureSettings, WindowManagerProvider windowManagerProvider) { SecureSettings secureSettings, WindowManagerProvider windowManagerProvider, InputManager inputManager) { super(displayManager); mContext = context; mHandler = handler; Loading @@ -110,6 +113,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mSysUiState = sysUiState; mSecureSettings = secureSettings; mWindowManagerProvider = windowManagerProvider; mInputManager = inputManager; } @Override Loading @@ -135,7 +139,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mSysUiState, mSecureSettings, scvhSupplier, windowManager); windowManager, mInputManager); } } Loading Loading @@ -233,11 +238,11 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks SecureSettings secureSettings, DisplayTracker displayTracker, DisplayManager displayManager, AccessibilityLogger a11yLogger, IWindowManager iWindowManager, AccessibilityManager accessibilityManager, WindowManagerProvider windowManagerProvider) { WindowManagerProvider windowManagerProvider, InputManager inputManager) { this(context, mainHandler.getLooper(), executor, commandQueue, modeSwitchesController, sysUiState, launcherProxyService, secureSettings, displayTracker, displayManager, a11yLogger, iWindowManager, accessibilityManager, windowManagerProvider); windowManagerProvider, inputManager); } @VisibleForTesting Loading @@ -248,7 +253,8 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks DisplayManager displayManager, AccessibilityLogger a11yLogger, IWindowManager iWindowManager, AccessibilityManager accessibilityManager, WindowManagerProvider windowManagerProvider) { WindowManagerProvider windowManagerProvider, InputManager inputManager) { mHandler = new Handler(looper) { @Override public void handleMessage(@NonNull Message msg) { Loading @@ -267,7 +273,7 @@ public class MagnificationImpl implements Magnification, CommandQueue.Callbacks mA11yLogger = a11yLogger; mWindowMagnificationControllerSupplier = new WindowMagnificationControllerSupplier(context, mHandler, mWindowMagnifierCallback, displayManager, sysUiState, secureSettings, windowManagerProvider); displayManager, sysUiState, secureSettings, windowManagerProvider, inputManager); mFullscreenMagnificationControllerSupplier = new FullscreenMagnificationControllerSupplier( context, displayManager, mHandler, mExecutor, iWindowManager, windowManagerProvider); Loading
packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationController.java +69 −21 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Region; import android.hardware.input.InputManager; import android.os.Build; import android.os.Bundle; import android.os.Handler; Loading @@ -56,6 +57,7 @@ import android.util.SparseArray; import android.util.TypedValue; import android.view.Display; import android.view.Gravity; import android.view.InputDevice; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.Surface; Loading Loading @@ -248,6 +250,42 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold @Nullable private final MirrorWindowControl mMirrorWindowControl; private final InputManager mInputManager; private boolean mIsMouseOrKeyboardConnected = false; private final InputManager.InputDeviceListener mInputDeviceListener = new InputManager.InputDeviceListener() { @Override public void onInputDeviceAdded(int deviceId) { onInputDeviceChanged(deviceId); } @Override public void onInputDeviceRemoved(int deviceId) { onInputDeviceChanged(deviceId); } @Override public void onInputDeviceChanged(int deviceId) { final boolean wasConnected = mIsMouseOrKeyboardConnected; mIsMouseOrKeyboardConnected = false; for (final int id : mInputManager.getInputDeviceIds()) { final InputDevice device = mInputManager.getInputDevice(id); if (device == null || !device.isEnabled() || device.isVirtual()) { continue; } if (device.supportsSource(InputDevice.SOURCE_MOUSE) || device.isFullKeyboard()) { mIsMouseOrKeyboardConnected = true; break; } } if (wasConnected != mIsMouseOrKeyboardConnected) { // mIsMouseOrKeyboardConnected affects how to handle insets. onWindowInsetChanged(); } } }; WindowMagnificationController( @UiContext Context context, @NonNull Handler handler, Loading @@ -258,7 +296,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold SysUiState sysUiState, SecureSettings secureSettings, Supplier<SurfaceControlViewHost> scvhSupplier, WindowManager windowManager) { WindowManager windowManager, InputManager inputManager) { mContext = context; mHandler = handler; mAnimationController = animationController; Loading @@ -269,6 +308,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold mScvhSupplier = scvhSupplier; mConfiguration = new Configuration(context.getResources().getConfiguration()); mWindowMagnificationFrameSizePrefs = new WindowMagnificationFrameSizePrefs(mContext); mInputManager = inputManager; final Display display = mContext.getDisplay(); mDisplayId = mContext.getDisplayId(); Loading Loading @@ -387,10 +427,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold final WindowMetrics windowMetrics = mWm.getCurrentWindowMetrics(); final Insets insets = windowMetrics.getWindowInsets().getInsets(systemGestures()); final int gestureTop; if (Flags.updateWindowMagnifierBottomBoundary()) { gestureTop = windowMetrics.getBounds().bottom - insets.bottom; } else { if (canOverlapWithBottomGestureInsets()) { gestureTop = insets.bottom != 0 ? windowMetrics.getBounds().bottom - insets.bottom : -1; } else { gestureTop = windowMetrics.getBounds().bottom - insets.bottom; } if (gestureTop != mSystemGestureTop) { mSystemGestureTop = gestureTop; Loading Loading @@ -470,6 +510,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold return; } if (Flags.updateWindowMagnifierBottomBoundaryWithMouse()) { mInputManager.unregisterInputDeviceListener(mInputDeviceListener); } if (mMirrorSurface != null) { mTransaction.remove(mMirrorSurface).apply(); mMirrorSurface = null; Loading Loading @@ -534,9 +578,7 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold if (configDiff == 0) { return; } if (Flags.updateWindowMagnifierBottomBoundary()) { updateSystemGestureInsetsTop(); } if ((configDiff & ActivityInfo.CONFIG_ORIENTATION) != 0) { onRotate(); } Loading Loading @@ -714,14 +756,10 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } private void onWindowInsetChanged() { if (Flags.updateWindowMagnifierBottomBoundary()) { updateSystemGestureInsetsTop(); } else { if (updateSystemGestureInsetsTop()) { updateSystemUIStateIfNeeded(); } } } private void applyTouchableRegion() { // Sometimes this can get posted and run after deleteWindowMagnification() is called. Loading Loading @@ -985,9 +1023,9 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold final int x = MathUtils.clamp(mMagnificationFrame.left - mMirrorSurfaceMargin, minX, maxX); final int minY = -mOuterBorderSize; final int maxY = Flags.updateWindowMagnifierBottomBoundary() ? mSystemGestureTop - height + mOuterBorderSize : mWindowBounds.bottom - height + mOuterBorderSize; final int maxY = canOverlapWithBottomGestureInsets() ? mWindowBounds.bottom - height + mOuterBorderSize : mSystemGestureTop - height + mOuterBorderSize; final int y = MathUtils.clamp(mMagnificationFrame.top - mMirrorSurfaceMargin, minY, maxY); if (computeWindowSize) { LayoutParams params = (LayoutParams) mMirrorView.getLayoutParams(); Loading Loading @@ -1143,11 +1181,8 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold } private void updateSysUIState(boolean force) { if (Flags.updateWindowMagnifierBottomBoundary()) { return; } final boolean overlap = isActivated() && mSystemGestureTop > 0 final boolean overlap = isActivated() && canOverlapWithBottomGestureInsets() && mSystemGestureTop > 0 && mMirrorViewBounds.bottom > mSystemGestureTop; if (force || overlap != mOverlapWithGestureInsets) { mOverlapWithGestureInsets = overlap; Loading Loading @@ -1274,6 +1309,11 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold createWindowlessMirrorWindow(); showControls(); applyResourcesValues(); if (Flags.updateWindowMagnifierBottomBoundaryWithMouse()) { mInputManager.registerInputDeviceListener(mInputDeviceListener, mHandler); mInputDeviceListener.onInputDeviceChanged(-1); } } else { modifyWindowMagnification(false); } Loading Loading @@ -1634,9 +1674,17 @@ class WindowMagnificationController implements View.OnTouchListener, SurfaceHold scaleAnimator.start(); } private boolean canOverlapWithBottomGestureInsets() { return !Flags.updateWindowMagnifierBottomBoundary() || (Flags.updateWindowMagnifierBottomBoundaryWithMouse() && mIsMouseOrKeyboardConnected); } public void dump(PrintWriter pw) { pw.println("WindowMagnificationController (displayId=" + mDisplayId + "):"); pw.println(" mOverlapWithGestureInsets:" + mOverlapWithGestureInsets); pw.println(" canOverlapWithBottomGestureInsets:" + canOverlapWithBottomGestureInsets()); pw.println(" mScale:" + mScale); pw.println(" mWindowBounds:" + mWindowBounds); pw.println(" mMirrorViewBounds:" + (isActivated() ? mMirrorViewBounds : "empty")); Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/IMagnificationConnectionTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.RemoteException; import android.provider.Settings; import android.testing.TestableLooper; Loading Loading @@ -95,6 +96,8 @@ public class IMagnificationConnectionTest extends SysuiTestCase { private IWindowManager mIWindowManager; @Mock private WindowManagerProvider mWindowManagerProvider; @Mock private InputManager mInputManager; private IMagnificationConnection mIMagnificationConnection; private MagnificationImpl mMagnification; Loading @@ -116,7 +119,8 @@ public class IMagnificationConnectionTest extends SysuiTestCase { mTestableLooper.getLooper(), mContext.getMainExecutor(), mCommandQueue, mModeSwitchesController, mSysUiState, mLauncherProxyService, mSecureSettings, mDisplayTracker, getContext().getSystemService(DisplayManager.class), mA11yLogger, mIWindowManager, mAccessibilityManager, mWindowManagerProvider); mA11yLogger, mIWindowManager, mAccessibilityManager, mWindowManagerProvider, mInputManager); mMagnification.mWindowMagnificationControllerSupplier = new FakeWindowMagnificationControllerSupplier( mContext.getSystemService(DisplayManager.class)); Loading
packages/SystemUI/tests/src/com/android/systemui/accessibility/MagnificationTest.java +5 −1 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import static org.mockito.Mockito.when; import android.content.Context; import android.graphics.Rect; import android.hardware.display.DisplayManager; import android.hardware.input.InputManager; import android.os.RemoteException; import android.testing.TestableLooper; import android.view.Display; Loading Loading @@ -99,6 +100,8 @@ public class MagnificationTest extends SysuiTestCase { private IWindowManager mIWindowManager; @Mock private WindowManagerProvider mWindowManagerProvider; @Mock private InputManager mInputManager; @Before public void setUp() throws Exception { Loading Loading @@ -132,7 +135,8 @@ public class MagnificationTest extends SysuiTestCase { mCommandQueue, mModeSwitchesController, mSysUiState, mLauncherProxyService, mSecureSettings, mDisplayTracker, getContext().getSystemService(DisplayManager.class), mA11yLogger, mIWindowManager, getContext().getSystemService(AccessibilityManager.class), mWindowManagerProvider); getContext().getSystemService(AccessibilityManager.class), mWindowManagerProvider, mInputManager); mMagnification.mWindowMagnificationControllerSupplier = new FakeControllerSupplier( mContext.getSystemService(DisplayManager.class), mWindowMagnificationController); mMagnification.mMagnificationSettingsSupplier = new FakeSettingsSupplier( Loading