Commit Graph

783 Commits

Author SHA1 Message Date
Ajinkya Chalke
d2ea106305 Update DisplayControllerSpy for overview on CD
- Use both infoModifier and infoModifierForDisplay to support overview
  on CD changes in DisplayController.

Test: TaskbarModeRuleTest TaskbarInsetsControllerTes
Bug: 363251602
Flag: EXEMPT test only change
Change-Id: I18f2dd7f6c486a269769d93f5ad7623bcba5fe3c
2025-05-30 08:30:39 +00:00
Simon (Qiong) Sun
be9eea8f23 Merge "Support multiple tasks per split screen via SplitRemoteTargetHandles" into main 2025-05-27 18:11:37 -07:00
Treehugger Robot
97594d1e94 Merge "Unregister AbsSwipeUpHandler's ContextInitListener on launcher destroy" into main 2025-05-27 11:45:32 -07:00
Schneider Victor-Tulias
8f88cb272d Unregister AbsSwipeUpHandler's ContextInitListener on launcher destroy
- Unregister the init listener on launcher destroy to unblock the home button
- This also exposes a crash in AbsSwipeUpHandler.onRecentsAnimation start since the home bounds aren't available. So, also adding handling to reload the launcher on night mode change

Flag: EXEMPT bug fix
Fixes: 384423890
Fixes: 416536400
Test: changed dark theme then swiped/pressed home and overview buttons.
Change-Id: Ic26192e8d0e4e6b226fb9af6dba596aa78a09e96
2025-05-27 11:39:53 -07:00
Xiaoqian (Daisy) Dai
d108ef020b Merge "desktop-exploded-view: Fix various values for Task windows in desktop tile." into main 2025-05-27 09:25:51 -07:00
Saumya Prakash
a272ff81ad Merge "Report lower insets for SUW if expressive theme enabled" into main 2025-05-27 08:57:52 -07:00
Treehugger Robot
d5b20e3940 Merge "Add recents animation start timeout handling to TaskAnimationManager" into main 2025-05-23 19:10:36 -07:00
Treehugger Robot
52608ce7cb Merge "pin-shortcut: Use unpin option for AllApps apps that are pinned" into main 2025-05-23 18:27:54 -07:00
Wen-Chien Wang
9942721299 pin-shortcut: Use unpin option for AllApps apps that are pinned
For the apps in All apps view, if the app is already pinned in the
taskbar, we should show the unpin option for users to unpin it
instead of a pin option that is no-op.

Bug: 375648361
Bug: 418058610
Test: manual + TaskbarPopupControllerTest
Flag: com.android.window.flags.enable_pinning_app_with_context_menu
Change-Id: I770afcf3abd6cb08c574230d27c4cbcbb83b29a6
2025-05-23 23:00:30 +00:00
Xiaoqian (Daisy) Dai
a66268c9fc desktop-exploded-view: Fix various values for Task windows in desktop tile.
To match with the UX spec, this CL updates the insets based on the
number of tasks within a tile. It also sets a maximum height to the
task window when multiple apps are available.

Flag: com.android.launcher3.enable_desktop_exploded_view
Test: OrganizeDesktopTasksUseCaseTest
Bug: 414614454
Change-Id: Icfecc1e41dfd0b95bae10b495adae95fe10dfef2
2025-05-23 14:09:05 -07:00
Sebastián Franco
e1d31e5406 Revert "Revert "Moving DeviceProfile properties into DevicePrope..."
Revert submission 33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Reason for revert: Error is fixed

Reverted changes: /q/submissionid:33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Change-Id: Ib86824134955903c11e51e52dbfd6368aba1cd50
2025-05-23 14:08:11 -07:00
Priyanka Advani (xWF)
7705e92d93 Revert "Moving DeviceProfile properties into DeviceProperties da..."
Revert submission 33672643-DataDeviceProfile1

Reason for revert: Droidmonitor created revert due to b/419867875. Will be verifying through ABTD before submission.

Fix: 419867875

