This CL polishes the app reveal animation after a cold start. It does so
by:
1. Fading out the icon during 233ms before revealing the app, as spec'ed
in the direct [1].
2. Animating the reveal gradient opacity from 0 too 100% (instead of
starting at 100% opacity directly).
See b/184830058#comment7 and #comment13 for before/after videos.
[1] https://direct.googleplex.com/#/spec/241550001
Bug: 184830058
Test: atest SplashscreenTests StartingSurfaceDrawerTests
Change-Id: Ie4561887a259eec398f8f347050f27a094026945
It is unnecessary to load icon without scale and load again
with scale. Just load the scaled one directly.
The construction time of SplashScreenView:
Dialer : 36ms -> 24ms
Messages: 21ms -> 13ms
Contacts: 27ms -> 16ms
Bug: 187104264
Test: OpenAppMicrobenchmark
Change-Id: I0b71d3038f85a0839af862e5822e10fccbe1395d
In BubbleViewInfo task where the icons are fetched, we were creating
the ringed badge for priority people but we weren't using it. Instead
the original badge drawable was being used.
This switched the app badge to be a bitmap & uses the bitmap with the
priority person ring.
Also fixes an issue where the ring would draw through a badge that
also had the work profile indicator. This is done by drawing the
highlight first and then drawing the badge on top.
Test: manual 1) have a conversation notif that can bubble
2) mark it as priority
=> Observe that the bubble is created and it has the
ringed bitmap
3) dismiss the bubble
=> check that the ring is present on the bubble in the
bubble overflow
4) repeat above steps with a bubble from workprofile,
ensure it has the ring and the workprofile badge
Bug: 185202938
Change-Id: Ief297f073f9684930b3a08fd93e90bbaae3180ca
* Pointer was missing if showing vertically on the right
side, this is fixed & tried to make the code a lil more
clear
* Pointer was missing for the bubble overflow, this is
also fixed
Bug: 181888630
Test: manual - make sure the pointer is visible when the
stack is expanded, check landscape left &
right on small & large screen and check
portrait on phone.
Change-Id: Id7dc6ae9a1f3e798940342b780940fb77ceaed3a
- Add a temp flag persist.debug.enable_reveal_animation so user can
enable reveal animation.
- Remove icon shift animation.
- For shift up animation, use AnimationAdapter to capture the surface
control and pass to Shell, then cancel the animation when
WindowState#removeIfPossible for starting window.
- Fix the flicker test fail issue caused from shift up animation, the
surface control should be release after the last frame was commit.
- Use SyncRtSurfaceTransactionApplier to synchronize the shift-up
animation, and use vsyncId to ensure the transaction doesn't applyied
too early.
- Do not play reveal animation for empty splash screen.
Test: atest SplashscreenTests StartingSurfaceDrawerTests
Bug: 183004107
Bug: 182815506
Bug: 184830058
Change-Id: I4fc8456633b3f4ecd69b168e0222915945210426
1) "ComponentName" + "States:" Sometimes confuse developers
(e.g: OneHandedControllerStates)
2) The indent of OneHandedSettingsUtil is incorrect
Test: adb shell dumpsys activity service com.android.systemui
Test: make
Bug: 187014022
Change-Id: Icca01221986efdf9a1f9975efa30e485c5be36b0
Check : go/wm-tests
Ignore the unit tests until the better approach available
Test: atest WMShellUnitTests
Bug: 184813408
Change-Id: I3139afa58ed15c535a55822504c3331771f1bfdf
Always reorder side stage to the top whenever there's a child task
appeared in side stage. This is needed to prevent main stage occludes
newly launched task in side stage and causing itself flipping between
fullscreen and multi-window windowing mode.
Fix: 186614428
Bug: 169271875
Test: enter staged split by launching task with adjacent flag, screen
won't flicker
Change-Id: I9176a97439d687bbc7b0bf2dd9ddfdaecacfa455
This CL addreses two issues:
1. PipMenuView.dismissPip was previously fading out the PIP
menu, waiting for that to complete, then notifying the task
organizer to remove and fade out the window, and then it would
fade the menu out again even though it was already hidden.
This resulted in a quick flash because the menu and the window
are not faded out in sync.
2. The menu fade out animation had a fixed duration of 150ms,
meaning that even if it starting fading out at the same time
as the PIP window, it would not finish at the same time because
the PIP exit anim duration is longer.
To fix both of them, the X button now hides the menu and starts
dismissing the task at the same time (once), and the dismiss
animation duration is equal to the task fade out animation
duration.
Previous: http://recall/-/e8RgaQ0dFlwFuh0c7GRpyy/g7XMbvBGMyAOKZMuFlYpW0
With CL: http://recall/-/e8RgaQ0dFlwFuh0c7GRpyy/g7XMbvBGMyAOKZMuFlYpW0
Bug: 182727923
Test: Tap X to dismiss PIP, no flashes seen
Change-Id: If9bdda8d0fd8b819c00ec4a592d1b2441d642d00
* Width is restricted via padding applied to the view when the device
is considered large screen
* Adjusted animation code so bubbles slide in from edges when showing
vertically
* Overflow uses max height available when on a large screen
* Fixed a bug where overflow height wasn't being updated correctly
since it's no longer using an activity
* Fixed a bug where when the view was expanded & you rotated its
position could be off
Test: manual - expand bubble on large screen from left / right edges
in landscape & portrait
=> bubbles should be anchored to edge they are opened from
& positioned vertically along the edge
- expand bubble on phone in portrait
=> bubbles should be anchored to the top edge &
horizontally
- expand bubble on phone in landscape, check overflow
=> bubbles should be anchored to the edge they are opened
from & positioned vertically along the edge, the
overflow should have a restricted width
Bug: 175211639
Change-Id: I7c3f3024260a08ebdf4c6e7c7724e51fbc480f61
Test: manual - look at user education screens for the bubble stack and
manage button in light & dark theme and make sure the
text is as expected
Bug: 183238079
Change-Id: Ia83b2e849f46c3e3eb055ff263a0171f4ad62288
1) Fix `Could not find: PipApp`, the test previously used the launcher name, instead of the window name for assertion
2) The command previously missed a `verify` call to actually execute the assertion
Bug: 186115871
Bug: 186445782
Test: atest FlickerTests WMShellFlickerTests
Change-Id: Ie9274e273bcda2be24491705cd28d7dc0d5ea5db
The core function of OHM is translate all windows down
instead of resize, it's unnecessary to set WCT & app bounds
that will introduce DA require to cache configuration in
DAInfo as well as handle configuration changes stuffs
This change ensure App Compat mode works good:
- Remove wct.setBounds() & wct.setAppBounds()
- Use float instead of bounds for transition/animation
- Remove unused code
- Reset setWindowCrop(leash, -1, -1) after rotate
- Reset setCornerRadius(leash, -1) after rotate
- Add dump() for OneHandedAnimationController
- Add dump() for OneHandedSurfaceTransactionHelper
Test: atest WMShellUnitTests
Test: maunal trigger OHM, rotate, and obseve function works
Bug: 184091042
Bug: 181091031
Change-Id: I401d9b8a79a2a1526b8683362a1e0330458141b1
When stashing, currently it assumes the entire display is usable - not
taking into insets into consideration that can be caused by navigation
bar, etc.
Bug: 186698828
Test: Manual. Stashing PIP while w/ insets now stashes correctly.
Test: atest PipSnapAlgorithmTest
Change-Id: Ia6cbb8f21b666a4ba4ee10b84e3087b6a23cd982
Test: manual - open a bubble, tap the 'manage' button
- tap the overflow
=> observe that the manage menu is hidden smoothly &
then the overflow is shown
Fixes: 185263101
Change-Id: I1703db6c5eacdec6eaab7bdebac9a910cd0ccfa9
Make sure it won't introduce redundant fling animation when touch on
divider bar didn't exceed tap threshold. This make sure it won't queue
extra sync transactions with SyncTransactionQueue. Also skip redundant
checks after detected double tap in staged split.
Fix: 186626153
Fix: 179004532
Test: tapping on divider bar of legacy and staged split, it won't make
split sloggish.
Change-Id: I2a326f54f25d77e86fa51bca67b68daca21dedfc
Add a field of supportsMultiWindow to TaskInfo for WM Shell to use.
Because we will change to Task#supportsMultiWindow to check the
support based on the root activity's resizibilty, min widht/height,
and the device settings, using this to replace the check in
ActivityTaskManager, which is pure device settings.
Bug: 176061101
Test: atest WMShellFlickerTests
Change-Id: Iad94b39506e71b6224d923f02bd7fc454cae02c8