Commit Graph

331 Commits

Author SHA1 Message Date
Johannes Gallmann
511f6d5778 Fix TaskbarNavButtonControllerTest failure
Bug: 380036619
Flag: com.android.window.flags.predictive_back_three_button_nav
Test: TaskbarNavButtonControllerTest
Change-Id: I1ef04d8ef17c2eacb6a6bc352a01ec3cbf3a10c4
2024-11-20 15:54:35 +01:00
Johannes Gallmann
8f8d29888a Merge "Disable 3-button-nav buttons during back button hold" into main 2024-11-20 08:39:42 +00:00
Toni Barzic
7a0191e753 Add unit tests for taskbar overflow
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
2024-11-20 01:48:54 +00:00
Johannes Gallmann
a4b56465ee Disable 3-button-nav buttons during back button hold
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
2024-11-19 22:11:59 +00:00
Brian Isganitis
79809b448c Merge "Add annotation to simulate RTL in tests." into main 2024-11-19 16:30:34 +00:00
Jagrut Desai
a9095ca0c8 Merge "Fix launching app animation from launcher all apps." into main 2024-11-15 22:43:39 +00:00
Brian Isganitis
01eb1e037b Add annotation to simulate RTL in tests.
Flag: TEST_ONLY
Bug: 230027385
Test: go/testedequals
Change-Id: Idc4ca404179359a6dc4fac160b7a865c5709f137
2024-11-15 15:09:37 -05:00
Jagrut Desai
596594c684 Fix launching app animation from launcher all apps.
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
2024-11-14 15:51:50 -08:00
Treehugger Robot
85f34826f1 Merge "4b/ Migrate TopTaskTracker to use visible running tasks from Shell" into main 2024-11-13 23:47:27 +00:00
Treehugger Robot
6f10fb57a4 Merge "Fix test failures in AbsSwipeUpHandlerTestCase" into main 2024-11-13 20:46:09 +00:00
Schneider Victor-Tulias
e7e752e011 Fix test failures in AbsSwipeUpHandlerTestCase
AbsSwipeUpHandlerTestCase caused test failures when running locally on device.

