ag/3434666 causes a regression:
Before ag/3434666, autofill gets touch event after IME, autofill
close itself if it gets ACTION_OUTSIDE touch event.
But after ag/3434666, autofill intercepts touch events before IME, if
user touches within IME, autofill still gets ACTION_OUTSIDE event,
and close itself unexpectedly.
The fix moves the closing code to ViewRootImpl.EarlyPostImeStage
around the same place closing tooltip.
If user taps outside autofill window, we will force to close window,
even last autofillid that requestShowUi does not match.
Bug: 73796497
Test: atest CtsAutoFillServiceTestCases
Test: Added LoginActivityTest.testAutofillTapOutside
Test: manually tested using IME and sample app
TODO: need a fake IME service to dispatch given key upon touch.
Change-Id: I10fc0d29dc30d29a48b2118264ec1c4375062deb
Bug: 72747726
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationConstantsTest
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Change-Id: I0d6cb5eaf3f9baa0564672c4d4b680fb00f40a51
Currently it's only in place applying for operations on the global transaction.
Bug: 70666541
Test: Manual
Change-Id: I5c2facba14c783bad0d3aca0e8b66fea73df0776
First we have the client pass up the next frameNumber from relayoutWindow
and then we simply deferTransactions at the WindowState level until
this frame number is reached. This was always a little terrifying
because deferring transaction effecftively meant we gave up
control of the surface until the frame number was reached. However now
we can still control the surface from the stack and other SurfaceControl
nodes and so the window can still be moved around and animated even if
the client is unresponsive.
Bug: 70666541
Test: Manual. go/wm-smoke
Change-Id: I2fecbeaa30fc0eb9cc8f08e1ea734dcc65da0aa0
- Draw over other apps
- Camera
- Microphone
The icons are not yet clickable, and the system 'drawing over
other apps' notification still appears even when the app's
notification is tagged.
Test: runtest systemui
Bug: 64085448
Change-Id: Ib3b0cdd9adced82f562f256cb81af80dc395440d
Allows native apps to request a layoutInDisplayCutoutMode without
having to implement a custom NativeActivity subclass.
Change-Id: I0b7fd4624e89fabe177462d615360442f72a1e11
Fixes: 73807928
Test: atest PhoneWindowTest
Also updates flags list.
Bug: 72946306
Bug: 72946123
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationConstantsTest
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Change-Id: I8af9d3d1da01836fbadcbbf6ce7c1c0db7456a05
This reverts commit 574aea0f1b.
Reason for revert: Crashes sometimes (chaselist issue)
Change-Id: I1440ef7a002e85c3e020d424f13073ca2516dd9c
Fixes: 73991490
Only used by a test which is now deleted. Obsoleted by protobuf
tracing.
Bug: 70693884
Test: Boots
Change-Id: I3bc95880afc0e72bb05640cdd18a916fbb664eae
If we have another process running a remote animation, we need to
elevate its scheduling priority in order to achieve a smooth
animation. To do that, we set the priority as if it would be the
top app.
Test: go/wm-smoke
Test: Capture trace, open/close apps/recents, inspect priority in
trace.
Change-Id: Ia167eeff95700d86e96e96a984099f1e28040b59
Fixes: 73555925
From the Autofill workflow point of view, each view has an unique AutofillId
that is used to semantically, semantically identify the view. Currently, once
the View's AutofillId is set it cannot be changed, which make it hard to reuse
views for optimization (for example, in a RecyclerView).
This change introduces 2 new APIs (View.setAutofillId() and
Activity.getNextAutofillId()) that let app developers reuse views without
breaking their logical autofill semantics.
Fixes: 73555342
Test: atest CtsAutoFillServiceTestCases:MutableAutofillIdTest
Test: atest CtsAutoFillServiceTestCases
Change-Id: I35fe07b10657f17d7b260f90f578ca7a13782a18
Using the new accessibility pane title API
to identify the pattern, pin, and password unlock
screens.
Bug: 73131182
Test: Verified that accessibility events are properly
sent when unlocking the phone with each of the lock
methods.
Change-Id: I32594f4736b503e7f9e3be96e9f77a84ffcadc54
In the new task switch animations, we'd like to show the wallpaper
behind. For that, we add the ability to show the wallpaper for
any animation via Animation.showWallpaper as an XML attribute.
If the window of an app is animating, and the animation requests
the wallpaper, it can also be a wallpaper.
One remaning issue here is that we don't wait for the wallpaper
to be drawn when waiting for the transition. However, usually this
isn't an issue because the wallpaper is drawn in any case.
To fix this we'd need to load the animation already and then make
it a target before the animation starts, which is a bit involved
/quirky.
Test: Open/close task, observe wallpaper behind
Test: go/wm-smoke
Bug: 72396815
Change-Id: I676273a4e6627f8b5e0a1366fcd80a7c92018123
Caches inflations from resources if the parameters did not
change. This increases the hitrate of the rotation variants
cache in window manager, and avoids unnecessairy reinflations
whenever the display changes.
Change-Id: I2ed9a2c259158bf1a6b551b3422534efbfec99c9
Bug: 72444324
Test: atest DisplayCutoutTest
Since autofill window was made to have window focus, app lost the
ability to accept physical keyboard typing. User can no longer
type on physical keyboard to filter autofill result.
This CL dispatches unhandled keyevent(e.g. A/B/C) from autofill
window to app ViewRootImpl in a similar way InputMethodService
dispatches keyevent to app's ViewRoot.
The unhandled key is sent to app window's ViewRootImpl
PreImeStage so that the keystroke could be translated to CJK by IME.
This CL does not affect fullscreen autofill window for TV where app
window is fully covered: user has to close fullscreen autofill window
first.
Bug: 72951156
Test: atest CtsAutoFillServiceTestCases:LoginActivityTest
Change-Id: I8e50cfdfe8d5691d2b248d85f924c38488ca30f4
Previously, we would make a renderer draw whenever a pixel copy
completes. Because of this happening more than once per view frame,
magnifier frames were being dropped or queued up and displayed later,
which was consequently leading to the magnifier movement getting out of
sync with the updates to its content.
This CL changes the magnifier to be rendered from a draw job post'd to
the UI thread queue. This way, multiple magnifier updates (the ones
already pending in the UI thread queue when the draw job is added) are
batched together in a single draw, naturally rate-limiting the draws we
send to the magnifier renderer by the number of frames of the magnified
view - this only holds when the user of the magnifier sends updates as a
result of user interaction or when the magnified view is drawn.
Also, previously the pixel copy finished events were post'd to the UI
thread. Since they were not post'd as async messages, they would have to
wait at frame barriers before being executed. This CL creates a
dedicated thread for them to be post'd, to avoid this from happening.
Bug: 72041926
Test: atest CtsWidgetTestCases:android.widget.cts.MagnifierTest
Change-Id: I89563a341a74e958f903eff2d470c6c33fb203ef