Commit Graph

1348 Commits

Author SHA1 Message Date
Jordan Silva 43ba3e9276 Fix App Chip positioning in Fake Orientation
This CL changes how the layoutDirection of the App Chip is handled and update translations in the PagedViewHandler for the app chip for fake orientation.

- The App Chip was updated to use the device layoutDirection instead of the same of RecentsView. This prevents the app chip being displayed in RTL when the device is LTR and vice-versa.
- It also applies the correct layout direction to `IconAppChipView` and its related views to ensure proper RTL behavior.
- RecentsView now updates layoutDirection for its children when updateChildTaskOrientation is called. This will make sure its children have the the latest and the correct layoutDirection.. Before it was only applied when adding a view (addView).
- In `SeascapePagedViewHandler`, it adjust the gravity for app chip be aligned correctly in Seascape.
- In `GroupedTaskView`, it checks if the device is in RTL to align the app chip correctly for split tasks.

- Multiple test combinations were done to validate this fix, please see table in b/326377497#comment7.

Fix: 326377497
Bug: 403284758
Flag: com.android.launcher3.enable_overview_icon_menu
Test: Manual, please check b/326377497#comment7.
Test: OverviewImageTest
Test: OverviewSplitTaskImageTest
Change-Id: I8e8050ccf58c3f90718a48773ee7e32ddbc00f13
2025-03-14 12:01:12 +00:00
Jordan Silva 99eefc9055 Add keyboard navigation for App Chip and Chip Menu
Bug: 400410772
Flag: com.android.launcher3.enable_overview_icon_menu
Test: Manual using Keyboard. Access the app chip via TAB.
Change-Id: I75f80b5c6f366ecfc27596519a721cc6ace18d45
2025-03-12 07:55:04 -07:00
Uwais Ashraf d4b187b997 Add perf tracing for several key operations in TaskView lifecycle.
Fix: 402622741
Test: Manually looking at perf traces
Flag: EXEMPT - tracing only
Change-Id: If42a30d83dd72ebfe4074fedd7bdefcd102881d6
2025-03-12 11:02:00 +00:00
minch 3049247a2e Track the empty desk correctly inside applyLoadPlan
Track the DesktopTaskView through its `deskId` if it is the current
TaskView or the running TaskView. This is done to support emtpy
desk which has no tasks inside.

Bug: 400532675
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: Id1e7e7efc2a6ac3126d0320d85a3d327eec0f3c1
2025-03-11 17:41:25 +00:00
Randy Pfohl 0678d08e87 Merge "Move flags to desktopmodeflag" into main 2025-03-10 14:50:38 -07:00
Ahmed Fakhry 30d39caacb Merge "Propagate desks changes" into main 2025-03-10 14:06:52 -07:00
Randy Pfohl d94ca57547 Move flags to desktopmodeflag
Flag: com.android.launcher3.enable_fallback_overview_in_window
Flag: com.android.launcher3.enable_launcher_overview_in_window
Flag: com.android.launcher3.enable_state_manager_proto_log
Flag: com.android.launcher3.enable_recents_window_proto_log

Test: built and ran locally with flags on and off

Bug: b/401073215
Bug: b/401073401
Bug: b/401075030
Bug: b/401076625

Change-Id: I1bd2822d20f677445610b912dd82ff160bff4143
2025-03-10 19:08:55 +00:00
Ahmed Fakhry 6a19fc0765 Propagate desks changes
This CL propagates desk changes events to `RecentTasksList` and
`RecentsView`.

Bug: 395908683
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I77457d5e2e66166dd8c7d6505317d9add5b886a2
2025-03-10 18:06:03 +00:00
Alex Chau 2642bfb210 Merge "Check before casting to TaskMenuView on rotation" into main 2025-03-10 06:57:59 -07:00
Treehugger Robot 522a869e01 Merge "Show screenshot and select in task menu" into main 2025-03-07 12:28:33 -08:00
Xiaoqian Dai 3dfd8bb2b5 desktop-exploded-view: Launch desktop task view should reverse its
exploded animation

Following CLs will support launching individual task window in the
desktop task view.

Flag: com.android.launcher3.enable_desktop_exploded_view
Test: Manual
Bug: 353948437
Change-Id: I5d084a7d8b231522bf5db1704cee1d6124affc22
2025-03-07 17:40:14 +00:00
Alex Chau df7bb7966c Check before casting to TaskMenuView on rotation
- Added a instanceof check to avoid ClassCastException

Fix: 400957867
Flag: EXEMPT BUG_FIX
Test: manual testing rotation on phone and tablet
Change-Id: I2b094fdca4f380128b50d5086548cbac3ef09bf4
2025-03-07 16:55:06 +00:00
samcackett 0946c8c123 Show screenshot and select in task menu
Hide screenshot and select from menu if thumbnail is null

Bug: 383662632
Flag: com.android.launcher3.enable_show_enabled_shortcuts_in_accessibility_menu
Test: OverviewMenuImageTest & manual. See bug.
Change-Id: Idf41de7e36b63f7bcc8639f5f3932a61e56ebfcd
2025-03-07 08:41:41 -08:00
Alex Chau d81a7835ac Merge "Update live tile's pivot when ReccentsView's pivot is updated" into main 2025-03-06 03:29:39 -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
Alex Chau d2c77361a2 Update live tile's pivot when ReccentsView's pivot is updated
Fix: 397890144
Test: App to Overview, check live tile animation in 1) swipe up from bottom 2) Dismiss 3) Task launching
Flag: com.android.launcher3.enable_grid_only_overview
Change-Id: I143d8ca241505ab2f45c49348dc41885b364b859
2025-03-05 12:14:06 +00: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
Treehugger Robot 14eec9f1fc Merge "Spring neighboring tasks into place on task reflow after dismiss." into main 2025-03-04 18:14:33 -08:00
Pat Manning 0c8a5304b8 Spring neighboring tasks into place on task reflow after dismiss.
Fix: 389081477
Test: TaplTestsQuickstep
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: I420c6c21b3172626603d7df01bd8cb024d3fb3a8
2025-03-04 18:43:02 +00:00
Randy Pfohl 4743e508e9 Merge "Enabling secondary deviceprofile creation in windowcontext" into main 2025-03-04 09:17:16 -08:00
Alex Chau 12d5e6aed8 Merge "Update gridTranslation of live tile when gestures ends" into main 2025-03-04 02:42:13 -08:00
minch 5cb890579e Disallow scroll to the AddDesktopButton
Bug: 389209338
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Test: m
Change-Id: Ib9e5bc3ff73aed9facd1bad17d34722bd7a24652
2025-03-03 15:37:11 +00:00
Alex Chau 59e8c59ec6 Update gridTranslation of live tile when gestures ends
- Instead of updating in updateGridProperties, which will be re-run after dismiss and potentially apply wrong translations to live tile.
- Also set gridTranslationX of live tile to 0, as recentsScroll already takes care of horizontally task offest
- Guaded assigning RemoteTargetHandle to DesktopTaskView with enableDrawingLiveTile, so going to Home won't continue to mananages the TaskViewSimulator

Fix: 398231631
Fix: 394316748
Test: App to Overview with live tile on different location in the grid
Flag: com.android.launcher3.enable_grid_only_overview
Change-Id: I2e0f83a55421279581f3632c16c1e4c41d1fdae6
2025-02-28 18:48:40 +00:00
Randy Pfohl 42405b2fa3 Enabling secondary deviceprofile creation in windowcontext
Test: Built and ran locally

Flag: com.android.launcher3.enable_fallback_overview_in_window
      com.android.launcher3.enable_launcher_overview_in_window

Change-Id: Iafb75840c4acadb35eb9e89810e9de61bbeda326
2025-02-28 18:14:02 +00:00
Alex Chau 3c3d636dc9 Multi property refactor
- Introduced MultiPropertyDelegate to delegate Kotlin var to MultipPropertyFactory, allowing easy creation of var for MultiPropertyFactory
- Introduced KFloatProperty to map any Kotlin var to a FloatProperty, which simplify the code to creaet FloatProperty a lot
- Combined the above to refactor usage of MultipPropertyFactory, use var to simplfiy things, and expose them as FloatProperty directly when needed

