Only remove divider when it needs to be removed or moved between All Apps and recents locations. Keep All Apps and QSB in Taskbar at all times. LayoutTransition does not work if views are being removed and then immediately readded (what current code branch does).
Overflow is not supported yet with the LayoutTransition flag.
Test: go/tested-equals
Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 368522274, 343521765
Change-Id: I9ae1d7c52e853106cdf86329be6f221213e7cb86
Fixes an issue where hotseatItems may not reflect the number of hotseat views in Taskbar. Entries in the array can be null (e.g. no predictions but there is space in the hotseat for them). If these are filtered out immediately, hotseatItems.length will correspond to the number of hotseat views.
Test: go/testedequals
Flag: EXEMPT bugfix
Fix: 379704910
Change-Id: I375d8152fccb6df5a9b783842ecf5dcedf6894c1
Add a semaphore to block the test until the bubble bar is expanded.
100x run: http://ab/I94900010337166460
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 380023942
Test: ab link above
Change-Id: I473208255ef658ee532f54c2665889ee5c24e39e
When the IME becomes visible, interrupt the bubble animation if it's
running. This ensures that the flyout doesn't show over the IME and
is more consistent with the behavior of bubble notification when the
IME is visible.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378404363
Test: atest BubbleBarViewAnimatorTest
Test: manual
- launch app
- send bubble
- while bubble is animating launch IME
- observe flyout not visible over IME
Change-Id: I28390982bb41d8cc9b494395418728ff5fb373b6
TaskThumbnailView
- Set cornerRadius directly from TaskView instead of calulating and listening from ViewModel
- Use onSizeChagned/width/height for OutlineProvider bounds, to be consistent with DesktopTaskContentView
DesktopTaskView
- Moved backgroundView inside DesktopTaskContentView, so its outline can be determiend by OutlineProvider in DesktopTaskContentView
- Update DesktopTaskContentView's cornerRadius when it changes in TaskView
Model/Data chagnes
- Removed TaskViewModel/TaskViewData and scale from RecentsViewData
TaskView
- Add a onBind method to be called after bind, for common post bind handling (e.g. update cornerRadius)
TaskViewSimualtor
- Use DesktopFullscreenDrawParams for desktop task, and moved setIsDesktopTask to CTOR so related fields can be final
Bug: 372237039
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Flag: com.android.window.flags.enable_desktop_windowing_mode
Test: TaskThumbnailViewScreenshotTest, OverviewDesktopTaskImageTest
Test: DesktopFullscreenDrawParamsTest, FullscreenDrawParamsTest, TaskThumbnailViewModelImplTest
Change-Id: If3d195ef6596aa28fce4d4875cf45423cb71811c
This is in support of long-lived return animations in the Animation
library. Sometimes we want the home gesture to minimize the
foreground app into a custom view other than the default Launcher
behavior.
For example, ongoing call will minimize to the status bar chip, even if
the app icon is on Home. This is guaranteed to be handled is the
takeover handler is not null, and only happens in this case (which means
a custom animation has been registered and is ready to run).
Bug: 323863002
Bug: 202516970
Flag: com.android.systemui.shared.return_animation_framework_library
Flag: com.android.systemui.shared.return_animation_framework_long_lived
Test: manual and unit test included
Change-Id: Id7cd1f6e92ad3cbe3c259b3f80c753c91472b455
The tests verify that number of icons in the task bar does not go beyond
the intended max number, that the taskbar remains centered as it hits
max number of icons, and maintains a minimal margin to the display
edges.
Also, has a test that the max naumber of icons and the taskbar margins
adapt as bubble bar visibility chages.
Adds a TestRule to mock the recents model in the taskbar window sandbox.
The mocked recents model is used to add fake running app icons to the
taskbar.
Bug: 368119679
Test: atest TaskbarOverflowTest
Flag: EXEMPT test only
Change-Id: I8d033c3e95d7c0a4b139502cd7d70882482117c0
Bug: 373544911
Test: TaskbarNavButtonControllerTest
Test: Manual, i.e. verify that pressing buttons in 3-button-nav while the back button is pressed does not have any effect
Flag: com.android.window.flags.predictive_back_three_button_nav
Change-Id: I5abad5f2f74d09c790380a2eeb27aff3b780b925
This cl includes
- making pinned taskbar animate slide in/out animation from bottom of screen.
- no icon aligment with hotseat when taksbar is pinned
The solution
- upon state change applied on TaskbarLauncherStateController. offset taskbar background and icons to bottom of screeen and animate with slide in/out effects.
Test: manual, presubmit
Bug: 314279101
Flag: EXEMPT bugfix
Change-Id: Ife336ebd57eb2f60c2bc33ed6a4527c42111808f
- When enable_shell_top_task_tracking is enabled, use the shell
provided signals to keep an up-to-date running (visible) task list
on the Launcher side, instead of managing the list via to-front
signals from Core via TaskStackListener. In doing so, we also
update CachedTaskInfo to use this visible task list in preparation
for future refactoring to use the GroupedTaskInfos directly instead.
Bug: 346588978
Flag: EXEMPT adding new flag enable_shell_top_task_tracking
Test: Build SystemUI & Launcher
Test: atest WMShellUnitTests
Change-Id: I16d515243760a17258a727e2502e35387da87589
This change updates the flyout animation interpolator to an
emphasized curve and updates the color animation so that it completes
within a shorter period of time. Speeding up the color animation
makes the color transformation smooth.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378077265
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Change-Id: Idd38fc71543f629aeb568d72386a9b9def51c307
When device is rotated, taskbar goes through recreate flow.
LauncherTaskbarUIController restores the state for taskbar in-app
display multiprop.
Ensure that bubble bar is positioned within the taskbar bounds.
The multiprop values in LauncherTaskbarUIController for taskbar in-app
display progress can be restored from shared state when the device
rotates. But this means when we receive updates to various indexes, the
progress for that index may not match what is the actual value of the
multiprop. As it relies on the max function.
Make sure we pass along the actual value for in-app display progress
when updating bubble bar and not the value for the index that got
updated.
Also make sure bubble bar translation always updates when updates are
received as this is the only path for bubble bar to receive updates.
Make sure that when we do override bubble bar translation using in-app
display progress, any existing animation for bubble bar translation y is
cancelled. Otherwise the unlock animation was animating the bubble bar
to the incorrect position after unlock.
Bug: 377621110
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest PersistentBubbleStashControllerTest
Test: manual, have bubble bar with 3 button nav, swipe to -1 and rotate
the device, observe that bubble bar is in the correct position
Test: manual, repeat same test with all apps open, observe that bubble
bar has correct position after rotation
Test: manual, with gesture navigation, observe that bubble bar has
correct position on home screen, -1 and all apps after rotation
Change-Id: I66138e003c4b371299e40558fdadc142fbdbbcd5
Change logic to updated bubble properties even we do not have any
bubbles.
Fixes: 376141825
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Set 3 button navigation mode, rotate the device.
Change-Id: Ide6df73b3b24c628a0f9e6db6582d4e2ddadfc04
When taskbar is in pinned mode with bubble bar expanded, in some
scenarios, we hide taskbar contents (i.e. when bubbles overlaps with
taskbar) and the scrim still shows.
One of the existing tests in TaskbarScrimViewController checks that
the scrim would be 0 when taskbar is not visible, however, in the
bubble bar case this isn't always true... I think there probably are
cases where taskbar isn't visible for other reasons (e.g. shade is
pulled down, but there are other tests specific to that). I'm
setting this test to only run when bubble bar isn't running, because
in that case bubbles never impacts taskbar visibility.
I added a test case to ensure scrim is hidden when pinned BUT bubble
bar is on home -- in this case we shouldn't show the scrim.
When adding the enableFlag/disableFlag I saw some NPEs in onDestroy
methods of some controllers so I protect against those as well.
Flag: EXEMPT test change
Test: atest NexusLauncherTest:TaskbarScrimViewControllerTest
atest NexusLauncherRoboTest:TaskbarScrimViewControllerTest
Bug: 377764181
Change-Id: I71001222aa8a4393b341dd2b43a4b2e46e617a70
When persistent taskbar is used, bubbles align with hotseat when
launcher state is home. But when user navigates to the -1 page or all
apps, we show the persistent taskbar instead of hotseat.
3 button navigation container shifts in this case. Apply the same shift
to bubble bar.
Bug: 376141984
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest PersistentBubbleStashControllerTest
Change-Id: I2765936e0bac43a790b628e7df2a1b4ddad32cae
After the flyout initializes to its collapsed state, hide the
notification dot so that the flyout and dot will seem visually as
one.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 376276297
Test: atest BubbleBarFlyoutControllerTest
Change-Id: Ie581ddcd56a26844526f80b2169639c1a7d87500
When a new bubble notification is pushed during an ongoing animation
we now update it to reflect the new bubble.
- If the current animation is in the middle of animating in,
we only update the animating bubble without interrupting the
current animation. The flyout content will show the data for the
new bubble.
- If the current animation is in the IN state, then the flyout is
showing and we're just waiting for it to be hidden. In this case
we update the flyout and reschedule the hide animation to run after
a delay.
- If the current animation is animating out,
- If we're in the middle of collapsing the flyout, we reverse it
so it shows with the new content and reschedule the hide animation
- If the flyout is gone already, then we reverse the handle animation
and show the flyout. If the handle animation is not running, then
the animation is already over.
Not really related to this change, but while testing one of the tests
was flaky, so rewrote it to make it deterministic.
25x runs: https://android-build.corp.google.com/test_investigate/invocation/I56000010330987902/test/TR44729496826317635/
Demo of interrupting the animation while animating out: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/cu4fLeFlnDkg7mDVaaDTB
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 277815200
Fixes: 346400677
Test: atest BubbleBarFlyoutControllerTest
Test: atest BubbleBarViewAnimatorTest
Change-Id: I2b4af36d39bedbdfc4a08a988967ccbc33c06522
The Taskbar under test should now be sufficiently isolated from
Launcher, so we no longer have to suspend it.
Flag: TEST_ONLY
Bug: 230027385
Test: go/testedequals
Change-Id: I20cff11c90208b59f1dca3730ec3978913c43a50
Add functions to allow updating the contents of the flyout while it
is either expanding or fully expanded.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarFlyoutControllerTest
Change-Id: Iea3fc7df792e02605df6b44c1da39e267f6d9d43