Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit fd24f601 authored by Sally's avatar Sally
Browse files

Support separating A11yManagers by device id

An AccessibilityManagerClient is now associated with a device id.
Usually this is the default device (phone), but if a proxy is
registered for a display that belongs to a virtual device, a client
will be assosiated with that device's id, and updates will happen
based on state held by the ProxyManager.

When broadcasting to Clients, check the device id.

Clients are "moved" back to the
default device and updated with the current user state if
1. the virtual device is closed or 2.a proxy is unregistered and
there are no more active proxies belonging to that device.

onProxyChanged behaves like onClientChanged/onUserStateChanged to update
the clients and some system state (like updating window tracking). All
IAccessibilityManagerClient methods (except setUiContrast) are called
by ProxyManager.

Additional changes:

- Remove onProxyChanged/onClientChanged in ProxyManager#registerProxy.
Inform apps of a new proxy after the proxy's installed and enabled
service infos have propagated (in ProxyA11yServiceConnection).
- Call A11yInputFilter from the main thread, since it's not thread
safe.
- Add more dump logging

See video in the comments

Bug: 254545943
Test: atest AccessibilityDisplayProxyTest
Change-Id: If4be657d9fe7a3cdba1437a1f2433b3fab5193b6
parent bb99a72e
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment