Ensure that windows are separated between the A11yDisplayProxy user
and the a11y service user.

AbstractA11yServiceConnection holds a flag to determine
if a connection should get proxy windows or non-proxy windows.
A11yServiceConnection (A11yServices) should get non-proxy windows,
UIAutomationService should get both proxy and non-proxy windows,
and ProxyA11yServiceConnection (proxies) should get proxy windows.

We need to prevent the windows from being stored in the cache, so
filter the windows before any A11yInteractionClient processing.

Future additional work to for service and proxy window separation:
- Clear all caches upon proxy registration. This should clear out
any cached data relating to the proxy display in services.
- When adding findFocus to A11yDisplayProxy, make sure the proxy
and service cannot retrieve each other’s nodes (which gives access
to windows).

Test: atest AccessibilityDisplayProxyTest (added a test to check
an AccessibilityService does not get proxy windows), manual check
of windows in sample app
Bug: 241429275

Change-Id: I73e3be1e3ad52ebacfc813bcfd6dff0bb7b541e8
8 files changed