Flag: EXEMPT testing fix
Bug: 371020209
Test: AbsSwipeUpHandlerTestCase
Change-Id: I7b47b5642223e81c6bb9991a7ff271ba8ffff0ba
2024-11-13 13:23:29 -05:00
Liran Binyamin
12d34f8e2a Merge "Make the flyout color animation smooth" into main 2024-11-13 16:14:07 +00:00
Winson Chung
dde53a10e3 4b/ Migrate TopTaskTracker to use visible running tasks from Shell
- 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
2024-11-13 07:05:43 +00:00
Mykola Podolian
40cb4bf335 Merge "Fixed bubble bar size for the 3 buttons navigation mode." into main 2024-11-13 00:25:36 +00:00
Ats Jenk
d3a4f9f721 Merge "Fix bubble bar position on recreate" into main 2024-11-12 18:11:39 +00:00
Liran Binyamin
09403e7d9a Make the flyout color animation smooth
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
2024-11-12 10:49:09 -05:00
Treehugger Robot
9b44959f68 Merge "Move logic onto default dispatcher. Clearing main - stop performance bug" into main 2024-11-12 14:24:21 +00:00
Ats Jenk
5ad93d97fa Fix bubble bar position on recreate
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
2024-11-11 23:21:30 -08:00
mpodolian
5f7785a4d4 Fixed bubble bar size for the 3 buttons navigation mode.
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
2024-11-11 18:05:48 -08:00
Treehugger Robot
d89f2f14f7 Merge "Fix some tests in TaskbarScrimViewController for bubble bar" into main 2024-11-11 21:03:49 +00:00
Mady Mellor
1d1e50d33b Fix some tests in TaskbarScrimViewController for bubble bar
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
2024-11-11 11:03:58 -08:00
Uwais Ashraf
36e0c2521a Move logic onto default dispatcher. Clearing main - stop performance bug
Bug: 377437341
Fix: 374061907
Fix: 357542211
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual - checking slowed down videos of performance
Change-Id: Idab5bd0728395413159a7aafbba8faec62e520a3
2024-11-11 13:39:46 +00:00
Ats Jenk
e93688f77d Merge "Translate bubble bar when in -1 or all apps" into main 2024-11-08 22:46:40 +00:00
Ats Jenk
72d176c407 Translate bubble bar when in -1 or all apps
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
2024-11-08 10:23:18 -08:00
Johannes Gallmann
652e49dc03 Merge "Add predictive back animation for 3-button-nav" into main 2024-11-07 07:59:38 +00:00
Johannes Gallmann
bc4936fb6b Add predictive back animation for 3-button-nav
Bug: 373544911
Flag: com.android.window.flags.predictive_back_three_button_nav
Test: OverviewProxyServiceTest
Test: TaskbarNavButtonControllerTest
Test: TaskbarScrimViewControllerTest
Change-Id: I04cadc660f38e2d4541b06fcda950098a0768492
2024-11-06 11:02:13 +01:00
Anushree Ganjam
2d55010135 Make ContextualEduStatsManager injected by Dagger (13/n)
Bug: 361850561
Test: Manual
Flag: EXEMPT Dagger Integration
Change-Id: I0150ad8edeac1746e27b7d919891d02e648413be
2024-11-05 14:53:01 -08:00
Liran Binyamin
65edaf53af Merge "Hide bubble dot after flyout init" into main 2024-10-31 22:46:56 +00:00
Liran Binyamin
0e8093ae92 Hide bubble dot after flyout init
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
2024-10-31 15:56:19 -04:00
Liran Binyamin
3955e224be Merge "Handle new bubble notification during animation" into main 2024-10-31 13:56:06 +00:00
Liran Binyamin
0242d124c2 Handle new bubble notification during animation
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
2024-10-30 16:57:08 -04:00
Brian Isganitis
bab87b1551 Stop suspending Launcher Taskbar in tests.
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
2024-10-29 19:15:58 -04:00
Brian Isganitis
722d7b8dc9 Sandbox SettingsCache for Taskbar tests.
Flag: TEST_ONLY
Bug: 230027385
Test: go/testedequals
Change-Id: I751cdab5cca443111c28e5f752c8abb06410dc2c
2024-10-29 19:15:58 -04:00
Treehugger Robot
331c3e3bef Merge "[Dagger] Make SystemUiProxy provided by DaggerSingletonObject" into main 2024-10-29 21:57:58 +00:00
Schneider Victor-Tulias
716a154211 [Dagger] Make SystemUiProxy provided by DaggerSingletonObject
Test: presubmit
Bug: 361850561
Flag: EXEMPT dagger migration
Change-Id: I00cb14ec5d7e423a34c88e75d1bcf9db4f0ae229
2024-10-29 16:01:36 -04:00
Liran Binyamin
6fc00481ab Merge "Allow updating the flyout message" into main 2024-10-28 20:48:45 +00:00
Liran Binyamin
35e6157303 Allow updating the flyout message
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
2024-10-28 09:58:37 -04:00
Liran Binyamin
abc4b6a137 Merge "Handle taps on bubble bar flyout" into main 2024-10-24 13:26:50 +00:00
Mykola Podolian
4dc6617988 Merge "Updated bubble bar position to be center aligned with the hotseat" into main 2024-10-24 02:10:43 +00:00
Liran Binyamin
aa3f772622 Handle taps on bubble bar flyout
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
2024-10-23 19:46:14 -04:00
mpodolian
f230eee2ff Updated bubble bar position to be center aligned with the hotseat
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
2024-10-23 14:44:40 -07:00
Treehugger Robot
08007068d4 Merge "Generalize ActivityTracker to support RecentsWindowManager" into main 2024-10-22 21:26:58 +00:00
Schneider Victor-Tulias
8463dc47eb Generalize ActivityTracker to support RecentsWindowManager
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
2024-10-22 15:29:59 -04:00
Uwais Ashraf
bea43b0c03 Merge changes I54ea7a71,Ifd9c54fd into main
* 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
2024-10-21 22:40:51 +00:00
Uwais Ashraf
62495bbda7 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
2024-10-21 14:34:12 +00:00
Jordan Silva
4a08fcc3d9 Merge "Revert "Update OverviewCommandHelper to use Executors.MAIN to reduce the percentage of missed frames"" into main 2024-10-21 13:18:28 +00:00
Liran Binyamin
2c908e2c10 Merge "Wire up flyout to new bubble animation" into main 2024-10-21 12:20:23 +00:00
Jordan Silva
3a4d67b965 Revert "Update OverviewCommandHelper to use Executors.MAIN to reduce the percentage of missed frames"
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
2024-10-21 10:21:56 +00:00
Jagrut Desai
c1227779a6 Enable TaskbarEduTooltipControllerTest
Test: Presubmit
Bug: 374312336
Flag: EXEMPT enabling ignored test
Change-Id: I606ab909d5d9b366674492855a940a0f6cc77a86
2024-10-18 09:20:41 -07:00
Liran Binyamin
12f77ba713 Wire up flyout to new bubble animation
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
2024-10-18 08:00:05 -04:00