summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationAnimationController.java
Commit message (Collapse)AuthorAgeFilesLines
* Adds moveWindowMagnifierToPosition methodDaniel Hsieh2022-03-011-5/+34
| | | | | | | | | | | | | | | | | | | | | | For following typing focus feature, we add a moveWindowMagnifierToPosition method for a window magnifier to move it to the center of onRectangleOnScreenRequested. Apart from calling this method to fulfill movement functionality, we can separate the movement from calling enableWindowMagnification which is a temporary replacement for movement functionality. Therefore, we can distinguish whether the it is enabled by the first time or the further movement behavior. It would help us differentiate the condition whether we should reset the following typing focus to on/off state. (b/216394179) Bug: 219654280 Test: atest IWindowMagnificationConnectionTest atest WindowMagnificationTest atest WindowMagnificationAnimationControllerTest atest WindowMagnificationControllerTest atest WindowMagnificationConnectionWrapperTest atest WindowMagnificationManagerTest Change-Id: Iaac3ca6868d948571c1aee54a5f122c9697059d8
* Support triple-tap and hold for window magnification.Daniel Hsieh2021-11-261-4/+41
| | | | | | | | | | | | | | | | | | | 1. Detect triple-tap and hold gesture. 2. Magnify the content at a user's tap location. 3. Offset the frame to the top-left position about a half of frame size 4. The definition and the implementation of WindowMagnificationController's getCenterX and getCenterY are different due to these patches. We need to correct them. (ref: b/207812394) Bug: 202465806 Test: atest IWindowMagnificationConnectionTest atest MagnificationControllerTest atest WindowMagnificationAnimationControllerTest (@Ignore) atest WindowMagnificationConnectionWrapperTest atest WindowMagnificationControllerTest atest WindowMagnificationGestureHandlerTest atest WindowMagnificationManagerTest Change-Id: I59bf8a3e35e42c963de1698bec915a4a590e5c5f
* Refactoring that make WindowMagnificationController has ↵mincheli2021-11-171-46/+26
| | | | | | | | | | | | | | | | | | | | | | | WindowMagnificationAnimationController It reverses the relationship between WindowMagnificationAnimationController and WindowMagnificationController to simplify the further changes. 1. WindowMagnificationController has WindowMagnificationAnimationController instance. WindowMagnificationController is able to know if window magnifier is animating or not. If it is animating, the setScale() action or moveMagnifier() will be interrupted. 2. ControllerSupplier supplies WindowMagnificationController in WindowMagnification.class. Bug: 206734640 Test: atest IWindowMagnificationConnectionTest, atest WindowMagnificationAnimationControllerTest, atest WindowMagnificationControllerTest, atest WindowMagnificationTest, Change-Id: Ibe3471dc99d1aed506b3fd04d12131321d82a07a
* Support enable window magnification without animationryanlwlin2021-11-111-2/+20
| | | | | | | | | | | | | | | To extend the magnification API to window magnification mode, we support enabling the window magnification without animation. Besides, we also disable the window magnification if the given scale is less than or equal to 1.0f. For the screen off scenario, we change to disable the window magnification without animation. Bug: 204844820 Test: atest com.android.systemui.accessibility atest com.android.server.accessibility.magnification Change-Id: I8a35492776f08ecee353f035a94a16fec8e61218
* Fix hard dragging the window magnification from the bottom of the screenryanlwlin2021-05-111-0/+9
| | | | | | | | | | | | | | | | | | | | The window magnifier is hard to drag when it is at the bottom of the screen. This is due to that launcher is detecting swipe-up system gesture. To fix it, we set the system ui state flag to true when the window is overlapped with the gesture detection area. We also update the gesture dection area via OnApplyWindowInsetsListener Once the area is changed, we will update the flag again if necessary. In the testing part, we use real WindowManager to verify the functionality. Bug: 179648683 Test: atest com.android.systemui.accessibility manually test and use the following command to check the flag adb shell dumpsys activity service TouchInteractionService Change-Id: Ia09bd26b3eb164790614c173594d997d45f4ecdc
* Change context to WindowContext for non-activity windowryanlwlin2021-03-181-2/+3
| | | | | | | | | | | Currently the window bounds of an non-acitivty window depends on the display area bounds. We need to change to this windowContext to get the correct windowmetrics for the further display area feature support. Bug: 180054792 Test: atest com.android.systemui.accessibility Change-Id: I0f995f745e7f6cb4ac3616d04c1a65e2e69b8043
* Change magnification animation callback (2/2)ryanlwlin2020-09-151-17/+31
| | | | | | | | | | We send callback when the animation is canceled/reversed due to the new quest while animating. Bug: 161669184 Test: atest com.android.systemui.accessibility atest com.android.server.accessibility.magnification Change-Id: Iecd5e1bcf0ac097d4271ff0d277872b1dab0c63d
* Add callback for enabling/disabling window magnificationryanlwlin2020-08-261-22/+58
| | | | | | | | | | | | To support switching magnification mode, we add callback to know when the animation is finished. We only invoke the newest callback when the animation is end successfully or the spec didn't change Bug: 161669184 Test: atest com.android.systemui.accessibility atest com.android.server.accessibility.magnification Enable window magnification to see if it works normally Change-Id: I34ce39d133a000964d1089946b7bcf510a618b40
* Add WindowMagnificationAnimationController for animationryanlwlin2020-08-071-0/+272
| | | | | | | | | | | | | | | | | WindowMagnificationAnimationController provides same functionality but it runs the animation while enabling/disabling. This new patch also fixs NPE excetion that happens when device is in rotation but mirrorWindow is invisible. Bug: 161669184 163026794 163035371 Test: atest com.android.systemui.accessibility atest WindowMagnificationGestureHandlerTest manual Test: enable window magnification to see it 2. close mirroe window and rotate the device Change-Id: I4531f5c96ea4b91b287cc8c5ffc4c98fc9611dd5
* Revert "Add WindowMagnificationBridge for animation"Greg Kaiser2020-08-061-272/+0
| | | | | | | | | | This reverts commit 1e14e16ac8953e58e03fb6f5648ddf5f20dcb125. Reason for revert: Breaks fullscreen YouTube playback on wembley Bug: 163035371 Test: Locally reverted, and now YouTube can play fullscreen on a wembley Change-Id: I649d651893862b270cb1df14633490748a54bda1
* Add WindowMagnificationBridge for animationryanlwlin2020-08-041-0/+272
WindowMagnificationBridge provides same functionality but it runs the animation while enabling/disabling. Bug: 161669184 Test: atest com.android.systemui.accessibility atest WindowMagnificationGestureHandlerTest manual Test: enable window magnification to see it Change-Id: Ifdedff335e856ba12209883924032aa545d04738