Commit Graph

264 Commits

Author SHA1 Message Date
Brian Isganitis 75d443ffdb Initial overflow compatibility with layout transition.
Also implements RTL support for overflow.

Flag: com.android.window.flags.enable_taskbar_recents_layout_transition
Bug: 343521765
Test: go/testedequals
Change-Id: I34983821a2a1a80793dc6d811d42cfeafe274ef4
2025-03-04 12:05:58 -08:00
Brian Isganitis 42c58e39fd Migrate layout transition flag to DesktopModeFlag version.
Flag: com.android.window.flags.enable_taskbar_recents_layout_transition
Bug: 343521765
Test: go/testedequals
Change-Id: I175e428240bc52689efe0f6e4457620ac2efdbb5
2025-03-04 11:30:23 -05:00
Brian Isganitis 8127148e02 Exclude All Apps divider in desktop mode.
Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 315354060
Test: go/testedequals
Change-Id: Ic9cf42ad9a81357fe7452ed576663bedb54fbcf7
2025-03-03 14:42:16 -05:00
Treehugger Robot 9a5cd11da5 Merge "Move MainThreadInitializedObject to Launcher3 Go." into main 2025-02-27 13:03:12 -08:00
Anushree Ganjam e6065f5a94 Move MainThreadInitializedObject to Launcher3 Go.
Move SandboxContext to a separate class.
Remove all MainThreadInitializedObject references in Launcher3 and tests.
Remove ObjectSandbox interface and make RoboApplication extend
SandboxContext

Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I1a8af5e6ae59df44d8ad6732b4d6e949ac402d6c
2025-02-26 16:49:08 -08:00
Treehugger Robot 006ea72afe Merge "More test for taskbar overflow" into main 2025-02-25 22:35:47 -08:00
Brian Isganitis fbd55aeda4 Merge "Have per-environment bindings for Taskbar multivalent tests." into main 2025-02-25 09:53:16 -08:00
Sukesh Ram f1ec7a7699 [CD Taskbar] Refactor TaskbarManager - Add Debugging Support for Stability.
Refactor TaskbarManager & add Debugging Support for Stability. Centralize all existing logging behind existing logging methods.

Bug: 398878697
Bug: 382378283
Bug: 391653300
Test: m
Flag: EXEMPT not adding new behavior
Change-Id: I3f131b5e9ce720140c1d3eb46a53a4763926df83
2025-02-25 02:52:48 -08:00
Toni Barzic 501562f09a More test for taskbar overflow
Adds tests to TaskbarOverflowTests to verify that:
*   tapping overflow view toggles keyboard quick switch view
*   tasks associated with a hotseat item don't get added to
    recents taskbar section / overflow view
*   keyboard quick switch view shown from taskbar contains
    running tasks, excluding tasks associated with a hotseat item

Bug: 379774843
Flag: com.android.launcher3.taskbar_overflow
Test: atest TaskbarOverflowTest

Change-Id: Iee6316c33cef6322d567e853f9fa358b7af9e172
2025-02-25 04:39:23 +00:00
Jagrut Desai 8b2e5eff9b Desktop Mode Taskbar Recreate Animation
This Cl includes
       - addition of entry/exit callback methods in DesktopVisibilityController.
       - taskbar manager now listens to desktop mode changes.
       - TaskbarBackrgroundRedererer can now individually animation backgrounds for transient and persistent taskbars
       - new channel for taskbar icon alpha added to TaskbarViewController
       - new animated float to handle background alpha while we are recreating taskbar with animation.

Solution:

we use the callabck we get from DekstopVisibilty for entry/exit to first change logic of when we are considered inDesktopMode. Upon entry/exit we notify display controller for info change.
we also at notify taskbar manager who is now a listener to the desktop mode change and start the recreate process. TaskbarManager first animates existing taskbar out of user view and then follows the original recreate flow.

Test: Presubmit
Bug: 343882478
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ib827564cacd194f499e7d9b1965e2bb13e3548ab
2025-02-24 11:59:53 -08:00
Ahmed Fakhry dafc2d4c42 Add deskId to DesktopTask.
Now that `GroupedTaskInfo` propagates the `deskId` from
Shell (see ag/31825217), we need to plumb this value in
Launcher through `DesktopTask`.

Future CLs will use this value in Overview.

Bug: 395911284
Test: m, modified existing tests.
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I396250e0cac761c4c5f7e8b2d6cddbe68e646217
2025-02-21 17:50:13 +00:00
Mykola Podolian a593d2a7da Merge changes I6fe1139e,I581dddf2 into main
* changes:
  Handle new bubble notification while drag is in progress.
  Made the bubble bar react to drag events from the Shell.
2025-02-18 14:03:17 -08:00
mpodolian 39c4bf2448 Handle new bubble notification while drag is in progress.
Handle new bubble notification while drag is in progress. Updated logic
to react to new bubble notifications arriving during drag operations
before a drop occurs.