Fix: 399635468
Test: Smoke test main flow of enter Overview, task launching etc.
Test: presubmit
Flag: EXEMPT REFACTOR
Change-Id: Ie7dd8b69da7e3bda9026a0ef7b0377c26a78a332
2025-02-27 16:01:32 +00:00
Treehugger Robot 7699ddc59d Merge "Use MultiValueAlpha in ClearAllButton" into main 2025-02-26 13:04:40 -08:00
minch 1a39494c82 Use MultiValueAlpha in ClearAllButton
Bug: 389209338
Flag: EXEMPT refactor
Test: m
Change-Id: Ia6f3f9059444161829c76373b80b354a155fd69d
2025-02-26 18:55:34 +00:00
Treehugger Robot 25facca397 Merge "Prevent taskbar from stashing in overview in live tile mode." into main 2025-02-26 10:20:54 -08:00
Jon Miranda 294e029be0 Prevent taskbar from stashing in overview in live tile mode.
Fixes: 354627538
Flag: EXEMPT bugfix
Test: Open app, go to overview, pause app
Change-Id: I82717747408f5776a50aa239c384f87927b54832
2025-02-25 10:12:28 -08:00
minch b10cedd21c Handle AddDesktopButton's visibility in different launcher states
Introduce [ADD_DESK_BUTTON] in LauncherState and change the button's
visibility across different launcher states. E.g., the button
shouldn't be visible in the quick switch.

Bug: 389209338
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Test: 1. Swipe up from home, the button shown util in overview.
      2. Swipe up from the fullscreen app, the button is invisible
         util release the finger.
      3. The button is invisible in quick switch.
      4. All the above tested with NexusLauncher and Nova launcher,
         which is a 3rd launcher.
      5. Tested with gesture and 3-finger swipe on the touchpad.
      6. Both the ClearAllButton and AddDesktopButton are not
         visibile when in select mode.
Change-Id: I54e11d4d03401be68b5b67a6f591edd737c9ea30
2025-02-24 21:33:36 +00:00
Alex Chau 31f32597dd Merge "Fix jump when dismissing last grid task View" into main 2025-02-24 10:35:14 -08:00
Treehugger Robot 63de256dfe Merge "Add deskId to DesktopTask." into main 2025-02-21 18:33:52 -08:00
Xiaoqian (Daisy) Dai 9ca73dfa09 Merge "desktop-exploded-view: Implement the close button and its behavior" into main 2025-02-21 16:53:28 -08:00
Xiaoqian Dai 6aca9bedd5 desktop-exploded-view: Implement the close button and its behavior
Flag: com.android.launcher3.enable_desktop_exploded_view
Test: Manual + newly added tapl tests in a following CL
Bug: 353965691

Change-Id: Iba4603b84928885b1d50f5551adbacbd31e98cc3
2025-02-21 22:23:41 +00:00
Treehugger Robot a8b8c7c3eb Merge "Correct the page scrolls of the AddDesktopButton" into main 2025-02-21 12:59:52 -08:00
Alex Chau 7d47679892 Fix jump when dismissing last grid task View
- Calcualte the scroll diff to bring large tile to middle of screen
- Additional compensate for scroll diff between last task and ClearAllButton if ClearAllButton is visible

Fix: 395883390
Test: manual, not adding e2e because animation jump cannot be caught by e2e test
Flag: com.android.launcher3.enable_grid_only_overview
Change-Id: I6a506f2af46ded4daf21fe49329ab71b59e3f19d
2025-02-21 18:08:33 +00:00
Daniel Andersson 050e6eebb0 Merge "desktop-exploded-view: Explode desktops when swiping up from home" into main 2025-02-21 09:50:39 -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
minch 1c028b7ccb Correct the page scrolls of the AddDesktopButton
Do not apply the button's grid translation to its page scrolls if
it is not showing as a grid,otherwise the `mCurrentPage` may not be
set correctly while checking `ensureWithinScrollBounds`.

