Part of the old swipe code, which was copied over to the new swipe detector, used GesturePoint objects because it needed to track the time of each entry in the gesture path. This is no longer necessary because we use handlers to cancel the gesture on a delay. This change makes the whole class use PointF which avoids allocating a new PointF for some subset of the GesturePoints during the gesture recognition process.
Bug: 136131815
Test: atest GestureManifoldTest AccessibilityGestureDetectorTest TouchExplorerTest
Change-Id: I1c89122d7f27b52a25e777667e34fec246d5c21f
Increasing test coverage.
In the process, found a bug in dispatching up events for
multiple fingers. It was sending an action_up for each
pointer rather than a pointer up.
Bug: 148690104
Test: atest TouchExplorerTest
Change-Id: I04353bd4ad222d6bc4096a62de48b1fe00363b3a
This matcher would detect following gestures when accessibility flag
flagRequestMultiFingerGestures enabled:
- 2-finger single tap
- 2-finger double tap
- 2-finger triple tap
- 3-finger single tap
- 3-finger double tap
- 3-finger triple tap
Bug: 142277684
Bug: 142276516
Bug: 136131815
Test: atest AccessibilityGestureDetectorTest TouchExplorerTest GestureManifoldTest
Change-Id: I0aa6e858520d0b36c81df6fe08fd86d7d0803d5a
When disabled, double tap and double tap and hold will be handled by the framework. Specifically, they will perform ACTION_CLICK and ACTION_LONG_CLICK on the item with accessibility focus.
Bug: 136131815
Test: atest GestureManifoldTest TouchExplorerTest AccessibilityGestureDetectorTest
Change-Id: I19f8f2650e383f136ae9f4d0423d86721c27265b
This is the first step to create another new window for status bar.
Small window => TYPE_STATUS_BAR: The bar on top of screen.
Large window => TYPE_NOTIFICATION_SHADE: Anything else.
Bug: 136993073
Test: build then flash
Test: atest WmTests SystemUITests
Test: atest RegisterStatusBarResultTest InsetsFlagsTest
Manual Test:
- Bouncer can show when leave showWhenLocked activity.
- StatusBar can show when comes HUN in fullscreen mode.
- StatusBar can play enter/leave animation in fullscreen mode.
- Able to drag notification panel when bubble/glow existing.
- Switch to market launcher, and run above tests.
- Drag notification panel from launcher several times and observe it
works fine.
Change-Id: Id9f72cd0e21f01b50d57f02ea60f97c6460926b7
AccessibilityButtonChooserActivity can't get the
extra value to display the corresponding dialog.
Test: manual test
Change-Id: I551416ba206170ca3f21a7ac9537592440c31444
To change the gesturehandler easily for different magnification mode,
we rename MagnificationGestureHandler to FullScreenMagnificationGestureHandler
and add a common class MagnificationGestureHandler. We will create
different MagnificationGestureHandler based on magnification mode.
Bug: 146400227
Test:FullScreenMagnificationGestureHandlerTest
Test: AccessibilityInputFilterTest.java
Change-Id: Ib7a45300a1f1323e1005b89694bb66932b22ab1b
This interface is used to interact between system UI and system
server for winodow magnification. When magnification mode is window
mode, system UI will set the connection to AccessibilityManagerService
to manipulate window magnification.
Bug: 146400227
Test: WindowMagnificationConnectionWrapperTest
Test: AccessibilityManagerTest
Test: WindowMagnificationManagerTest
Change-Id: I64b22eac3a7be2e1dbced0573988fe75ace921f6
Implementing the new API for A11y services to take the screenshot
of the specified display.
Bitmap takeScreenshot(int displayId)
1. The main codes is moved from the UiAutomationConnection class and
let the UiAutomation change to use this API.
2. Add a capability at metadata to check whether the A11y services could use this
API or not.
3. This API is a async one for A11y services, but is a sync one for
UiAutomation.
Bug: 10931661
Test: a11y CTS & unit tests
Change-Id: I478bd93c60d4742bef20ae0e423ca9de1bda55d2
We will not be implementing single-finger triple-tap for now.
Bug: 136131815
Test: atest GestureManifoldTest TouchExplorerTest AccessibilityGestureDetectorTest
Change-Id: I8a9bd62963bab86ba26bfa46e6f871105dca6d35
To support embedded hierarchies (leash):
1. Add new APIs for leashed child in AccessibilityNodeInfo.
2. SurfaceView needs to use this API to add such child when
initializing the AccessibilityNodeInfo.
Bug: 137593247
Test: a11y CTS & unit tests
Change-Id: Ieaa57c6ad65f4c199175d929c3bcba7fb7e6ef26
Make accessibility service able to set the current input method
for current user.
Bug: 145710994
Test: atest AccessibilitySoftKeyboardTest
1. Get current enabled IMEs
$ adb shell settings get secure enabled_input_methods
com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService
com.google.android.inputmethod.latin/com.android.inputmethod.latin.LatinIME
2. Get current default IME
$ adb shell settings get secure default_input_method
3. Set current default IME
$ adb shell settings put secure default_input_method
com.google.android.googlequicksearchbox/com.google.android.voicesearch.ime.VoiceInputMethodService
Change-Id: I00aa2170ef2fcc4daf50d09a57b8e2ad16c0a6cb
We don't need to confirm that pointers are non-zero in TouchExplorer#onDoubleTapAndHold; it is the job of the gesture matcher and the gesture manifold to prevent weirdness.
Bug: 146997332
Test: atest AccessibilityGestureDetectorTest TouchExplorerTest GestureManifoldTest
Change-Id: I12eb42155c1e55b13840bacea962be4759354214
Some devices will send ACTION_MOVE events with the same coordinates as ACTION_DOWN. If so, we ignore them in order to correctly interpret the rest of the gesture.
Fix: 146472448
Test: Run talkback and swipe in all directions.
Test: atest AccessibilityGestureDetectorTest TouchExplorerTest GestureManifoldTest
Change-Id: I7c6ee32aa64cd9558afef4caf690f822f2541c5b
This includes the following gestures: double-tap, double-tap and hold, one-direction swipes, and two-direction swipes
including angle swipes.
Bug: 142277141
Bug: 136131815
Test: atest AccessibilityGestureDetectorTest TouchExplorerTest GestureManifoldTest
Change-Id: I47089b003ff4e49e96b2833931ec4006131f1bd4
- Adds support for magnification and multiple shortcut targets assigned
to accessibility shortcut key in AccessibilityManagerService.
- New extra field in ACTION_CHOOSE_ACCESSIBILITY_BUTTON intent to
support accessibility shortcut key.
Bug: 136293963
Test: atest AccessibilityShortcutControllerTest
Test: atest AccessibilityUserStateTest
Test: atest AccessibilityShortcutTest
Change-Id: If0a446dfd269e82ec0d09db92e86f859cdae50d8
Implmentation details of Accessibility framework SystemActionPerformer.
Will be accessed by AccessibilityManagerService to provide API
implementation support for system action registration and system action
access.
Bug: 136286274
Test: atest SystemActionPerformerTest
Change-Id: Ic0adbb6fc21d262fb2949f616ca28940fd6f1f53
The accessibility focus node id isn't updated if the focus window id
doesn't change.
Bug: 144958088
Test: a11y CTS & unit tests
Change-Id: I67e57fb036efa4b89c7b5148fb7cef9dbdd37b7b
Set allow app switches so the accessibility service can start activity
without delay.
Bug: 141873810
TEST: atest AccessibilityServiceConnectionTest
Change-Id: I4204c4cf0baa1f66d6d2d73d56a342ae803d24dd
After an accessibility service crashes a few times in a short period
of time, framework would add it into a “blacklist”. User wouldn’t be
able to use (re-enable) it. If users express an intent in them working
again, we remove the crashed accessibility service from the blacklist.
Bug: 129689483
Test: a11y CTS & unit tests
Test: manual
1. Install and enable an intentional crashed a11y service.
2. After it's crashed and malfunctioning, re-enable it.
3. Check if it's bound again.
Change-Id: Ia89121f11bc5e05fc829e0e3ecb266150409678b