Bug: 388894910
Flag: com.android.wm.shell.enable_create_any_bubble
Test: BubbleBarViewAnimatorTest
Test: Manual. Go to some application and have no bubbles. Start
dragging the taskbar icon over the bubble bar drop zone. Trigger new
bubble with the bubbles test application. Observe drop target is
hidden and new bubble is animated in, followed by flyout. When flyout
disappears, bubble bar remains on the screen. Release icon over the
bubble bar. Observe newly added application bubble is expanded. Repeat
same test, but drag the taskbar icon to the opposite side.
Test: Manual. Go to some application, but have bubbles. Start
dragging the taskbar icon over the bubble bar drop zone. Trigger new
bubble with the bubbles test application. Observe new bubble is added
and the flyout is shown. When flyout disappears, bubble bar remains on
the screen. Release icon over the bubble bar. Observe newly added
application bubble is expanded. Repeat same test, but drag the taskbar
icon to the opposite side.

Change-Id: I6fe1139ef56f4ad40d36a804016d23a9b34abf5f
2025-02-18 10:45:20 -08:00
Brian Isganitis 7dce7a09c7 Have per-environment bindings for Taskbar multivalent tests.
Flag: TEST_ONLY
Bug: 230027385
Test: go/testedequals
Change-Id: I7dba1e052855da19c9b58c87a0a8b5258ee0dc7c
2025-02-12 16:51:08 -05:00
Sunny Goyal c864281f3c Revert "Refactor all uses of DisplayController singleton INSTANCE"
Revert submission 31490053-DisplayControllRefactorForCD

Reason for revert: Leak is displayProvider

Reverted changes: /q/submissionid:31490053-DisplayControllRefactorForCD

Change-Id: Ib65150cdde765be009b5c4ce960f9fe025de9e60
2025-02-12 10:27:18 -08:00
Will Osborn 5f8b6206ce Refactor all uses of DisplayController singleton INSTANCE
And make DisplayController display id aware

Test: locally tested on Tangor
Flag: EXEMPT refactor
Bug: 392858637

Change-Id: I805cd7323c48a2988c95b9fda7f6cfe4c153860c
2025-02-12 10:46:34 +00:00
Treehugger Robot c913d5317a Merge "Move RecentsModel to Dagger." into main 2025-02-10 16:25:50 -08:00
Anushree Ganjam d158433769 Move RecentsModel to Dagger.
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: I0d459ee3fc012e8e371035071f1b32eb2483cdc5
2025-02-10 10:07:20 -08:00
Ajinkya Chalke 4078347cbf [CD][Alt+Tab] Implement skeleton code for KQS on CD
- This change will not render KQS on connected display (CD) even with the flag ON as taskbars are not yet created for connected displays.

Bug: 382762871
Change-Id: Id59fb23630aaf0e74c35818f2a4ca56e5ef2e7bb
Flag: com.android.launcher3.enable_alt_tab_kqs_on_connected_displays
Test: manually built and run the CUJ
2025-02-09 19:06:45 +00:00
Sukesh Ram 2f74082b3b [CD Taskbar] Refactor TaskbarManager - Make Window Contexts also follow map pattern
Make Window Contexts also follow map pattern.

Flag: EXEMPT not adding new behavior
Bug: 391706879
Test: Manual
Change-Id: Ib0672e653b9dbfcb3597210ca244f110515cd4dc
2025-01-31 21:53:46 +00:00
Cosmin Băieș e05eaa3cf0 Rename IME_SHOWN states to IME_VISIBLE
This renames the SysUI states related to the IME and IME Switcher button
visibility from "shown" to "visible", to maintain consistency.

Flag: EXEMPT refactor
Bug: 366129400
Test: n/a
Change-Id: I45219e62b633ca984de98df43f5c238604b38109
2025-01-25 01:18:11 +01:00
Treehugger Robot b22158206b Merge "Introduce SingleTask and SplitTask" into main 2025-01-24 02:59:37 -08:00
Ahmed Fakhry f87e44376b Introduce SingleTask and SplitTask
See go/refactor-group-task for details. This CL introduces `SingleTask`
and `SplitTask` and makes `GroupTask` abstract.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I96d0eb0600420ce5cb2fff30ed9d766224b6961e
2025-01-23 23:48:01 +00:00
Treehugger Robot 86864f95c3 Merge "AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks" into main 2025-01-23 03:34:55 -08:00
Gustav Sennton 1427068342 AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks
When tapping an icon in the AllApps tray, before this CL, we would use
the WM Shell API startLaunchIntentTransition() to launch a task for that
app icon. However, this would break the window limit logic since in WM
Shell (startLaunchIntentTransition()) we think we're launching a new
task, when in fact we're just moving an existing one to the front.
With this CL we instead reuse the showDesktopApp() API whenever the app
we're trying to launch has an already visible / minimized Desktop task.

Bug: 391365151
Test: launch visible Desktop app from AllApps - doesn't overtrigger
window limit
Flag: com.android.window.flags.enable_desktop_app_launch_transitions_bugfix

Change-Id: Ia3638012226fe28c853ec6cfd0523a8fb23b8961
2025-01-23 00:46:08 -08:00
Toni Barzic f817372651 Show desktop tasks when taskbar is pinned on home
Updates taskbar and KQS to show (running) desktop tasks when taskbar is
shown on the home screen - adds `shouldShowDesktopTasksInTaskbar` method
to TaskbarDesktopModeController to be used instead of
`areDesktopTasksVisible*()` to determine whether to show desktop tasks
in the taskbar. The method, in addition to desktop tasks visibility,
also considers whether taskbar should be shown on the home screen, and
whether current launcher state is home.

The launcher state is fetched from `TaskbarStashController`, which
already keeps track of this state. This is likely not ideal, but can be
removed in the long term - see http://b/390665752.

Furthermore, updates ReventsModel login not to always filter out desktop
tasks with no non-minimized tasks (which is currently expected behavior
in overview) in `getTasks()`. The filtering is now done by the filter
passed to `getTasks()` method, instead of when processing tasks in the
background. The filter used by default is updated to filter out such
desktop tasks, but callsites from `KeyboardQuickSwitchController` and
`TaskbarRecentAppsController` are updated to use an empty filter, so
they can display desktop tasks when they're all minimized.

Bug: 376711722
Bug: 390665160
Test: Manual on desktop device - verify that taskbar and KQS when shown
on home screen display desktop tasks, including the case all tasks are
minimized.
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays

Change-Id: Iabc22e20bf64aa9a826b4a5952f1edc6ea639cdc
2025-01-22 22:36:02 +00:00
Ahmed Fakhry 26a43abbe2 Remove some usages of GroupTask.task1
See go/refactor-group-task for details. This is another incremental
change towards deprecating `GroupTask.task1`.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: Ib9b38268374277f485c6856a012b5b7f02e37055
2025-01-17 17:47:26 +00:00
Sihua Ma 8fc266d063 Move tests to multivalent
Test: SysUI studio
Test: atest NexusLauncherRoboTests
Flag: EXEMPT test migration
Change-Id: Idd9e52f281d955e87f6db638ebfd8218a4dcb77f
2025-01-17 00:04:27 +00:00
Saumya Prakash 26bceb527e Merge "Avoid per task app icons in Taskbar for desktop mode" into main 2025-01-15 14:18:38 -08:00
Treehugger Robot bc3995222b Merge "Moving DisplayController to dagger" into main 2025-01-14 13:39:19 -08:00
Sunny Goyal 55dc2d1c31 Moving DisplayController to dagger
Separating various overrides to individual modules so that they can be reused in tests

Removing ContextualEduStatsManager and directly using SysUiProxy as all the usescases
are only in quickstep/
This avoids additional Module definition and delegation

Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I096459d638553991ed01766002b874589c6b976e
2025-01-14 11:40:35 -08:00
Saumya Prakash aabcfa27ae Avoid per task app icons in Taskbar for desktop mode
Until Taskbar multi instance support was in place, Taskbar would show
multiple icons for different instances of the same app in desktop mode.
Now this is no longer needed as taskbar has multi instance support, so
now there is only one icon per instance of an app of the same user.

Fix: 382589460
Test: Started several Chrome windows -> Taskbar has 1 icon for chrome
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar
Change-Id: I2df4327dcdc9d221164055ebc33ff508273e7ef9
2025-01-13 22:37:25 +00:00
Mykola Podolian 987de5534e Merge "Hide bubble bar stash handle when the notification shade is open." into main 2025-01-13 11:40:18 -08:00
mpodolian f1186f9d14 Hide bubble bar stash handle when the notification shade is open.
Introduced logic to control the bubble bar stash handle alpha based on
the notification shade state.

Test: TransientBubbleStashControllerTest
Test: Manual. Have bubbles and the bubble bar stashed. Open the
notification shade, observe that the stash handle fades away. Close the
notification shade, observe that the stash handle fades back in.
Have few bubbles, open bubbles test app, click on bubble icon. Observe
the bubble bar expands without blinking.
Test: Manual.
http://recall/-/gx8ASgewUeUS3QYohfrd1J/e1iUtwaFdezKOb0gBRff7Z
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 376140839
Fixes: 376141264

Change-Id: Id9c473f9aead0e4c5830793d9f3b0b1ae86453e7
2025-01-10 14:33:30 -08:00
Mykola Podolian 11fcd29cdf Merge changes I8ec01d69,If2366ec1,I8321e2f5 into main
* changes:
  Take bubble selection from the shell update.
  Fix bubbles animation when the new bubble added and old bubble removed.
  Fix arrow animation when the new bubble added and old bubble removed.
