This new API was introduced during the compat app changes and it must be
implemented by views providing virtual views (like WebView). If they don't, we
need to keep the default behavior of assuming the child is visible, otherwise
we might trigger Save when the child value change and the service sets the
FLAG_SAVE_ON_ALL_VIEWS_INVISIBLE
Test: atest CtsAutoFillServiceTestCases:VirtualContainerActivityTest#testSaveNotShownWhenVirtualViewValueChanges
Fixes: 73172668
Change-Id: I80654aaffa7dd24a3b3b59e7016bd86b48fe4898
This reverts commit ac9c8f7c1e.
Bug: 73083791
Bug: 73364985
Don't scale NinePatchDrawable if bitmap has no density (including fix
for 73364985).
Fixed bugs around density and input streams.
Update PointerIcon to account for the fact that BitmapDrawable no longer
scales its Bitmap up at decode time. PointerIcon now handles the
scaling. This is necessary because PointerIcon never draws its Bitmap.
Instead, native code uses the Bitmap's internal SkBitmap without
accounting for density.
Test: Ran CTS:
- CtsUiRenderingTestCases
- CtsGraphicsTestCases
- I2d3976061d164ab4d58209db1320917f272a1958
- CtsViewTestCases
- ThemeHostTests
Change-Id: I3e0c11195622d65f084ce79dad887504630177ca
It should not call notifyViewExited() when entering a view.
Test: manual verification
Test: atest CtsAutoFillServiceTestCases
Bug: 73078981
Change-Id: I8dedcf9ff8d01fdc53293ae6c062fb6f44fec858
When an autofill service returns a null FillResponse, AutofillManager is kept
in a "zombie" state where the session is finished but a new one must be started
if the user taps another view, so it covers the scenarios where a new view is
added (and the service can autofill it). But we can optimize this workflow by
ignoring views that were already visited before.
Test: atest CtsAutoFillServiceTestCases:LoginActivityTest#testMultipleIterationsAfterServiceReturnedNoDatasets
Test: atest CtsAutoFillServiceTestCases:LoginActivityTest
Bug: 73078981
Change-Id: If8b01aca41f5d1613663002bb6b589fb1cf549df
When IME and autofill are both showing on TV, it's confusing which
window has the input focus. This CL changes autofill window to
full screen for TV.
Bug: 72122929
Test: Manual tested on TV with github example. Manually tested on
phone that UI doesn't change.
Change-Id: Id97b6389523b2ee744d02f5bc7847b307b0b29e4
A11yNodeInfo#writeToParcel relied on LongArray#equals to avoid
storing it if it's the default value, but because the equality
is be by reference, it would store it every time.
This fixes that.
Test: a11y cts
Fixes: 72460870
Change-Id: I508df9e4346e304b8ae56cc38b17e9a940d941f1
Browsers typically use a standard class (like EditView) to hold the URL of the
page being loaded, and the content of that view is sanitized in the initial
autofill request. So, when running in compat mode, we need a mechanism to let
services tell which view contains the URL, so we can convert its contents to
a sanitized webScheme + webDomain pair or properties.
Test: manual verification
Fixes: 72994424
Change-Id: I8be5f3533d6c31f81f28036dc51d5de10a528079
The last change needs more discussion and found some edge cases. Revert and make small step-by-step changes.
Bug: 73091756
This reverts commit 7fd36d19e3.
Change-Id: I89ff52a70cf6a5d6c553afa20f83719e1f9eb726
Adding for status bar, nav bar, and global actions dialog.
Also removing some extra code from global actions dialog
that populated window state changes. Apps in general don't
need this extra information, so we don't need to maintain
it in SysUi either.
In verifying the fix, I noticed that all windows were
considered anchored because of a mismatch between long and
int. Fixing that too.
Bug: 73131182
Test: With the testback a11y service, verified that these
titles do indeed appear in the window information provided
to accessibility services. Also noted that windows are no
longer reporting themselves as anchored.
Change-Id: Ie09fbb88250b3c9663d6c28001e0ce9f70c67954
The new pane API is intended to manage things that
look like windows but aren't formal windows. The
notification shade and quick settings are a great
example of this. I've replaced explicit requests
for announcements with code that just keeps the
pane title up to date. The correct events are then
dispatched automatically.
Bug: 62231686
Test: I've verified that the correct events are
dispatched using the TestBack experimental
accessibility service. I've also run TalkBack with
the events. TalkBack has an issue with the new API
(b/73126910), so it will be slightly too verbose
until they check the change type.
Change-Id: I8ba130e20b09c69fff65c59af9f08aa6abd2b016
Use the public API version of the same thing that the private API
access was doing. No behavior change.
Test: built
Change-Id: I4a9032cfb1d4e699f72df3b079ef363d308419e8
Can provide more insights into ANR reports that end in nSyncAndDrawFrame
Test: verified 'dumpsys gfxinfo <package>' didn't change, but that
bugreports did
Change-Id: I4e0e4b071f761e35bb6d6c9d8174b5bde3220d92
Previously, the code calls destroy which will be invoked immediately so
there needed to be ways to delay destroy. This caused some overhead
where there needed to be Runnables to ensure client state updates were
called before the destroy. Instead, use the Transaction.destroy so the
destroy doesn't get invoked until apply is called. This allows any other
client states to get updated before the destroy is called.
This is specifically necessary for reparent calls since a Surface can be
reparented from a Surface that's about to get destroyed to a valid
Surface that's not getting destroyed. This change ensures that Surfaces
will get reparented before Surfaces are destroyed when Transactions are
applied.
Change-Id: I25bb94378de2c03565ee7df8ab5ef393b57f3aec
Fixes: 72953020
Fixes: 71499373
Test: Tested issue from bug
Test: Set animation duration to 0. Ensure no crash
Test: SurfaceAnimatorTest
The single usage we had was already mostly guarded by lock -
replaced with a regular list to prevent confusion
Fixes: 71795155
Test: atest CtsAccessibilityServiceTestCases
Change-Id: I1c3235aadb0db4907cbe92a17cc58d2c8a8b5564
Dew to a side effect of HWUI opengl pipeline, the hairline stroke
is not respected, but it is drawn as a fill style. Implement the
same behaviour for skiagl pipeline with SDK API 27 and older.
On SDK released with Android P, the hairline stroke is respected.
Bug: 72494357
Test: Ran duolingo app
Change-Id: I48bdcf3ddec4bf65b5e93e01c5002177c4e3da90