Commit Graph

310 Commits

Author SHA1 Message Date
Brian Isganitis c0a8f7ea99 Implement spring animations for running state changes.
Flag: com.android.window.flags.enable_taskbar_recents_layout_transition
Fix: 402683858
Test: go/testedequals
Change-Id: Icc4a3a61b6c0997564a4dcdd8eb7768459d5f2ef
2025-03-19 14:34:13 -04:00
Tony Wickham 1588bb1a57 Merge changes I1b67d065,Ib2e7f859 into main
* changes:
  Don't show hover tooltip while an app popup is open
  Migrate TaskbarHoverToolTipControllerTest to use TaskbarUnitTestRule
2025-03-18 11:38:05 -07:00
Tony Wickham 88a9e18f7c Don't show hover tooltip while an app popup is open
Flag: EXEMPT bugfix
Test: TaskbarHoverToolTipControllerTest
Fixes: 397243128
Change-Id: I1b67d065e9e79e13a5a341a5d133da700ef5f40c
2025-03-17 22:36:27 +00:00
Tony Wickham 131c68b11b Migrate TaskbarHoverToolTipControllerTest to use TaskbarUnitTestRule
This means we are now testing real objects instead of mocks

Test: TaskbarHoverToolTipControllerTest
Fixes: 346394827
Flag: EXEMPT bugfix
Change-Id: Ib2e7f859432e84eb18c985dd71adaaaf9a513620
2025-03-17 22:34:32 +00:00
minch c48f662c7d Do not notify desk mode changes on visible desk tasks count changes
1. Trigger `notifyIsInDesktopModeChanged` on
   `visibleDesktopTasksCount` changes only when the multi-desks
   flags are disabled.
2. Make `DesktopVisibilityController.isInDesktopMode` variable
   private and legacy, which should only be used when the multi-desks
   feature is disabled. All the call sites should go to check
   `DesktopVisibilityController.isInDesktopMode(displayId)`, which
    works both with and without the multi-desks feature enabled.

Bug: 402222877
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I291e2be6d99e81b0c918ae7f39c17a8cd4ea0918
2025-03-14 15:21:19 +00:00
Min Chen 3956f310c0 Merge "Get displayId from DesktopTask for DesktopTaskView" into main 2025-03-13 21:05:28 -07:00
minch 68e116e79f Get displayId from DesktopTask for DesktopTaskView
Bug: 401011627
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Test: Added a test in RecentTasksListTest
Change-Id: I21164de812d57b79cd84370bbf0426268c4b645d
2025-03-13 22:24:22 +00:00
Li Lin a7bdabcef5 Merge "Add skeleton Growth Framework nudge controller." into main 2025-03-13 09:49:00 -07:00
Sunny Goyal 42975c39db Making various model objects injectable
Bug: 361850561
Test: Updated tests
Flag: EXEMPT dagger
Change-Id: Ibb45b72c186e6aeeed7a37b0ae3f8083472019d7
2025-03-10 14:37:43 -07:00
Liran Binyamin a5c9d86e1d Merge "Address flakes in BubbleBarViewAnimatorTest" into main 2025-03-07 18:17:59 -08:00
Treehugger Robot bac3844525 Merge "Adds tests for popup menu" into main 2025-03-07 17:40:46 -08:00
Liran Binyamin c2edd1c79a Address flakes in BubbleBarViewAnimatorTest
- Fix some mockito issue by using a fake implementation rather
   than a mock.
 - Return early in the bubble bar animation if there's no animating
   bubble. The issue here is that the scaleY property of the bubble
   bar is set to 1 when the animation is interrupted. However, in
   the test environment, the cancellation of the animator is posted
   to a different thread, and another animation frame is running
   after the scaleY was already reset to 1.

Flag: EXEMPT test only
Test: atest BubbleBarViewAnimatorTest
Bug: 399934422
Bug: 399720438
Change-Id: I271f670c50168237aeaf867c8171ae3023ee09ff
2025-03-07 14:13:31 -08:00
Li Lin 0f02bd269a Add skeleton Growth Framework nudge controller.
Bug: 398033012
Test: Manual
Flag: EXEMPT add separately
Change-Id: I682c723efc935737403678c84da94ee9ee63db27
2025-03-07 13:40:49 -08:00
Dave Mankoff 7c06fbd2fe Merge "Nullability fixes for Kotlin 2.1" into main 2025-03-07 13:31:39 -08:00
Dave Mankoff 9768fba0b0 Nullability fixes for Kotlin 2.1
Bug: 399463072
Flag: EXEMPT minor refactor
Tests: presubmits
Change-Id: I758a7ba2d62d2f096f1ceb775ee3f23275dd1c53
2025-03-07 15:28:37 +00:00
Shamali P 992facdff3 Unregister widget prediction callback on clear
Noticed that predictor holds the registered callback and caused leak.
Using named listener classes for better stacks and also unregisters them

