summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnificationConnectionImpl.java
Commit message (Collapse)AuthorAgeFilesLines
* Disables tracking focus on move a11y actions.Daniel Hsieh2022-03-011-2/+2
| | | | | | | | | | | | | | After a user perform a11y action, namely moving up/down/left/right, we have to disable tracking focus functionality. We refactor #onDrag to a more general term #onMove to cover any move action which has to disable tracking focus functionality. Bug: 218935435 Test: atest WindowMagnificationTest atest WindowMagnificationControllerTest atest WindowMagnificationManagerTest Change-Id: I578b301645a08c71e874fe2f4fcf2557202abefd
* Adds moveWindowMagnifierToPosition methodDaniel Hsieh2022-03-011-0/+7
| | | | | | | | | | | | | | | | | | | | | | 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 following typing foucs in window mode [2/n].Daniel Hsieh2022-01-051-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There are 3 milestones in this feature. 1. Refactor the callbacks for Accessibility in WindowManagerInternal. 2. Implement this feature in such new architecture. 3. Implement the setting choice in preference page. This CL is for the 2nd milestone. We move the window magnification to the typing focus' center position based on the condition of whether a user takes control or not. We only make a movement when the control is not taken by a user or we don't preform the movement for the window magnification. There are 2 methods for a user to take the control. 1. A user use 1 finger to drag the window magnification. 2. A user use 2 finger to drag the window magnification. There is 1 method for a user to release the control. 1. When IME is shown, the control would be released. So, we can decide whether we should make a movement to typing focus given the condition of who take the control. Bug: 194668976 Test: atest MagnificationControllerTest atest WindowMagnificationTest atest WindowMagnificationControllerTest atest WindowMagnificationManagerTest Change-Id: I145f893d412b74c20afe1685449370d1dba99961
* Support triple-tap and hold for window magnification.Daniel Hsieh2021-11-261-3/+5
| | | | | | | | | | | | | | | | | | | 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
* Support individual magnification mode for each displayryanlwlin2021-11-101-0/+10
| | | | | | | | | | | | | Currently we only have a globale magnification mode which is stored in settings. It ends up the mode is shared between multi-displays. To provide better experience, we store the mode for each none-default display until the device reboot, and the default mode is full-screen. Test: atest com.android.server.accessibility atest com.android.systemui.accessibility Bug: 194667380 Change-Id: I099e1ee945938aac07cc079f68bccbc745d40b08
* Updates magnification button after an accessibility action is performedmincheli2021-04-071-0/+10
| | | | | | | | | | | | | | | | | | To switch magnification mode, a user has to click the magnifcation button UI. However magnification button UI is visible only when there is an user touch interaction or the magnification shortcut triggered event. However some a11y services like switch-access or voice-access can only interact with magnification UI by performing accessibility actions. To make magnification button showing and able to interact with a user, we also trigger updating magnification button UI when an accessibility action is performed. Bug: 179442890 Test: atest WindowMagnificationControllerTest; atest WindowMagnificationTest;atest MagnificationControllerTest;atest WindowMagnificationManagerTest Change-Id: I8d762096c9cb6a4421d024a7a1af99b3a48a3462
* Moves WindowMagnificationConnectionImpl.class outside of WindowMagnificationmincheli2020-11-091-0/+123
Bug: 144080869 Test: none Change-Id: Id53cbdce4cec4a006978fbb93ea1b2635b8a56f0