2025-01-10 14:28:52 -08:00
mpodolian 631da72a2a Fix arrow animation when the new bubble added and old bubble removed.
The AddingAndRemoving animation now uses a newly selected bubble index
and added bubble index arguments.

Test: BubbleAnimatorTest
Test: Manual. Enable optional overflow bubble.
Create a bubble bar with overflow containing a single
bubble. Open the overflow menu and click an overflow bubble icon.
Observe that a new bubble is added and immediately expands while the
overflow bubble is collapsing. Observe that the arrow animates to the
new bubble's position.
Test: Manual. Have few bubbles in the bubble bar. Collapse any bubble.
Observe arrow animated correctly to the newly selected bubble position.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 359952121

Change-Id: I8321e2f532189e7599b029083199e034e38080e3
2025-01-08 17:26:06 -08:00
Treehugger Robot eb453571d9 Merge "Converting DesktopVisibilityController to a singleton" into main 2025-01-06 12:05:48 -08:00
Mykola Podolian 8b3f1e1c3f Merge "Fix bubble added from the overflow background arrow animation." into main 2025-01-04 10:24:15 -08:00
mpodolian 7f88d9fc83 Fix bubble added from the overflow background arrow animation.
The new bubble animation now uses a "selected location" argument to
position the pointing arrow.

Test: BubbleAnimatorTest
Test: Manual. Create a bubble bar with overflow. Open the overflow menu
and click an overflow bubble icon. Observe that a new bubble is added
and immediately expands. Observe that the arrow animates to the new
bubble's position.
Test: Manual. Create a bubble bar with overflow. Open any bubble.
Trigger a new bubble notification. Observe that a new bubble is added
but does not expand, so the arrow remains at the currently open bubble.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 359952121

Change-Id: I47f5b6c2aad775f2dd3e70f8c544a3711f192342
2025-01-03 16:22:27 -08:00
Sunny Goyal 6d6529cff9 Merge "Converting LauncherPrefs to dagger" into main 2025-01-03 14:18:19 -08:00
Sunny Goyal e79d453bc8 Converting LauncherPrefs to dagger
Fixing ENABLE_TWOLINE_ALLAPPS_TOGGLE not properly tied to IDP:
http://recall/-/ep7WJ8pKwCEklUN5J1mAkM

Bug: 361850561
Flag: EXEMPT dagger-migration
Test: atest LauncherPrefsTest FakeLauncherPrefsTest
Change-Id: Iba63d060f4a8c2e31033fca2a4638c559c161338
2025-01-03 13:49:53 -08:00
Liran Binyamin 65a045ca77 Fix flake in BubbleBarViewAnimatorTest
Flag: EXEMPT test only
Bug: 384807919
Test: atest BubbleBarViewAnimatorTest
Change-Id: I44b9d77f0b2803ef363f7931d07749961e416e27
2025-01-03 09:45:47 -05:00
Sunny Goyal ad61173ca2 Converting DesktopVisibilityController to a singleton
This avoids a persistant connection to TouchInteractionService from WMProxy,
which keeps the service alive all the time

Bug: 384896306
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: Id6fe59471c8c3f9874514f71126631f217ab610c
2024-12-30 12:54:19 -08:00
Liran Binyamin 0e767a2a87 Merge "Fix flake in BubbleBarViewAnimatorTest" into main 2024-12-26 08:37:31 -08:00
Treehugger Robot 64eb038059 Merge "Moving sysproxy to kotlin" into main 2024-12-20 11:44:23 -08:00
Brian Isganitis 1e6ffc8a08 Merge "Split up tests by actual hardware keyboard status." into main 2024-12-20 11:36:35 -08:00
Sunny Goyal 5df843476c Moving sysproxy to kotlin
Bug: 385171800
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I9db2d4a2f7ff6e739e389ce0e076d5ea88adad5c
2024-12-19 17:22:00 -08:00
Brian Isganitis 791944ff63 Merge "Disable model loading with Sandbox check instead of static boolean." into main 2024-12-19 15:32:56 -08:00
Liran Binyamin 11323f3b76 Fix flake in BubbleBarViewAnimatorTest
Tried scheduling ABTD multiple times but unfortunately ABTD failed
allocating resources.

Flag: EXEMPT test only
Bug: 384807919
Test: atest BubbleBarViewAnimatorTest

Change-Id: I4c48c034b1bd6c9e8f681fb72cc65a9e0aee2eb7
2024-12-19 12:52:30 -08:00
Liran Binyamin 8b102fe820 Merge "Fix handle color when interrupting the animation" into main 2024-12-19 10:04:52 -08:00