- 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
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
Expand the bubble bar when the user taps on the flyout view.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Change-Id: I156acfa663d6a00bc70dd7bbfc35642643902d83
Added a method to the device profile to calculate the vertical center of
the hotseat icons. Simplified the logic for positioning the bubble bar.
Test: TransientBubbleStashControllerTest
Test: PersistentBubbleStashControllerTest
Test: Visual. Go to home page, check that bubble bar is vertically
center aligned with the hotseat
Bug: 345491493
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I52f1b94de79f6c912f43a88fcc5c884e20e56310
Continued quick switch couldn't work using existing infrastructure until RecentsWindowManager could be properly tracked by ActivityTracker. Refactored ActivityTracker into ContextTracker to support this.
Also refactored ActivityInitListener into ContextInitListener to fit the updated pattern.
Flag: com.android.launcher3.enable_fallback_overview_in_window
Fixes: 366023051
Test: RecentsWindowSwipeHandlerTestCase; Attempted continued quick switch from home and launched app
Change-Id: Ic38ebf3611ef22fbfd1ddeb79d72d8a3621940a0
* changes:
Set task properties to prevent the task being null. This behaviour is expected by existing callers and was likely broken by ag/28151977
TaskRepository performance improvement
This CL improves Overview's performance by preventing multiple thumbnail and icon fetches for visible tasks. It introduces manual cancellation and removal of tasks that are no longer visible to prevent fetching and listening to changes in such tasks.
- Renamed 'augmentedTasks' to 'tasks' and updated it to be a MutableStateFlow with a map of Task Id and Task.
- When a new task becomes visible, the task is added to a list of requests along with a Job that fetches the Thumbnail and Icon. Additionally, 'taskVisualChangesDelegated' is added and removed for that task per request.
- When a task becomes invisible, the Job is canceled to prevent fetching the Thumbnail and Icon. The thumbnail and icon are cleared from the list of tasks, and the listener from 'taskVisualChangesDelegated' is unregistered.
- The list of tasks is updated when the list of visible tasks changes and a new thumbnail or icon is updated. This list is also updated when a force fresh from getAllTaskData is requested.
Fix: 373361888
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TasksRepositoryTest
Change-Id: Ifd9c54fdfcb85463c043c121fb829dec3e9faedc
This CL didn't improve the performance metrics significantly enough to use Executors.MAIN. b/366077002#comment12
This reverts commit 7eae20bcb1.
Reason for revert: 366077002
Change-Id: Ic92b83a65aef7f8cd5c00110fb1ab7343d4b12b6
When a bubble is created or updated we now animate the flyout view
as part of the bar animation.
Note that the flyout is not clickable yet, and that we're not yet
handling bubble notifications interrupting each other.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Test: manual
- verify flyout view is showing when creating bubble
- on home
- in app
- when bubble bar is empty
Change-Id: I315e46c89a4d20aaaa22972f0d71290a63481d9d
SettingsChangeLogger depends on DisplayController which needs to be migrated
first. Otherwise it introduces a deadlock when initializing DisplayController
in constructor
Bug: 373557167
Test: Manual (will merge automated tests once all culprits are resolved)
Flag: EXEMPT dagger
Change-Id: I2386812693e470bcee1a64d5cec49c03fd36f230
This change updates the taskbar window size after the flyout view
has measured itself. This ensure that the taskbar window is tall
enough to display the entire flyout.
When the flyout is removed we reset the taskbar window size.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: builds successfully and tested manually -- code is not wired up
Change-Id: I5e8618e57443212e1c4f19ab20d1542ae2d1b865
This change will reduce the increase in the amount of missed frames measured by crystalball. I believe coroutines launch is competing with Executors.MAIN for scheduling and running tasks in the main thread, thus the increase in missing frames.
Fix: 366077002
Flag: com.android.launcher3.enable_overview_command_helper_timeout
Test: OverviewCommandHelperTest
Test: android.platform.test.scenario.launcher.CloseApp3ButtonModeMicrobenchmark#testOpenLauncher
Test: atp:v2/android-crystalball-eng/health/microbench/launcher/main/launcher-action-suite
Change-Id: I4477879d4f065ec3883f2c3cb3ef044e973ce0cb
After changes following swipe interactions are available for the bubble
bar:
1. stashed handle
- swipe up to show bubble bar, after swipe reaches unstash threshold, we
show the bubble bar
- swipe down to stash bubble bar in the same gesture (without lifting
finger), do this when swipe moves back below unstash threshold
- expand bubble bar on finger lifted when currently above unstash
threshold
2. collapsed bubble bar (used in home or overview)
- swipe up and release over unstash threshold to expand bubble bar
- bubble bar can't be swiped down to stash it
3. expanded bubble bar
- no swipe interactions available
Bug: 371229061
Flag: com.android.wm.shell.enable_bubble_bar
Test: BubbleBarSwipeControllerTest
Test: manually test:
- stashed bubble bar:
- swipe up and back down => bubble bar shown and stashed
- swipe up slightly and release => bubble bar not shown
- swipe up and release => bubble bar shown, expands on release
- collapsed bubble bar:
- swipe down => no action
- swipe up slightly => no action
- swipe up and release => bar expands on release
Change-Id: I42aa59dc288446603e06a3d02419be38cf17fa1f
This class has even better sandboxing and is a TestRule, making it easy to tear down singletons.
Flag: TEST_ONLY
Fix: 369504330
Test: go/testedequals
Change-Id: I86fbfecc275da536ab745d61bef8b9bebb28379c
Extracts the flyout message from the bundle and stores it in
BubbleBarBubble.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: builds successfully -- code is not wired up yet
Change-Id: I5e810290991b4ee638f43add4d6a6514edb167af