Reverted changes: /q/submissionid:33672643-DataDeviceProfile1

Change-Id: Icb66aefbbcee24e05806b2139923e1f2ea1c65e3
2025-05-23 13:53:04 -07:00
Saumya Prakash
7adea11bfa Report lower insets for SUW if expressive theme enabled
This change addresses the desire to lower the footer for SUW content if
the expressive theme is enabled in SUW. This would remove the extra gap
at the bottom of the screen.

Fix: 409897759
Test: Enable expressive theme and relaunch SUW. Check that the bottom
buttons are closer to the bottom edge of the screen.
Flag: EXEMPT bugfix

Change-Id: I7a4961549ec888e57c89a564028843f1e8c0000b
2025-05-23 20:06:14 +00:00
Sebastian Franco
e1111e28c2 Moving DeviceProfile properties into DeviceProperties data class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I638f88cd76b926917965dbf9e70b5bdfff5971e0
2025-05-23 10:42:26 -07:00
Sergey Pinkevich
6e0ace619f Merge "Convert DesktopVisibilityControllerTest to multivalent" into main 2025-05-23 01:56:12 -07:00
Rob Mickle
61aab4893b Update test to use fake repository instead of mock.
Bug: 378443899
Test: OverviewCommandHelperTest
Flag: EXEMPT test cleanup up
Change-Id: Ie449a659bf6b1b33acbb6f9f6f45b800e31cf447
2025-05-22 07:42:34 -07:00
Lucas Dupin
66923a912c Merge "Add recents position callback to SystemUiProxy" into main 2025-05-21 23:11:59 -07:00
Treehugger Robot
091890adbc Merge "Support workspace cells with two-line labels" into main 2025-05-21 18:25:15 -07:00
Toni Barzic
83b8cc19ca Support workspace cells with two-line labels
Adds `maxLineCount` attribute to CellSpec. The attribute indicates the max
number of lines of text the cell was speced to support. It's used to:
*   enable two-line labels in `BubbleTextViews` for workspace (including
    folder children) items
*   Update cell dimension calculation to inform cell vertical padding

When calculating cell content size the icon text size will be included
`maxLineCount` times, so the cell content gets centered as if it
contains `maxLineCount` lines of text. That way the icon position will
be consistent between cells with text that fits into one line, and cells
that contain two lines of text.

Adds `maxLineCountMatchesWorkspace` attribute to specify that the cell
should inherit `maxLineCount` from workspace cell spec.

Bug: 30153091
Flag: com.android.launcher3.enable_scalability_for_desktop_experience
Test: Manual

Change-Id: I150a62f427a0ad755a4746a736d9846d3bea4d2e
2025-05-21 22:04:33 +00:00
Lucas Dupin
02c6fd6604 Add recents position callback to SystemUiProxy
Flag: com.android.systemui.enable_underlay
Test: atest AmbientCueRepositoryTest
Test: atest AmbientCueInteractorTest
Test: atest AmbientCueViewModelTest
Test: atest TaskbarNavButtonControllerTest
Bug: 415914274
Bug: 415914083
Change-Id: Ie6c7412d3bbc9cd64e4c9993db47821962e1b1fc
2025-05-21 14:04:18 -07:00
Schneider Victor-Tulias
124b010ea9 Add recents animation start timeout handling to TaskAnimationManager
In cases where a recents aniamtion transition was successfully requested but failed to start, we should clean up the gesture state to recover.

Flag: EXEMPT bug fix
Fixes: 415930274
Test: TaskAnimationManagerTest.testRecentsAnimationStartTimeout_cleansUpRecentsAnimation
Change-Id: If1a24d6c7baac7338c49056531bc01665f082ddf
2025-05-21 15:55:44 -04:00
Sergey Pinkevich
d0fccf8773 Convert DesktopVisibilityControllerTest to multivalent
Bug: 397902030
Flag: NONE test fix, not actual code editing
Test: atest NexusLauncherTests:DesktopVisibilityControllerTest

Change-Id: Ie6ae4abb2a894d4f7403e77cf797cdce924fd9e3
2025-05-21 18:50:43 +00:00
Simon (Qiong) Sun
00063bcf2f Support multiple tasks per split screen via SplitRemoteTargetHandles
It enables support for assigning SplitRemoteTargetHandles to multiple tasks within a split-screen.

The changes include:

- Retrieving the list of split-screen tasks directly from `SplitBounds`.
- Iterating through the task list and setting the remoteTargetHandle for each individual task.
- General code refactoring to set the remoteTargetHandle.

Bug: 346295292
Bug: 360782849
Flag: com.android.wm.shell.enable_flexible_two_app_split
Test: manual test.
Video: Before: http://recall/-/gvQq7Z7JECwxnxKrBmr3wt/fnHVbaVwMWfvrOaez5eO6L
Video: After: http://recall/-/gvQq7Z7JECwxnxKrBmr3wt/dzv6tZMlAYG1bBBtYdsWxF

Change-Id: I1e8c8316947b0d4fd72c9cf36dff8ecd99d2f170
2025-05-21 17:51:09 +00:00
Helen Cheuk
444161df77 Merge "[Action Corner] Make home action corner irreversible" into main 2025-05-21 09:13:31 -07:00
helen cheuk
9598e4c78c [Action Corner] Make home action corner irreversible
The go home action for action corner should be irreversible for now.
When home action corner is triggered at homepage, it should just stay at homepage and would not go back to previous task.
Add flag for the reversible behavior for non-desktop mode home action corner. It is to be completed with dekstop mode in later release.

Bug: 397182595
Test: ActionCornerHandlerTest
Flag: com.android.launcher3.enable_reversible_home_action_corner
Change-Id: Ib36581d0d3d81d4a7ff8f8d6265d8d5d5f5872fd
2025-05-21 14:26:01 +01:00
Treehugger Robot
27312fa26d Merge "Prevent adding duplicate TaskAnimationManager launcher destroyed callbacks" into main 2025-05-20 15:22:24 -07:00
Mykola Podolian
9e4b44afcd Merge changes from topic "remove_ipc" into main
* changes:
  [5/5] Removed unused IPC call.
  [4/5] Cover DragToBubbleController with tests.
  [3/5] Implement DragToBubbleController.
  [2/5] Hook up DragToBubbleController and prepare launcher to use it.
  [1/5] Added DragToBubbleController
2025-05-16 16:01:03 -07:00
Schneider Victor-Tulias
2e6148a430 Prevent adding duplicate TaskAnimationManager launcher destroyed callbacks
Flag: EXEMPT code cleanup
Bug: 416536400
Test: TaskAnimationManagerTest; ran test with and without change
Change-Id: I8bdee3adeeca07e386f3058910d5e2160359f7e9
2025-05-16 15:40:46 -04:00
mpodolian
8499319bc2 [4/5] Cover DragToBubbleController with tests.
Implement tests that check DragToBubbleController public API

Bug: 411506181
Flag: com.android.wm.shell.enable_create_any_bubble
Test: DragToBubbleController.kt
Change-Id: I48fe5f45921fbedbe0f1921dfd21e9ecb14406bc
2025-05-16 11:33:52 -07:00
Treehugger Robot
242f038d09 Merge "Don't trigger getRecentTasks() calls when waiting for an old call" into main 2025-05-16 02:25:05 -07:00
Treehugger Robot
6bc72676ed Merge "Recreate DP for CD when displayInfo changes" into main 2025-05-15 18:07:54 -07:00
Treehugger Robot
bee486a7da Merge "Use desktop mode autostashing on desktop devices" into main 2025-05-15 17:33:29 -07:00
Ajinkya Chalke
1fd6090eb7 Recreate DP for CD when displayInfo changes
- Only IDP is updated when displayInfo changes but DPs of CD don't. As
  a result taskbars on CD end up reusing the old config DPs. For
  example, when user changes display size, displayInfo updates but
  taskbars on CD continue using old DP resources.
