- In TaskViewSimulator.addAppToCarouselAnim, make sure carouselScale stays at 1f when it's atomicEvent (3 button, KEYCODE_APP_SWITCH, keybaord etc,), as we transition direclty from fullscreen to Overview without involving the carousel
- Made AnimatorSet pass to onPrepareGestureEndAnimation @NonNull, to avoid diverged code path handling null AnimatorSet.
- For 3-button/Keyboard interactions, pass the gesture AnimatorSet with a boolean that indicates atomic event; some float peroperties will immediately settle while it's atomic: GRID_PROGRESS, TASK_THUMBNAIL_SPLASH_ALPHA
- For home gesture, pass a new AnimatorSet that will be played immediately with 0 duration
- Converted onPrepareGestureEndAnimation to Kotlin, and removed the code path when animatorSet is null
- updateGridProperties is now called based on displayOverviewTasksAsGrid, which is effectively the same check as endTarget == GestureState.GestureEndTarget.RECENTS;
- RECENTS_GRID_PROGRESS is no longer caleld per remoteTargetHandle, which duplicates the animaton for nothing, as it's a per recents rather than per task property
Fix: 405384582
Fix: 407059929
Flag: EXEMPT bug fix
Test: Swipe up/KEYCODE_APP_SWITCH/Recents button with default and 3p Launcher
Change-Id: I56ba9137219f6d7cb982d8e5a3534f09ba3d189d
Update the chip z-index of IconAppChipView when bringing it to front or sending it back. This change fixes the elevation when chip is expanded over another chip for split tasks.
Update the task z-index when bottom row chip is expanded to guarantee the chip will be displayed above other TaskVIews.
Fix: 406696829
Fix: 317007147
Flag: com.android.launcher3.enable_overview_icon_menu
Test: OverviewImageTest
Test: OverviewSplitTaskImageTest
Change-Id: Ie68898beea0a012ba083fe1b950e82896ea14c41
- Introduced title and titleCollapsed to change the text when expanded and collapsed using only 2 dots for truncate the text, similar to ellipsize="marquee".
- Removed ellipsize="marquee" from the XML to prevent chip relayout when entering in Overview. See b/406969521.
Fix: 406969521
Fix: 403193877
Flag: com.android.launcher3.enable_overview_icon_menu
Test: OverviewImageTest
Test: OverviewSplitTaskImageTest
Change-Id: Ia95eb8b7ec6d22b9d576defe7c66a4950ee1dca3
The psApp icon will have an original title "Private Space" but should
only be "Add" in the container.
bug: 360313403
Test: manually:
Before: https://hsv.googleplex.com/6348079987949568
After: https://hsv.googleplex.com/6126091247812608
Flag: android.multiuser.enable_moving_content_into_private_space
Change-Id: Ifcb599cdb5f4a97e2da68cafa81f23b387a2beb6
`IconView` creates a new drawable and makes it mutate for scaling it during some animations. The `setDrawable` function there also performs more logic and invalidate the view. Thus, every time `setDrawable` is called in the `IconAppChipView`, even if the same drawable is provided, it will unnecessarily create a copy of the drawable, invalidate and redraw the whole view.
To prevent this inefficient behavior, a hash check has been introduced in `IconAppChipView`. This hash check skips the redundant logic if the same drawable is provided to `setDrawable`.
Bug: 402613435
Flag: com.android.launcher3.enable_overview_icon_menu
Test: OverviewImageTest
Test: OverviewSplitTaskImageTest
Change-Id: I3d20fa6bfc7aaf79222469ad88080985d4c1d1a0
Surface reparenting was happening on every frame since we call
applyDepthAndBlur on each frame during animation. Instead we can do it
only when base surface is set. mBlurSurface should always be parented to
mBaseSurface so no point in calling it again and again.
Relative layer changes only when we either draw above or recents. While
drawing above recents, mBaseSurface relative layer should be used.
mBaseSurfaceOverride otherwise. No point to call this during animation.
Added perfetto traces comparison home->all apps, alongwith all other
generic overview scenarios which possibly could have caused jank is
added here:
https://drive.google.com/drive/folders/146K_4WLaOGQcZ1gsuhCFlOCzfZ-mJBw8?resourcekey=0-r1-NnNtYGH88d8DGEvnXZg&usp=sharing
Bug: 404647629
Test: Manual. Enter overview from Desktop tile / home.
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I567d6b8615685e5c50ef7b7b15787fa56cb2da79
If launcher is destroyed while the recents animation start is pending, then the taskanimationmanager and absswipeuphandler states are not properly cleaned up. Adding a new cleanup flow to handle this case.
Flag: EXEMPT bug fix
Fixes: 405642423
Test: adb shell cmd uimode night yes/no while TaskAnimationManager.mRecentsAnimationStartPending == true
Change-Id: I7bf1fc4fc07859f92d7aec6cd78deafa1214dd17
Fix the bug introduced by ag/32547343.
Getting the corresponding `DesktopTaskView` from the `deskId`
instead of `deskDisplayId`.
Bug: 406340124
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: Ifaa9a9602cb95c871dee16f874c2b4a51404aad1
Stash handle alpha animator was set to control the visibility of the
view. This caused issues with the state as sometimes the alpha animation
conflicted with the state of the bubble bar. And caused the handle to be
visible when the bubble bar (or handle) should not be.
Remove the ability for the handle alpha animator to manage the
visibility. We already have logic in place to ensure that the stash
handle is visible or invisible based on the state. And it is not needed
for the animator to manage it.
Bug: 392121302
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest NexusLauncherRoboTests
Test: move an app to bubble, move it back to fullscreen, check that
handle is hidden
Test: check that handle is hidden and shown when in app and opening
notif shade
Test: check that handle is hidden and shown when in app and locking and
unlocking device
Test: check that handle is shown when receiving bubbles in app and the
bar stashes after showing new bubbles
Change-Id: I4af8b4fa38f63b3cbc01f9cf59e66d7fc651ab13
Inside `RemoteTargetGluer`, create the `RemoteTargetHandle`
based on `GroupedTaskInfo`.
Bug: 406340124
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Test: m
Change-Id: I0603d0b05fbc4fa8042ef1da27b2cf95226969d9
With the dagger update the initialization happens in constructor which
we would avoid once we work on refactor and move it into a repository
class. The list will also be fetched from a different data source, so,
makes sense to delete it at the moment.
Bug: 406324964
Flag: EXEMPT BUGFIX
Test: Not applicable as code is removed
Change-Id: Iab8bb1e94677abf9b5b882f4d3485b002faf3e0f
1. Pass bubble bar size properties to DragZoneFactory for generating
a drop target for the bubble bar.
2. Update the dismiss X circle position.
Flag: com.android.wm.shell.enable_bubble_to_fullscreen
Fixes: 404920503
Fixes: 404916611
Test: manual
- turn enable_bubble_to_fullscreen flag on
- drag the bubble bar and an individual bubble through the
dismiss zone
- observe behavior
- repeat with flag off to verify existing behavior
Change-Id: I877648763e3043551f678e382abd97c7e625b483