This is used by end-to-end tests exercising the input filter for generic
motion events.
Bug: 247550565
Test: atest AccessibilityEndToEndTest, using the dependent change topic
Change-Id: I2695ecb3919d8336dc3f6df1a525a53d84c03fec
Before, we only provide startBounds when the animation target is
MODE_CHANGING, with which we won't know the start bounds for target that
is closing while resizing.
Now, we provide startBounds for all targets, so that we can use it to
provide seamless animation when the target is closing while resizing.
Also make sure the closing container's surface is in the start bounds
before the animation starts to avoid any flicker.
Bug: 241043533
Test: Verify with switching between split and stack.
Change-Id: I4d8e1ee44d418249dcb434425c7ab3d63a429bad
numSyncsInProgress is used to keep track of how many syncs VRI has
started to ensure it can disable RT Animations and then enable at the
end of the sync. This needs to be global across the process because RT
Animations config is global to the process. This means if there are any
VRI's in a sync across the process, we need to keep RT Animations
disabled until the end of all of them.
Test: Sync works
Bug: 237804605
Change-Id: I6304061f564ceea9de08331d7ee48834ad3c828b
Without this, checking if the caller is the recents component always
fails on the secondary user.
Bug: 255480931
Test: atest WmTests:WindowManagerServiceTests
Change-Id: Iac9fea3935c3aadf29a21d8af715df845e8ea43c
Merged-In: Iac9fea3935c3aadf29a21d8af715df845e8ea43c
Without this, checking if the caller is the recents component always
fails on the secondary user.
Bug: 254937640
Test: atest WmTests:WindowManagerServiceTests
Change-Id: Iac9fea3935c3aadf29a21d8af715df845e8ea43c
This basically duplicates the behavior of config_perDisplayFocusEnabled
but via a display flag instead of globally for all displays. The display
must be trusted for the new flag to be set.
This is particularly needed for virtual devices and displays with
navigation-type inputs, for which touching the default display will
cause everything to enter touch mode and therefore the currently focused
view would lose focus.
Bug: 233911853
Bug: 256810557
Test: atest DisplayManagerServiceTest
Test: atest WindowManagerServiceTests
Change-Id: Ie1c3b8a42f512530bf0ce3fabc56f0da236a311c
Provide APIs to query display shape information:
- Added a DisplayShape class which provide a Path.
- Added a new API in Display to get the DisplayShape based on the
display coordinates.
- Added a new API in WindowInsets to get the relative DisplayShape
based on the window frame.
Bug: 236935288
Test: atest DisplayShapeTest LocalDisplayAdapterTest WindowInsetsTest
InsetsStateTest DisplayPolicyLayoutTests DisplayPolicyTests
WallpaperControllerTests
Change-Id: I7aacfcae42203d3f57cd577da5a69180f66780ad
These are:
- onProxyConnected (equivalent to onServiceConnected)
- onAccessibilityEvent
- onInterrupt
- getWindows
- set/getInstalledAndEnabledServices
Connect the proxy client (IAccessibilityServiceClient) to a
proxy service connection
(ProxyAbstractAccessibilityServiceConnection) in ProxyManager,
so the A11yDisplayProxy can access the UI.
AccessibilityServices run on their own thread. To avoid using the
app's main thread, the app that registers the A11yDisplayProxy
can call it on a different thread. Add a note in the proxy class.
Future TODOs (b/254545943):
The a11y state returned to A11yManager includes state
of all proxies and AccessibilityServices.
Separation will require AccessibiilityManager to go from being a
process singleton to a per-display instance.
Input and a11y focus are singletons and may
shift between a proxy display and a display on the device.
Separation will require future changes.
ProxyManager behaves more like UiAutomationManager,
and centralizes proxy management. Separation into different user
states will require future refactoring.
Bug: 241429275
Test: atest AccessibilityDisplayProxyTest,
AccessibilityManagerServiceTest, manual test app that
registers/unregisters A11yDisplayProxy
Change-Id: I830c6613c2c2f8abcc2343c5110f4e7b7494fb0e
When cutout mode is always/shortEdges and the system window insets are
consumed, the cutout isn't consumed and is inset to an empty cutout
which causes the test failure.
We should also consume cutout when the system window insets contain
cutout and are consumed.
Bug: 253995206
Test: atest WindowTest WindowInsetsTest DecorInsetTests
Change-Id: I8a4fd56675509cc27dfa91de1138458fb1e7b0f0
Currently, no insets is calculated based on contentInsets and other
fields set in WindowState when the InsetsFrameProvider is given. It is
safe to remove the calculation for windows other than IME.
The fields in WindowState, including touchableAreaInsets, visibleInsets,
contentInsets is a description of the window itself, instead of the
insets it providing to other windows. Such that, we can remove the
consideration of those fields for most cases.
Bug: 202360061
Test: DisplayPolicyInsetsTests
Change-Id: Ie127f4655ed923545dede16ebc615dbf8384d34a
mSurface.destroy() may block on a HardwareRenderer if lockHardwareCanvas
is used. mSurfaceControlLock is also used on the RenderThread, so it cannot hold that lock when potentially calling into HardwareRenderer as this is a deadlock risk.
Fixes: 244616968
Test: guess
Change-Id: Iedb6f3ce80f47a67b4427550f27851c3b9e3e242
Send a load reset hint hint to DrawFrameTask through ThreadedRenderer
from ViewRootImpl whenever Choreographer registers a callback. This
allows the PowerHAL to allocate more resources for HWUI in response to
upcoming work, helping prevent frame drop.
Bug: b/243938267
Test: manual
Change-Id: Ie2cf809cf85530af04f4d0db3407853d4da03d62
When asking the IME for an inline request, the IME will check if the
autofill id of the target view matches the id of the current IME served
view, otherwise the IME does not respond inline request to the Autofill.
When an activity starts, the id of the IME served view is reset to 0.
And the target view, Autofill used to do the pre-fill request is the
root view, sometimes its id is not 0. Then the request is blocked to
wait for an inline request because autofill does not have a timeout
mechanism.
To resolve this issue, use AutofillId.NO_AUTOFILL_ID to make sure the
id of the pre-fill request is 0.
Also this change remove the duplicate code about the
notifyViewEnteredLocked for normal view and virtual view.
Bug: 258532947
Bug: 253180120
Test Manual
Test: atest CtsAutoFillServiceTestCases
Change-Id: I6962ab6d844fd8b7c9ba778ac40630586ef73c39