Bug: N/A
Flag: EXEMPT BUGFIX
Test: WidgetPredictionsRequesterTest
Change-Id: I94211ddbc77077c98b804827bb1cecdefe57703b
2025-03-06 14:25:13 -08:00
Treehugger Robot 872ef49247 Merge "Add TaskContentView parent to TaskThumbnailViewHeader and TTV" into main 2025-03-06 03:37:25 -08:00
Wen-Chien Wang 3c74827da7 Adds tests for popup menu
This cl creates some basic tests for popup menu on hotseat items
and recent tasks.

Bug: 3446576299
Test: The cl itself is for tests
Flag: EXEMPT adding test
Change-Id: I872078969d9c3d20b5bf47a43cd8e3c940dd4d8f
2025-03-05 10:03:47 -08:00
Will Osborn 19bdf47a31 Merge "Make separate dependency scopes and graphs for different RecentsViews" into main 2025-03-05 07:29:04 -08:00
Will Osborn 074a605827 Make separate dependency scopes and graphs for different RecentsViews
Test: locally tested on Tangor
Flag: EXEMPT - bugfix
Bug: 399364544

Change-Id: I788c5644f198ead206bb7512ec96eab838e51cdb
2025-03-05 10:56:25 +00:00
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
Sam Cackett e0cc96df62 Add TaskContentView parent to TaskThumbnailViewHeader and TTV
- Add TaskContentView parent view
- Extract TaskThumbnailViewHeader logic and any related state out of
TaskThumbnailView and move to TaskContentView
- Use vertical LinearLayoutManager to hold the TaskThumbnailViewHeader
and TaskThumbnailView
- Rename TaskThumbnailViewHeader to TaskHeaderView. Rename xml and state
 similarly

Bug: 397889146
Flag: EXEMPT. Refactor
Test: Refactoring CL. Existing unit tests still pass.

Change-Id: Ie31f35c6617aab272f984a6beb3e4cb8f58e3ce9
2025-02-28 12:19:26 +00: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
Treehugger Robot 63de256dfe Merge "Add deskId to DesktopTask." into main 2025-02-21 18:33:52 -08:00
Sunny Goyal 7629bc4dcd Merge "Converting LauncherAppState to Dagger" into main 2025-02-21 10:06:01 -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
Sunny Goyal c9f697aeb5 Converting LauncherAppState to Dagger
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger

Change-Id: I336a233d2703c23a7e9065474bde471786886144
2025-02-20 19:13:49 -08:00
Sergey Pinkevich c07d64b601 Merge "Convert DesktopAppLaunchTransitionManagerTest to multivalent" into main 2025-02-20 04:52:11 -08: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
Sergey Pinkevich 861a31e8fd Convert DesktopAppLaunchTransitionManagerTest to multivalent
Bug: 378096575
Flag: NONE test fix, not actual code editing
Test: DesktopAppLaunchTransitionManagerTest

Change-Id: I6dc335fea156f4e830e9c2cadf3c98ff01fb7c4f
2025-02-18 13:45:51 +00: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
Treehugger Robot 6c33393fe3 Merge "Revert "Refactor all uses of DisplayController singleton INSTANCE"" into main 2025-02-12 12:34:41 -08: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
Treehugger Robot fb683dff89 Merge "Refactor all uses of DisplayController singleton INSTANCE" into main 2025-02-12 05:47:46 -08:00
Treehugger Robot efebae2ef4 Merge "Destroy RecentsDependencies in tests that initialise it." into main 2025-02-12 02:48:35 -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
Uwais Ashraf d7007ef6e8 Destroy RecentsDependencies in tests that initialise it.
This prevents unaccounted for destructions which can lead to a leak in tests after these.

Bug: 395214062
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TaplStartLauncherViaGestureTests.testStressPressHome
Change-Id: I5cf9214ea9344f7e9d79b61e87269fd6e2c05753
2025-02-12 00:49:00 -08:00
Treehugger Robot 1844db355f Merge "Disable All Apps keyboard shortcut during user setup." into main 2025-02-11 19:58:28 -08:00
ELIYAZ MOMIN (xWF) 31d6be8891 Revert "Moving TisBinder to its own class"
This reverts commit ce9ad064d6.

Reason for revert: <Potential culprit for  b/395855288  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted>

Change-Id: I12d1eb66ae03e2638a503c103d0b1fa8a863b6b5
2025-02-11 08:18:42 -08:00
Sunny Goyal ce9ad064d6 Moving TisBinder to its own class
> Using callback patter for various change events instead of routing it
  via  TIS

Bug: 386288280
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I95577d6a1c17103cb947ef1200c1c22b68fd1d9c
2025-02-11 00:21:51 -08:00
Treehugger Robot c913d5317a Merge "Move RecentsModel to Dagger." into main 2025-02-10 16:25:50 -08:00