| Commit message (Collapse) | Author | Age | Files | Lines |
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This passive window inset animation control listener
is used to for logging purpose when hide, show
method is called.
Test: atest InsetsControllerTest
Bug: 240192346
Change-Id: I399268ead9d04b356f10cc3e9ac1da9e31306e86
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This CL does the following:
* Remove caption insets when releasing the window decor
* Update caption insets in InsetsController when the caption is in WM
shell
* Dump LocalInsetsSourceProviders to help debug related issues
Bug: 241029178
Test: The caption type of insets provider is removed when window decor
is released.
Test: atest WindowDecorationTests
Change-Id: Ia20e1958588de3a7d965b3ac3d3e4333c67dff36
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before the new insets system, a window wouldn't receive visible insets
if it:
- has FLAG_LAYOUT_NO_LIMITS,
- is not TYPE_WALLPAPER or TYPE_SYSTEM_ERROR, and
- is not in multi-window mode.
This CL makes the visible insets compatible with the legacy insets
system.
Fix: 223536648
Test: atest InsetsStateTest
Change-Id: Ia73142cfae701d0532a9a397366c50aeef82abb2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case the insets animation frame will not be scheduled by render
thread when the host window was not visible to user, added
ViewRootInsetsControllerHost#isVisibleToUser to check when invoking
applySurfaceParams to schedule the next frame, if the host was not
visible means we don't have to synchronize with the window host and
just apply the surface transaction on the UI thread directly.
Fix: 206992027
Test: manual as steps
1) Receive any incoming message
2) Tap on inline reply to show the keyboard
3) Tap on the voice input button on the keyboard
4) when permission dialogue prompts on the screen, expecting both
notification shade panel collpse animation and IME hiding animation
are working fine without any stucked frame.
Change-Id: I266587d5a3f136149d116214e2a49de92466ec2e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A new interface in WindowManagerProxy was introduced to let the shell be
able to set insets with a given frame. The interface won't work for
caption as we applied special logic to assemble the caption frame with
the attached task frame. To make it work with caption insets, we need to
disable all the special logics to make use of the shell interface.
A flag CAPTION_ON_SHELL is introduced to disable the calling path and
enable the above client owned logic. Turn the flag to true when the
caption is moved to shell.
Test: InsetsControllerTest, WindowContainerInsetsSourceProviderTest
Bug: 189998209
Change-Id: I989b319001a118d1f1ff8e34761b39ee18fde335
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The insets resize animation is used to produce the callbacks of the
animation progress to the app. It shouldn't change the state of the
insets controller.
Fix: 205082601
Test: 1. Open a sticky-immersive app on a device which has taskbar.
2. Make sure taskbar is minimized on apps.
3. Swipe from bottom twice to go to home screen.
4. Open the same app again and see if task bar is hidden.
Change-Id: I5d9213d7b3e32eccbf3a51335654f5f53899e6ae
|
| |\
| |
| |
| |
| |
| |
| |
| | |
sc-v2-dev am: 4fba1c4453 am: a1c5970293
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15746916
Change-Id: I5224d890d1632148fd2a89a39d8b68c0d7386311
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It is a public interface which should not have different versions
sharing the same API level. This CL moves the methods to an
@hide interface.
Fix: 198614722
Test: atest android.signature.cts.api.current.SignatureTest
Change-Id: Ib02708aeb1ec960bda20b6b60d4df6f0c9b4d9d6
|
| |\|
| |
| |
| |
| |
| |
| |
| | |
sc-v2-dev am: a42a8d6bf3 am: c5c07300ea
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15327977
Change-Id: I855558a2b85c58d7e2cd31bc5a429083d4de6d0f
|
| | |\
| | |
| | |
| | | |
sc-v2-dev
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This gives the app a chance to react to the animation of resizing system
bars.
Fix: 191269755
Test: atest InsetsAnimationControlImplTest InsetsControllerTest
InsetsStateTest
Change-Id: Ibf47047c131867983064bef4e9ac011daf66ea18
|
| |\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
sc-v2-dev am: 9052763843 am: 6b52c08bbf
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15385730
Change-Id: I31b54ea52b0d977e0161458ba7e41c4b9578df9d
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
InsetsState contains much more information than visibilities, such as
display frame, display cutout, rounded corners, privacy indicator
bounds, and frames of of insets sources. The control target only needs
to send the requested visibilities to WMS, so it can be too heavy to use
InsetsState.
This CL introduces an new class, InsetsVisibilities, which only contains
which type has which visibility. So it uses less memory, and it is more
efficient on copying and checking the equality.
Fix: 194186241
Test: atest InsetsVisibilitiesTest WindowAddRemovePerfTest
InsetsControllerTest RegisterStatusBarResultTest
CommandQueueTest LightsOutNotifControllerTest
ActivityRecordTests DisplayContentTests
DisplayPolicyLayoutTests InsetsPolicyTest
InsetsSourceProviderTest InsetsStateControllerTest
WindowFrameTests WindowManagerServiceTests WindowStateTests
Change-Id: I86c1b26b4383bfa3b924726d580e5706e13ba735
|
| |\ \
| |/
|/| |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This CL renames classes related to IME tracing as follows
* android.util.imetracing.ImeTracing
=> com.android.internal.inputmethod.ImeTracing
* android.util.imetracing.ImeTracingClientImpl
=> com.android.internal.inputmethod.ImeTracingClientImpl
* android.util.imetracing.InputConnectionHelper
=> com.android.internal.inputmethod.InputConnectionProtoDumper
Other than those renamings, there should be no observable chagnes.
Fix: 175761228
Test: presubmit
Test: Manually verified that IME tracing still works
Change-Id: I6518d946e1832037f240f57aa900d3447083f1fa
|
| |/
|
|
|
|
|
|
|
|
|
|
| |
If the appearance or the behavior are not controlled by APIs,
InsetsController will still return the default values, but the
internal logic will access the real value.
Fix: 192635471
Test: Open an app which hides system bars with
SYSTEM_UI_FLAG_IMMERSIVE_STICKY, but not
BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE.
Change-Id: I1c2f947e3707fcb4c151c1ad19c9cd16527e11d9
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously, we only dispatched onEnd if onStart was already dispatched. However,
some animations might get cancelled after onPrepare but before onStart. In that
case, it is rather tricky for apps to actually cancel the animation.
Now we always dispatch onEnd if onPrepare has been dispatched already.
Fixes: 177983907
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I3fa142110bd5593679f87561c138ed3318034fca
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the surface position is changed during the insets animation,
the surface position of the controls in the animation should be updated.
Otherwise, the cached position in the animation will overwrite the
newly-updated leash position.
Fix: 177925500
Test: Steps in the bug.
Test: 1. Open Window Insets Tests -> Window Insets Controller.
2. Click on the [IME INVISIBLE] button.
3. Click on the [STATUS BARS VISIBLE] button during IME animation.
See if the position of IME (Gborad) is correct.
Change-Id: I7441426a41019996651220e86ca90dd416ef9498
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The issue was that: if navigation bar is requested to show while a
controller is playing an animation of hiding both status bar and
navigation bar, the animation will be canceled and will stay in an
intermediate state, and then, another controller will play an animation
of showing navigation bar. At the end, status bar will stay visible but
it should be invisible.
This CL fast-forwards the insets animation to the end state if it is
canceled.
Fix: 185459811
Test: Steps in the bug.
Change-Id: Id6ae321b6c153ed1d7155afd6111b193ac9c045c
|
| |/
|
|
|
|
|
|
|
| |
Add an API to WindowInsets that allows apps to see the maximum bounds
of the system privacy indicator
Fixes: 185932128
Test: atest PrivacyIndicatorBoundsTests
Change-Id: I01d9e36ccbbea15752eccadfbce4c54bdd35ed5a
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This CL revokes navigation bar control to make navigation bar visible
while IME is showing, so the button to dismiss IME would be available.
This CL also lets IME receive visible navigation bar insets, regardless
of the navigation bar visibility.
Fix: 167971834
Fix: 186789472
Test: atest WindowStateTests WindowInsetsControllerTests
Change-Id: I2e723d4fc50d006127caa473d67c2f6af0d2cbcd
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The list would be cleared while next time we use them, so it could
constantly occupy the memory. This CL clears the temp list right after
we use the controls. So it won't occupy the memory while they are not
being used.
This CL also sends a new list to the app when dispatching the insets
animation progress. In this way, we don't need to clear mTmpRunningAnims
after dispatching it. Also, the app might use the animation list AFTER
the 'onProgress' callback. This change can make the list stay the same.
Fix: 183684434
Test: Use Android Memory Profiler to check if there is
InsetsAnimationControlImpl or WindowInsetsAnimation instances
after GCing after playing insets animation in Launcher.
Change-Id: I781233abb2c9c8400c6f76b537bef161745e67f7
|
| |/
|
|
|
|
|
|
| |
Before, the prefix was printed on a blank line above InsetsController, this wasn't intended.
BUG=140002885
Change-Id: Ife14e60400dc73232302a797b6b9b8f4d201535f
|
| |\
| |
| |
| | |
them"" into sc-dev
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit fa17d6ca37b3f434e05e286fb5f828b28bbca93b.
Reason for revert: b/185097067
The original CL makes WindowInsetsAnimationImeTests fail
Change-Id: I5ffffd613e6efcd805730825318d7a83bc9babaf
|
| |\|
| |
| |
| | |
sc-dev
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The arrays would be cleared while next time we use them, so they could
constantly occupy the memory.
This CL clears the temp arrays right after we use them. So they won't
occupy the memory while they are not being used.
Fix: 183684434
Test: Use Android Memory Profiler to check if there is
InsetsAnimationControlImpl or WindowInsetsAnimation instances
after GCing after playing insets animation in Launcher.
Change-Id: Iaae1e11d1c0cc1a9ac345beb3d7e8b596ea1b4ba
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The server might return a control without a leash to a client while the
setup-transaction of the leash has not been applied yet. If the client
tries to play the animation with the control, the animation won't take
effect.
This CL sets mIsAnimationPending while changing the requested visibility
while the leash of the real control (not the fake one in transient mode)
is not ready. So when the client receives the leash later, the animation
will be played.
Fix: 183362710
Test: steps in the bug
Change-Id: I53108bacf98ac76c3f1e46cdae0a98581bef77f5
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the dialer app previously shows IME, if the user swipe out the
dialer task to launcher or switching task and then navigating back
to dialer task, will see IME surface will fade-out because the
editor view has been cleared the focus.
The issue happens when user taping editText to show keyboard and
the IME show animaion will be skipped.
It could be related the CL[1] that we skip the animation once
when the task snapshot has the IME surface, but we should not
skip IME show animation if the launching task has been cleared
the editor focus.
[1]: I83ffc03119e01da71ad12f8ad8043cf0730dfd50
Fix: 183347520
Bug: 166736352
Test: manual as steps in commit message
Test: atest ImeInsetsSourceConsumerTest#\
testImeGetAndClearSkipAnimationOnce_expectNoSkip
Change-Id: Ib140801f1ce03b5566e756914f96dacba3ad8892
|
| |\ |
|
| | |
| |
| |
| |
| |
| | |
Test: atest InsetsControllerTest ImeInsetsSourceConsumerTest
Bug: 167947407
Change-Id: I8abb210eb20a17f5dfd6d071c57838afb9deb263
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The CL applies fade-in/fade-out animations for BEHAVIOR_DEFAULT while
changing the system bar visibility.
Fix: 168913586
Test: WindowInsetsTests
Change-Id: I6e9887baf2ba40b51c01bf2239915d381ba891a6
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Insets source window can be moved by the display area policy so that
the window would not on the edge of the display. This makes the window
cannot provide insets to the display frame. The default animation uses
the display frame to compute insets, so the moved types cannot be
animated properly.
This CL adds an insets hint to InsetsSourceControl. It is the insets
computed from its owning window bounds. With the insets hint, the insets
animation can be played regardless of the display frame.
This CL also fixes an issue that the insets animation would be played in
the wrong direction by the fixed-rotation window.
Bug: 175775686
Fix: 181939099
Fix: 163018915
Test: atest ImeInsetsSourceConsumerTest InsetsAnimationControlImplTest
InsetsControllerTest InsetsSourceConsumerTest
DisplayImeControllerTest
WindowInsetsTests (manual)
Change-Id: Ic6a8a215bd9b3a3b1af18e425dabe803c9be323e
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Created a new @hide class RoundedCorners
- The class is used to create and manager all the rounded corners.
- Created a new public class RoundedCorner
- Represent each rounded corner.
- Created a new public API in Display to get the original rounded
corners.
- Created a new public API in WindowInsets to get the rounded corners
relative to the window bounds.
Bug: 161808676
Test: atest RoundedCornerTest RoundedCornersTest
DisplayPolicyLayoutTests DisplayPolicyTests
WallpaperControllerTests
Change-Id: I58c671b0e9a077cdf26764c6302537c72db0f667
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There's a bug where we dispatch the insets state only compare to the
previous dispatched state excluding the caption insets. Make the insets
included to make sure the caption insets change can be dispatched if
only the caption insets changed.
Another issue is, when we dismiss the caption, it happens after the
window lay out traversal but before the post layout. It is necessary to
notify the insets change because there's no server insets change in the
post layout process and the app won't be able to receive the insets
change.
Test: atest InsetsControllerTest
Test: see reproduce steps in b/174718377
Test: Turn an app into freeform mode, the insets will be applied
immidiately
Test: go/wm-smoke
Bug: 174718377
Change-Id: I5c40c406fcec40c9fe87ef6fa1b54e1a2592e3bc
|
| |\ \ |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Since the display cutout is a type of insets and the display cutout can
be obtained from WindowInsets, it makes sense that InsetsState has the
display cutout instance. In this way, we can send the display cutout to
client via W#insetsChanged instead of W#resized.
This can be a step to remove the class of ClientWindowFrames, and can
also be a step to make client compute its window frame locally.
Fix: 175858810
Bug: 161810301
Test: atest WindowAddRemovePerfTest ImeInsetsSourceConsumerTest
InsetsControllerTest InsetsStateTest ViewRootImplTest
WindowInsetsControllerTests ActivityRecordTests
DisplayPolicyLayoutTests LaunchParamsControllerTests
TaskSnapshotSurfaceTest WindowMetricsActivityTests
WindowMetricsWindowContextTests WindowMetricsTest
WindowFrameTests WindowStateTests WmDisplayCutoutTest
Change-Id: I9a930b1d2f7df3cea2b29629b767a4a5f31bca17
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add hasImeWindowSurface in TaskSnapShot
- Add InsetsSourceControl#getAndClearSkipAnimationOnce for skiping
IME showing animation once when starting window with IME surface
Bug: 166736352
Bug: 153145997
Test: manual as below steps
0) Enabling developer options -> Quick settings developer tiles ->
Window animation scale to slow down transition animation.
1) Launch an app with focusing an editor to show soft-input
2) Swipe out app task to back to launcher
3) Using quick switch or taping shortcut to bring back the app task
4) Verify that should be no IME showing animation happens during
task transition.
Change-Id: I83ffc03119e01da71ad12f8ad8043cf0730dfd50
|
| |
|
|
|
|
|
|
|
|
|
| |
This change adds extra methods for triggering IME dumps, based on the
places decided on go/ime-tracing-opt.
Bug: 154348613
Test: record an IME trace through ADB Connect in Winscope and visualize
dumps at the new places added
Change-Id: Ic4be002d80c5e201a34860306bd7ab8b20560fd6
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This reverts commit 09bd8a6e386c19a0e6e6afa38074bf335eefea49.
Reason for revert: Broke the build on git_master
Change-Id: I8e77fbc5d6f6b0c51f1b7432d5ed014c871428b4
|
| |\| |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This change adds extra methods for triggering IME dumps, based on the
places decided on go/ime-tracing-opt.
Bug: 154348613
Test: record an IME trace through ADB Connect in Winscope and visualize
dumps at the new places added
Change-Id: Idbe8d512c0f1b3d3aca525f160f6e45d657e3724
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change dumps information through IME tracing for the getter methods
exposed by the InputConnection interface. The dump is done through the
ImeTracing interface and is triggered by events in the wrapper classes
used to handle InputConnection implementations corresponding to:
- different apps
- InputMethodService
The new data is available under inputConnectionCall in the clients
output proto.
Bug: 154348613
Test: flash a device
start IME tracing by calling "adb shell ime tracing start"
end IME tracing by calling "adb shell ime tracing stop"
pull generated trace files and visualize in Winscope
or start tracing directly through ADB Connect and visualize traces
Change-Id: Iabd6af1b858803030848a0ef5e7dd9ecfc562716
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This change moves from dumping information of all Input Method client
instances to dumping only the current client, which is the one in which
the triggering event happened.
Bug: 154348613
Test: flash a device
start IME tracing by calling "adb shell ime tracing start"
end IME tracing by calling "adb shell ime tracing stop"
pull generated trace files and visualize in Winscope
or start tracing directly through ADB Connect and visualize traces
Change-Id: I46460d3d08947c7d37a8969a2fed6539f35aaf91
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimized the tracing logic for the IME clients information. The
clients trigger a tracing dump through the new method triggerClientDump
exposed by the ImeTracing interface. This change was done
to be able to support custom dump for clients information and
custom dump from IMS.
This change only covers the clients information. The IMS and IMMS
information will be dumped in next changes.
Bug: 154348613
Test: start IME tracing by calling "adb shell ime tracing start"
end IME tracing by calling "adb shell ime tracing stop"
pull trace using "adb pull /data/misc/wmtrace/ime_trace_clients.pb ime_trace_clients.pb"
Change-Id: I499cb5f45a3e78912b09b9c6cedf1ce5443e797a
|