Bug: 396146789
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Test: m
Change-Id: Ia1378a997e681abda60fa1cb3c125660916df4c5
2025-02-21 09:06:53 -08:00
Treehugger Robot b38ab564be Merge "Close gap between grid and clear all for expressive dismiss." into main 2025-02-21 04:01:11 -08:00
Daniel Andersson 1422e89e92 desktop-exploded-view: Explode desktops when swiping up from home
This change makes it so that the explode animation only happens when
swiping up from the desk. In other cases, the desk is immediately set
to its exploded state.

The desk explode progress is now exposed as a FloatProperty in
RecentsViewUtils.

Flag: com.android.launcher3.enable_desktop_exploded_view
Test: Manual
Bug: 367353392
Change-Id: I5adec7db1fdc933860dce7fcca0a47cec0672ee7
2025-02-20 14:30:47 -08:00
Pat Manning 2caae623a6 Close gap between grid and clear all for expressive dismiss.
Fix: 397891454
Test: TaplTestsQuickstep#testDismissLastGridRow
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Id49447819c38f307f05cd4ecc3d501bd51766443
2025-02-20 18:06:52 +00:00
minch 92cb978575 Make can create new desks a global state
Bug: 389209338
Test: m
Flag: EXEMPT new APIs update without impl yet.
Change-Id: Id7ebfbc1d03d823932515df42fa51e22f44f8116
2025-02-19 21:24:49 +00:00
Treehugger Robot 3c985a8c65 Merge "Indices correction inside RecentsView" into main 2025-02-18 17:02:45 -08:00
Treehugger Robot bc55a8ee4b Merge "Fix live tile in dismiss and swipe down animation" into main 2025-02-18 11:20:42 -08:00
minch 754e24c521 Indices correction inside RecentsView
Audit all the functions inside RecentsView with the TaskView index as
a parameter. Make sure the AddDesktopButton is considered while
setting the value of these parameters.

Flag: EXEMPT refactor
Bug: 379942019
Test: m
      alt+tab to the "# more apps" button insde KQS view, the first
      hidden TaskView inside the RecentsView will be focused.
Change-Id: I92cd3e38700e83e72d362dc47d3adae538695b60
2025-02-18 18:11:02 +00:00
Treehugger Robot a00a837bd8 Merge "Do not translate the AddDesktopButton on dismissing a TaskView" into main 2025-02-18 09:15:44 -08:00
Alex Chau 65c04b0f05 Fix live tile in dismiss and swipe down animation
- Add separate property for grid translation in TaskViewSimulator, so it doesn't get reset when other translations (e.g. dismiss) is applied to live tile
- In createAdjacentPageAnimForTaskLaunch, use onAnimationStart without isReverse parameter, so it's actually called when the PendingAniamtion starts
- Also reset pivot if we have overriden it during createAdjacentPageAnimForTaskLaunch
- Also avoid applying addOverviewToAppAnim on live tile if it's not launching, otherwise recentsViewScale will be applied twice with addOverviewToAppAnim applying wrong value
- Use pivot instead of recentsViewScroll to bring non scroll position live tiel to fullscreen, to avoid a trajectory that will otherwise travel left and then right

Fix: 391146807
Fix: 321013528
Test: launching via swipe down with non-launching live tile
Test: dismissing live tile
Test: launching live tile in non scroll position
Flag: com.android.launcher3.enable_grid_only_overview
Change-Id: I24ee85399b09b25e157a8986103658bb4803a87e
2025-02-18 17:13:21 +00:00
Treehugger Robot 329763191a Merge "Reduce ViewPool sizes for Desktop/GroupedTaskView to save RAM." into main 2025-02-18 08:59:42 -08:00
Uwais Ashraf 5a148aef44 Reduce ViewPool sizes for Desktop/GroupedTaskView to save RAM.
Bug: 395287683
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual - split tasks displaying correctly
Change-Id: Ib4496ee1859cc5245ec4ef76f0723de8fbd55b7c
2025-02-18 07:13:58 -08:00