The accessibility button and shortcut target is updated by
the Settings app when the user turn on/off the a11y service.
It worked fine before an a11y service disables and turns off
itself using disableSelf api. The accessibility button and
shortcut settings can not get update in this case. Removes
shortcut target if an a11y service is unbound to fix this
issue.
Bug: 156237174
Test: atest AccessibilityShortcutTest
Change-Id: Ie15f7fe06644bd35d30d87383b25df81bf29056d
Root cause: FLAG_ACTIVITY_CLEAR_TASK would cause the exist activity are finished and new one items to be started. It causes Live Transcribe main activity goes onStart call of new activity is followed by onStop call of old activity, which cause the mic stopping.
Solution: Remmove the FLAG_ACTIVITY_CLEAR_TASK.
Bug: 156455425
Test: Manual test
Change-Id: Ia5c490cc4816fe41b704ca8ed9dce2891cf44c9b
To have more flexibility and have consistency with legacy behavior,
Uses can choose single/multiple modes in settings.
To support it, we have the following behavior
1. Switching magnification mode is allowed only when the capabilities
is all.
2. If the capabilities doesn't support currnet magnification mode,
the magnification mode will be fell back.
3. Set window magnification connection to null if the magnification
settings is not turned on or the magnification capabilities is
full-screen.
Bug: 155965892
Test: atest WindowMagnificationManagerTest
Test: manual test: select one or two magnification modes to see
the behaviour.
Change-Id: If32e2a038e64ed7a7bab9ec5a3d444b542d30161
The disabled a11y service is not removed from the cached service list
when the a11y service package is uninstalled.
To fix it, we have to remove the service from the service list.
Bug: 153507990
Test: manual test & adb shell dumpsys accessibility
Change-Id: Ic1d2ebe3a46faf7237123bcdfca96c79b2c35705
This is a return to the original logic of the unified gesture detector.
Bug: 153584696
Bug: 153715903
Test: atest GestureManifoldTest TouchExplorerTest AccessibilityGestureDetectorTest FrameworksServicesTests:TouchExplorerTest
Change-Id: I384ade72efa2971476561fe6e19cafbebb012c85
Change-Id: Ibaf2fe73632ff89a0f187fe58d60bbfe71da2206
* Uses the atom AccessibilityShortcutReported in westworld.
Bug: 151285965
Test: make statsd_testdrive && ./out/host/linux-x86/bin/statsd_testdrive 266
Change-Id: Iba9d829ae35c7a336c38007101bdddfcd3dc2ddb
Over the years we've had several obscure bugs related to how SDK level
comparisons are performed, specifically during the window of time
where we've started distributing the "frankenbuild" to developers.
Consider the case where a framework developer shipping release "R"
wants to only grant a specific behavior to modern apps; they could
write this in two different ways:
1. if (targetSdkVersion > Build.VERSION_CODES.Q) {
2. if (targetSdkVersion >= Build.VERSION_CODES.R) {
The safer of these two options is (2), which will ensure that
developers only get the behavior when *both* the app and the
platform concur on the specific SDK level having shipped.
Consider the breakage that would happen with option (1) if we
started shipping APKs that are based on the final R SDK, but are
then installed on earlier preview releases which still consider R
to be CUR_DEVELOPMENT; they'd risk crashing due to behaviors that
were never part of the official R SDK.
Bug: 64412239
Test: ./build/soong/soong_ui.bash --make-mode services RUN_ERROR_PRONE=true
Exempt-From-Owner-Approval: trivial blueprint changes
Change-Id: Ia20181f8602451ac9a719ea488d148e160708592
The window magnification will be set to null if the new user
doesn't request this feature. However all existed mirror windows
are not cleared. We disable all window magnification if the connection
is going to set to null.
Bug: 154077487
Test: manual test
case 1
1. Turn on magnification and show the mirror window
2. Switch to another user and observe it
case 2
1. Turn on magnification and show the mirror window
2. Switch to another user whose magnification is turned on.
3. Observe if the window is gone.
Test: atest WindowMagnificationManagerTest
Change-Id: I1cf689f22587077258b857e2a114edd93a9fe1e0
For now, this CL is for a conversation on how to give AccesibilityService particular capabilities.
Fixes: 154954447
Test: atest CTSAccessibility*.
Change-Id: I2e47d9a94fda04e60a5eb15a1ec54479c9322b1e
1) Actions are only registered when the service starts. If the locale
changes, the labels need to be translated, so re-register the actions
when this happens.
2) When its shortcut isn't visible the a11y menu action is a no-op. The
list should be an accurate representation of what actions are available.
Pass SystemActions into NavigationBarFragment, which keeps track of the
shortcut availability, to unregister/register the action.
To do this, SystemActions exposes register/unregister to the fragment
and makes SYSTEM_ACTION_ID_ACCESSIBILITY_MENU public.
3) Remove Toggle Split Screen from SystemActions. The trigger isn't
system-level but is rather buried in the Recents UI in a button for each
app, and the a11y user can access this like everyone else.
SystemActionPerformer will still handle the legacy action call in
performSystemAction.
4) Rename "Accessibility Menu" to "On-screen Accessibility Shortcut"
Bug: 152636060, 152635646, 154833492
Test: Manual TalkBack test
Change-Id: I9b037f91c8d3b6f193fc9aee95ef73b7f3fbf315
When the action down motion event contains in the
mTouchExplorationPassthroughRegion, Touchxplorer didn't bypass the
motion event due to enabled multi-finger gesture.
Bug: 152597224
Test: manual test with set mult-finger-gesture enabled non-empty
passthrough region
atest CtsAccessibilityServiceTestCases:TouchExplorerTest
atest FrameworksServicesTests:TouchExplorerTest
Change-Id: Ifef6a4da98aca8144bfd6deaceb1a110cfdbe5df
The bug is happened because the slope between the down event and the
move event of the swipe gesture dispatched from TouchExplorer is
not smooth. So we also ajust the down event position as the moving
event. And we will update the corrupted CTS test case later.
Bug: 152931647
Test: none
Change-Id: I4d4b1ff2975f440dad0babb87d0af1b6ce348f93
* changes:
Rollback chooser menu to version Q behavior for accessibility button (2/n).
Rollback chooser menu to version Q behavior for accessibility button (1/n).
Allow separate Activities to handle the multiple-target case for the hardware and software shortcuts. Migrate from an extra to an explicit class so the Intent dispatch will launch the correct Activity for the particular shortcut.
Bug: 151294664
Test: manual test
Change-Id: I54bb1d3ab91e2757c465e8763786d0234f6d4ea8
As discussed, we:
* Allow apps with INTERACT_ACCROSS_USERS(_FULL) to specify an explicit
user (instead of just USER_CURRENT).
* Introduce new signature permission ACT_AS_PACKAGE_FOR_ACCESSIBILITY
and grant it to sysUI. This permissions allow holders to specify another
package on behalf of which they can perform a11y operations.
This is for toasts since now sysUI renders toasts on behalf of the app
for apps targeting R+.
Bug: 152839254
Test: atest FrameworksServicesTests:AccessibilitySecurityPolicyTest
FrameworksServicesTests:AccessibilityWindowManagerTest
android.widget.cts.ToastTest
Change-Id: I3541045d574518571f348051d53e24ff1a4a67ef
When taking the screenshot, passing the width and height
of the display, and the rotation according to the current
device orientation.
Bug: 153173726
Test: a11y CTS & unit tests
Test: manual test
Change-Id: I19eea2046da282155719b1dfdf9a3f53ad95e13b
When taking the screenshot, passing the width and height
of the display, and the rotation according to the current
device orientation.
Bug: 153173726
Test: a11y CTS & unit tests
Test: manual test
Change-Id: I19eea2046da282155719b1dfdf9a3f53ad95e13b