- So, update DP for CD when DisplayInfo changes.
- Also added using supplied context with dpToPx for calculating radius
  for taskbar roundedness at the ends.

Fix: 414933860
Test: m
Flag: com.android.window.flags.enable_taskbar_connected_displays

Change-Id: I7d8ed3c5ba69b755a58d3462a5da9ed7fd404198
2025-05-15 22:42:09 +00:00
Gustav Sennton
ffa5c2ad83 Don't trigger getRecentTasks() calls when waiting for an old call
TaskbarRecentAppsController#reloadRecentTasksIfNeeded() triggers a call
to fetch Recents tasks, that call is expensive as it goes through WM
Shell and the system server. If we trigger reloadRecentTasksIfNeeded()
multiple times we're queueing up multiple calls to fetch Recents tasks.

With this CL we avoid queueing up multiple calls, and instead just make
one new call when the old one finishes. That way we can only ever have
one call getRecentTasks() call triggered through
reloadRecentTasksIfNeeded() posted at any one time.

Bug: 415090968
Flag: com.android.window.flags.enable_taskbar_recent_tasks_throttle_bugfix
Test: TaskbarRecentAppsControllerTest
Change-Id: I58b66e4564af4e64837317a9de7be398395d8568
2025-05-15 20:18:21 +00:00
Ebru Kurnaz
6ddc86dc7e Merge "Use wm callbacks for sys decor in Launcher instead of command queue." into main 2025-05-15 09:44:19 -07:00
Ebru Kurnaz
88185ac745 Use wm callbacks for sys decor in Launcher instead of command queue.
Bug: 412615955
Test: DisplayRepositoryTest
Flag: com.android.window.flags.enable_sys_decors_callbacks_via_wm
Change-Id: I42865b2b9169e99e35e09e239f6a1b3e455b7894
2025-05-15 13:39:33 +00:00
mpodolian
dbd42b6f05 [1/5] Added DragToBubbleController
Added controller that would handles drags of launcher icons to the
bubble bar, displaying drop targets and creating application bubbles.

Bug: 411506181
Flag: com.android.wm.shell.enable_create_any_bubble
Test: build launcher
Change-Id: I593222d86f50248ceb2909ae73ccc021ef515e28
2025-05-14 17:29:11 -07:00
Brian Isganitis
70e62fce31 Merge changes from topic "taskbar-wmproxy-module" into main
* changes:
  Filter out DEFAULT_DISPLAY from Taskbar unit tests.
  Refactor test dagger graph to stub PerDisplayRepository instances.
  Only use mockito-kotlin in SandboxApplication.
2025-05-14 14:17:21 -07:00
Treehugger Robot
a65936447f Merge "Don't show overview via keyboard shortcut if blocked by SysUi state" into main 2025-05-14 06:44:39 -07:00
Steven Ng
d8f2df4124 Don't show overview via keyboard shortcut if blocked by SysUi state
Note: before this change, triggering overview keyboard (KB) shortcut at lock screen would result in the overview shown after the screen is unlocked. This behavior is counter-intuitive. And thus, this change will discard overview KB shortcut at lock screen regardless if an external display is connected,

Flag: EXEMPTED minor bug fix
Test: manually trigger overview KB shortcut at lockscreen in both the default & connected display. Observed that no overview is shown at lock screen and after unlock.
Test: manually trigger overview KB shortcut after lockscreen in both the default & connected display. Observed that the overview is shown at the focused display.
Test: atest NexusLauncherTests:RecentsAnimationDeviceState
Bug: 415040428
Change-Id: Ia585b7b62e5f8de5be6d7cda9ad24760398ca37a
2025-05-14 10:59:10 +00:00
Hyunyoung Song
21284c8e13 Merge "Revert "Prevent CtS invocation in fake landscape mode"" into main 2025-05-13 23:03:08 -07:00
Toni Barzic
2cf0d817a3 Use desktop mode autostashing on desktop devices
Updates few autostashing related conditions to use
`isTaskbarShowingDesktopApps()` instead of `isInDesktopMode()`, as the
former covers the case where the desktop flavour taskbar is shown
consistently (on desktop devices).

