request window magnification connection through IstatusBar only
when magnification mode is window and magnification state is enabled.
Bug: 152578960
Test: WindowMagnificationManagerTest
Change-Id: I4e00448d9b64f9fd04fa5a5758bd41b2d2c8352f
This is relevant when running cts tests in instant mode.
Certain tests were failing in non-system users in instant mode, which is particularlly consquential to auto.
THis fix will be cherry-picked back to their repo
Test: CTSAccessibility*, in both instant/non-instant, and with both system and secondary users.
Bug:146218533
Change-Id: I89937bd552d372adc5d96c51b24d1a2bb4a034e3
When the magnification mode is changed, create the correspoding
MagnificationGestureHandler based on the magnification mode and
replace it with the old one.
Bug: 152578960
Test: AccessibilityUserStateTest
Test: AccessibilityInputFilterTest
Change-Id: Ifbcb771762b660183235292d3d35de3213064573
WindowMagnificationGestureHandler detects gestures to determine the
user is going to manipulate window magnifier. If the user is going to
interact with current UI, it will sends the delayed events, otherwise
it will change the scale or move the window magnifer based on user's
gesture.
Bug: 146400227
Test: manual test & WindowMagnificationManagerTest
Test atest WindowMagnificationGestureHandlerTest
Change-Id: I185005d1ebb00a4d3956104fc78fab7d46777d4d
The Accessibility events order for gesture end and touch interaction
end are exchanged in following conditons:
1. touching duration is very short.
2. Hover exit events comes right away after receving
action_up.
It leads to incorrect state of touchExplorer and sending incorrect
hoverevent in next touch-interaction.
In unit test part, there are two changes:
1. TestHandler used in current thread to reduce the execution time.
2. Add the created order of the mesaag to compare MsgInfo so that
it has correct order in the queue.
Bug: 152265599
Test: atest FrameworksServicesTests:com.android.server.accessibility.gestures
Test: atest android.accessibilityservice.cts.TouchExplorerTest
Test: manual test
Change-Id: Ia60d51414dd63a2a30be61372e8fbd2e3d9f723f
Tests indicate starting up AccessibilityManagerService takes 5ms longer
than expected and may be due to ag/9726764. Unsure how that change
could cause it, but we can take action and avoid initializing
SystemActionPerformer on start up.
Bug: 145909124
Test: builds and registers actions
Change-Id: Id7b8d5bfc450f96691b1810bf701644a0b1ef637
The accessibility service connection uses old service info
to create connection while the system is trying to rebind the
enabled services after packages finished updated. The root
cause is we always reloaded the installed service info after
the a11y services were rebound. To fix this issue, always
reloads the installed service info before rebinds the services.
Bug: 152817355
Test: All a11y related cts tests
Change-Id: Iab424940fc47b5a5f44096d67dc7bdfe2d43c5be
See b/152932464#comment1 for the analysis.
Fix a race where #unlinkToDeath might be called without a preceding
call to #linkToDeath and result in an exception.
Bug: 152932464
Test: presubmit
Change-Id: I061b314ebd895a400b1bb2e2956233775d5816e5
Bug: 150395371
Test: make && flashall
Bitmap is replacing methods that use a hidden GraphicBuffer with ones
that use the public HardwareBuffer. ScreenshotGraphicBuffer is just a
holder for GraphicBuffer and some metadata; switch it to hold a
HardwareBuffer (and rename to match).
Remove GraphicBuffer#createFromExisting, which was only called by
ScreenshotGraphicBuffer#createFromNative. Also remove JNI references to
that method, which were no longer in use.
Switch uses of GraphicBuffer that retrieve it from a
ScreenshotGraphicBuffer to HardwareBuffer.
Changes are almost entirely mechanical:
- (Screenshot)GraphicBuffer -> (Screenshot)HardwareBuffer
- GraphicBuffer#destroy -> HardwareBuffer#close
- getGraphicBuffer -> getHardwareBuffer
When creating a Snapshot in SurfaceFreezer, use the ColorSpace of the
ScreenshotHardwareBuffer.
Remove GraphicBuffer#createFromExisting. This is no longer necessary,
and although it was marked UnsupportedAppUsage, go/nonsdk-dash shows no
usage.
Change-Id: I41cb03fb65432d208820a428783de82a9f152035
Creating a new API, screenshotWithoutSecureLayer(), to get the
graphic buffer of screenshot for all displays including non-default
display and virtual one. We can use it to support multi-display
of takeScreenshot() API.
Bug: 145893483
Test: a11y CTS & unit tests
Test: manual testing to take screenshot of second display which is a
monitor with chrome cast
Change-Id: I474c71f7e01d57b5a318b2a5bfb690a2e01c128c
- Target to fix migration issue to support a user revoked the accessibility shortcut before upgrading to R, but wants to to apply new hardware shortcut design in R.
- The switchbar of accessibility_shortcut_enabled was removed in (1/n), so we should also remove related checker in controller.
Bug: 142529032
Test: atest AccessibilityShortcutControllerTest
Change-Id: I48f8d88c4192e894b9e210221e5dc7e701344623
The Accessibility events order for gesture end and touch interaction
end are exchanged in following conditons:
1. touching duration is very short.
2. Hover exit events comes right away after receving
action_up.
It leads to incorrect state of touchExplorer and sending incorrect
hoverevent in next touch-interaction.
Bug: 150171638
Test: atest FrameworksServicesTests:com.android.server.accessibility.gestures
Test: atest android.accessibilityservice.cts.TouchExplorerTest
Test: manual test
Change-Id: Ia60d51414dd63a2a30be61372e8fbd2e3d9f723f
MagnificationGesturesObserver is used to detect the gestures when
users start to have interaction with the devices through fingers.
If users swipe, single tap or single tap and hold, it means users want
to interact with the UI. If users put two fingers down, it means users
are going to do gestures for magnification operation.
Test: MagnificationGesturesObserverTest
Bug: 149269335
Change-Id: I34ff0694b82ff76c462007f74938e79272d667b4
AccessibilityWindowManager would get null interactive region since
embedded hierarchy doesn't have window. Because interactive region
is null, A11yInteractionController#adjustIsVisibleToUserIfNeeded
wouldn't adjust its visibility to false. This results in that the
visibility of A11yNodeInfo on embedded hierarchy may be incorrect.
Bug: 151203875
Test: a11y CTS & unit tests
Change-Id: I7d61a15994bf726e708e597d0363904fdb32f183
Closing the hardware buffer after sending over to the requesting app,
and adding the document that the app developer has to close the buffer
ASAP.
Bug: 150174095
Test: atest AccessibilityTakeScreenshotTest
Change-Id: I8e759a7d83c0a9adfd1b37d0bbf515c9babde7a4
Adding the rate limitation of takeScreenshot() API is one time
per second to avoid the system health impact.
Bug: 149968870
Test: a11y CTS & unit tests
Change-Id: Iaedafda9b9a5a56941952df54e62d76a92936b1d
Deprecate TYPE_STATUS_BAR_PANEL. Currently
TYPE_STATUS_BAR_ADDITIONAL maps to the same z order as
TYPE_NOTIFICATION_SHADE. This will be updated in a subsequent CL.
Also move everything in TYPE_STATUS_BAR_PANEL to
TYPE_STATUS_BAR_SUB_PANEL so that it remains above the notification
shade / keyguard layer. TYPE_STATUS_BAR_PANEL will no longer be valid.
As part of the work on having more flexible inset mapping (for Android
Automotive) we want to use the TYPE_STATUS_BAR_ADDITIONAL to be used
for system bars in different places (i.e. Status Bar on the left side of
the screen).
Bug: 140423092
Bug: 145242835
Test: boot (sdk_gphone_x86, hawk), existing tests (atest SystemUITests)
Change-Id: I0ce3c4152fd05a948c06ed1a96c3ba279bd7097a
Some operation will be done When displays are removed/Added,
but virtual private display should be excluded.
Bug: 148760652
Test: manual test:1.Enable the magnification from a11y setting
2. Enable the select to speak and read text on images
3.Tap the a11y shortcut to select to speak the content
4. check if the content is selected correctly.
Change-Id: I8e0fbc4da7cbb6b9c5bf5366115b3863be5243bb
There are some package-pricate classes and methods in a11y framework
so we use DexmakerShareClassLoaderRule to mock them. However, this
results in some unexpected excpetions during testing. Change some of
them to public with @VisibleForTesting annotation, and remove the
DexmakerShareClassLoaderRule to avoid the exception.
Bug: 149362507
Test: atest FrameworksServicesTests:com.android.server.accessibility
Change-Id: I1e526ca79cf14b3d394ee132480dcd8c226ae69a
If the cached user ID is not updated after switching user,
the persistent magnification scale setting would be the
last user's manginification scale setting.
Bug: 148831149
Test: atest MagnificationControllerTest
Change-Id: Icef2834cb482bef753191feaf988b28831a2e691
1. Modify the related documentations.
2. Make the timestamp got from framework side.
3. Use the ParcelableColorSpace class.
Bug: 149271120
Test: a11y CTS & unit tests
Change-Id: I2aedf67f8ed7d949322b23b59eaa383e53ecb594
This CL includes two, three and four finger double-tap and hold.
Bug: 136131815
Test: atest GestureManifoldTest TouchExplorerTest AccessibilityGestureDetectorTest
Change-Id: I4c0a95a4ac2d13e0a7e2c7920df619063ec1cfc0
Introduce AccessibilityEmbeddedConnection. This interface provides
to the host view to the latter can interact with the view hierarchy
in SurfaceControlViewHost.
Bug: 137593247
Test: a11y CTS & unit tests
Change-Id: I9c4f5478c5ecd3bda7f688fa23660f372b59512b
Implementing the new return type for A11y services to take
the screenshot of the specified display.
boolean takeScreenshot(int displayId,
@NonNull @CallbackExecutor Executor executor,
@NonNull Consumer<ScreenshotResult> callback)
The return type is a new class, ScreenshotResult, including
hardwareBuffer, colorSpace, and timestamp. A11y services could
use the method, Bitmap#wrapHardwareBuffer, to obtain the bitmap.
Bug: 10931661
Test: a11y CTS & unit tests
Change-Id: I03eae10f0970d0e11e02c9d3f4031c4096b7b5b4