Bug: 390665752
Bug: 415991381
Flag: com.android.window.flags.enable_desktop_taskbar_on_freeform_displays
Test: On desktop device, verify that "Always show taskbar" is shown on
      home/in overview/in app outside desktop mode, and verify that the popup
      value shown is consistent with the value in desktop mode. Verify
      that taskbar does not get auto-stashed on home, even if "Always
      show Taskbar" value is false.
Change-Id: I4edfe20f5526210fdf767231d0906875fe04f806
2025-05-14 05:53:51 +00:00
helencheuk
d681164fe3 [Action Corner] Handle go home action
Handle go home and go back to previous screen for overview, split and full screen task

Bug: 397182595
Test: ActionCornerHandlerTest
Flag: com.android.systemui.shared.cursor_hot_corner
Change-Id: Ia928f102df6908058c02949db02a73430cea5ef1
2025-05-13 17:03:12 +00:00
Brian Isganitis
fffd860570 Filter out DEFAULT_DISPLAY from Taskbar unit tests.
All Taskbars are inflated on VirtualDisplays. We should ignore
DEFAULT_DISPLAY.

Flag: TEST_ONLY
Bug: 415326979
Test: Taskbar tests
Change-Id: If6700929840552001a8b16fa969003f2c21b3cfe
2025-05-12 17:10:57 -04:00
Brian Isganitis
ae80cbfed3 Refactor test dagger graph to stub PerDisplayRepository instances.
These are not being used yet in Taskbar, but they are hardcoding
DEFAULT_DISPLAY for the primary ID. In tests, we want the primary to be
considered the ID of the virtual display tests are running on.

This change also moves dagger classes to its own file for organization.

Flag: TEST_ONLY
Bug: 415326979
Test: Taskbar multivalent tests
Change-Id: Ibd0cdf46bc53dbd7a3dd5f34d7171d9a6cdebb38
2025-05-12 17:10:57 -04:00
Schneider Victor-tulias
5050b29f23 Merge changes from topic "reapply-load-plan" into main
* changes:
  Add support for save app pairs to recents in window
  Update RecentsView to allow re-apply load plan
  Update AbstractQuickStepTest to check non-recents states correctly
2025-05-12 11:29:33 -07:00
Hyunyoung Song
e48deacbd4 Revert "Prevent CtS invocation in fake landscape mode"
This reverts commit 299576a777.

Reason for revert: b/402037577

Change-Id: I240ffd68ccf3536d80eda1c63395c64c8e48de22
2025-05-12 08:47:50 -07:00
Schneider Victor-Tulias
db74f177a6 Update RecentsView to allow re-apply load plan
If the recents view is not attached to window when reloadIfNeeded is called, then mTaskListChangeId will be set, but applyLoadPlan will exit early without actually applying the loaded tasks. This is an issue since the recents list will remain outdated until the task stack changes. This has been causing issues in tapl tests with recents window enabled. Delaying the setting of mAppliedTaskListChangeId until the end of applyLoadPlan to fix this.

Flag: com.android.launcher3.enable_launcher_overview_in_window
Bug: 377678992
Test: TaplTestsQuickstep.testDismissLastGridRow
Change-Id: Iaa8441a74b54f86167a7963b0005c044f355d94e
2025-05-12 10:29:06 -04:00
Wen-chien Wang
495fb1e9b4 Merge "pin-shortcut: Check desktop state for the feature" into main 2025-05-09 17:06:48 -07:00
Wen-Chien Wang
e6816545b6 pin-shortcut: Check desktop state for the feature
This feature aims to work only for desktop mode. Add a check to
the desktop state when checking the aconfig feature flag.

Bug: 375648361
Test: EXEMPT flag update
Flag: com.android.window.flags.enable_pinning_app_with_context_menu
Change-Id: I19eb17d756f17892637bd303464748b505c89190
2025-05-09 00:31:27 +00:00