Commit Graph

83004 Commits

Author SHA1 Message Date
Gustav Sennton b15df95186 Merge "Add CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE to launcher side" into main 2025-01-28 10:32:41 -08:00
fbaron a80aed9429 Fix hotseat issue on grid migration where extra items get removed
Flag: EXEMPT bugfix
Test: n/a
Fix: 333849747
Change-Id: I6bf3b291de33930764ca8e4fac82c59c328adbde
2025-01-28 17:07:47 +00:00
Will Osborn 96397a3d30 Fix RecentsAnimationListener callback type to match Sys UI type
Test: local run on Tangor & 'adb shell input keyevent KEYCODE_APP_SWITCH'
Flag: EXEMPT bugfix
Bug: 378657004
Change-Id: I0668f135222be48377ae5a05a6d27e084ef085f9
2025-01-28 16:48:47 +00:00
Juan Sebastian Martinez d6479f1b1a Merge "Avoiding MSDL haptics when first starting a drag in workspace." into main 2025-01-28 08:45:28 -08:00
Jordan Silva 2f016c0586 Merge "Refactor: Update task container and thumbnail dimming progress" into main 2025-01-28 08:26:22 -08:00
Alex Chau 64b90c1d92 Fix RecentTasksListTest.loadTasksInBackground_freeformTask_createsDesktopTask after flipping a flag
Change-Id: I3934a37a25279af483e8e19e909c9d6d6727a891
Fix: 392853711
Test: RecentTasksListTest
Flag: EXEMPT TEST_ONLY
2025-01-28 08:25:40 -08:00
Gustav Sennton 1c84b90fe2 Add CUJ_DESKTOP_MODE_EXIT_MODE_ON_LAST_WINDOW_CLOSE to launcher side
Move the CUJ to where the actual animation is taking place, so we can
target the correct surface/leash.

Bug: 374214290
Flag: NONE jank logging
Test: manual

Change-Id: Iccb30ff7ceee84b68428606575e1b8588eeb8aa9
2025-01-28 15:22:01 +00:00
Gustav Sennton 1706f3db11 Merge "Remove old Desktop transitions flags usages" into main 2025-01-28 04:04:09 -08:00
Treehugger Robot 7f4ce77932 Merge "Separate external display tasks in Overview" into main 2025-01-28 03:19:20 -08:00
Jordan Silva beb6122fbe Refactor: Update task container and thumbnail dimming progress
This commit updates the mechanism for dimming task containers and thumbnails in the recents view. These changes simplify the dimming logic and improve the performance of the recents view. It reduces the usage of Flows to propagate progress and animation states through the views and view models.

The following changes were made:

- The `TaskThumbnailViewModel` no longer provides a dimming level.
- The `TaskViewModel` now provides a `tintAmount` flow that represents the dimming level for a task.
- The `TaskContainer` and `TaskThumbnailView` now use the `tintAmount` flow to update their dimming level.
- The `TaskContainer` now also updates the dimming level based on the menu open progress.
- The `TaskThumbnailView` now uses a `MultiPropertyFactory` to manage the dimming level, allowing it to be controlled by both the tint amount and the menu open progress.

Bug: 390581380
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTest
Test: TaskViewModelTest
Test: TaskThumbnailViewModelImplTest
Test: TaskThumbnailViewScreenshotTest
Change-Id: I04d5dee534d56857b977d7f3ed6d4eda9f93be45
2025-01-28 10:33:36 +00:00
Thales Lima 2927a19384 Merge "Stop intercepting QuickSwitch gesture if there are no fullscreen apps open" into main 2025-01-28 02:27:21 -08:00
Anushree Ganjam 545416cc29 Move SettingsChangeLogger to Dagger.
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I46b740b3eef97ce85ed24d695ed68c12f8e12758
2025-01-27 19:15:16 -08:00
Treehugger Robot 7db4e97a39 Merge "Hook up mAddDesktopButton with the API createDesktop" into main 2025-01-27 15:46:55 -08:00
Juan Sebastian Martinez 1dce6f2503 Avoiding MSDL haptics when first starting a drag in workspace.
The MSDL token to play haptics when dragging was being played as soon as
a widget was long-pressed but not dragged over a new drop-off location.
Haptics should only play while the UI item is being hovered over new
cells. The new condition checks if the drag cell and drag cell span are
cleared and avoids playing haptics in this initial state.

Test: manual. Verified haptics while dragging icons over Workspace and
  Hotseat only when actually dragging over new cells.
Test: manual. Verified haptics with adb shell dumpsys of Launcher and
  checking the MSDL token history.
Flag: com.android.launcher3.msdl_feedback
Bug: 376103470
Change-Id: I7b2056f1c713b65f9df37f3138c1acf3b5376822
2025-01-27 15:00:51 -08:00
Bill Yi d665df4d2e Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I0f05496044144cb34e00c6534eba32a4fa5fdabb
2025-01-27 14:53:46 -08:00
Bill Yi aa5d0faa89 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: I8f6c492b85de5cdd5ee7eb66bb9d0d6fe6ee8e8e
2025-01-27 14:52:56 -08:00
Jagrut Desai b3bb1f1c4a Merge "Removing ScreenRecord from test" into main 2025-01-27 13:56:58 -08:00
Alex Chau f70cb57f04 Merge "Rename OverviewProxyService to LauncherProxyService" into main 2025-01-27 13:51:39 -08:00
minch d00382a09d Hook up mAddDesktopButton with the API createDesktop
Add the `setOnClickListener` for the `mAddDesktopButton`,
it will call the `createDesktop` API inside SystemUiProxy
to create a new Desk inside the display that the button
resides in.

Flag: com.android.window.flags.enable_multiple_desktops_frontend
      com.android.window.flags.enable_multiple_desktops_backend
Fix: 391917345
Test: Manual, make sure the callback function `createDesk` is called
      after clicking the button. No real desk will be created
      for now, as the backend hasn't been implemented yet.
Change-Id: I70417a1ce0963b9b3c109c3f3dffaab808212d23
2025-01-27 21:35:41 +00:00
Treehugger Robot 11b3add75c Merge "Properly setting up haptics on IconView when MSDL is enabled." into main 2025-01-27 13:21:25 -08:00
Jagrut Desai 7b9af1296e Removing ScreenRecord from test
Test: Presubmit
Bug: 319501259
Flag: EXEMPT bugfix
Change-Id: If417b0f748bd4cbc1270d8e393bb787c812074de
2025-01-27 10:45:56 -08:00
Treehugger Robot e801cd88e1 Merge "Add offsetTranslationX for the AddDesktopButton" into main 2025-01-27 10:09:16 -08:00
Cole Faust 42fc2058e6 Fix errorprone warnings
https://errorprone.info/bugpattern/BadInstanceof
https://errorprone.info/bugpattern/CompareToZero

Bug: 253827323
Test: Presubmits
Flag: EXEMPT refactor
Change-Id: If28f8f7f407b5b1e58911c58bb7d1b80f08c6114
2025-01-27 09:54:02 -08:00
Jordan Silva 0580dfc0c6 Merge "Fetch icon and thumbnail for completed task to prevent stale data" into main 2025-01-27 09:47:03 -08:00
Alex Chau e880ccfa2f Rename OverviewProxyService to LauncherProxyService
- OverviewProxyService is a shared service to send information from SysUI to Launcher, only 1 method `onOverviewShown` is related to Overview, renaming this service to better reflect the nature to avoid bugs misrouted to Overview component.

Fix: 391563516
Test: presubmit
Flag: EXEMPT REFACTOR
Change-Id: I7104532daa1a4b6a7a39966f11063fbe9d15533e
2025-01-27 09:32:28 -08:00
Cosmin Băieș f0a6af1468 Merge "Rename BACK_ALT flag to BACK_DISMISS_IME" into main 2025-01-27 08:51:01 -08:00
Alex Chau 5201f78a1f Separate external display tasks in Overview
- Sort external display tasks into front of Overview to create its own sections, all external display tasks are treated as large tile
- Fixed expected position of currentPage and runningTask respectively
- Fixed Desktop and fullscreen TaskView to launch with displayId from its first available task

Bug: 391311008
Flag: com.android.launcher3.enable_separate_external_display_tasks
Test: RecentTasksListTest
Change-Id: Ida0ccab00d3e4d74513812a11241dfc908bde991
2025-01-27 16:37:08 +00:00
Thales Lima c56864e3c5 Stop intercepting QuickSwitch gesture if there are no fullscreen apps open
Bug: 345296916
Test: Launcher tests
Flag: com.android.window.flags.enable_quickswitch_desktop_split_bugfix
Change-Id: I61cb2958bb4ce3234f9b2e50474e0dad906fe90d
2025-01-27 16:25:00 +00:00
Treehugger Robot 06b49fb9b6 Merge "Fix: Use original icon drawable for TaskThumbnailView" into main 2025-01-27 08:12:11 -08:00
Jordan Silva ac49e0cb58 Fetch icon and thumbnail for completed task to prevent stale data
The data returned from getAllTaskData can sometimes replace recently fetched thumbnail and icon data with a null value due to a race condition. This occurs when getAllTaskData results are returned after, or at the same time as, the thumbnail and icon data is fetched. Consequently, the information displayed to the user is incorrect and remains so until the user re-enters Overview or scrolls. To address this issue, we propose to re-request the task data for requests that have already been completed.

Change-Id: I99ee7f38abab3c283c9f82bce7b1d069575ddc6e
Fix: 392069389
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTests
Test: TasksRepositoryTest
2025-01-27 07:14:08 -08:00
Gustav Sennton 1cce85f197 Remove old Desktop transitions flags usages
Bug: 369763947
Test: n/a
Flag: EXEMPT flags removal
Change-Id: Ie4cd157bb94477db83a1995f976c2057f78902e4
2025-01-27 14:44:22 +00:00
Jordan Silva 6b24068c47 Fix: Use original icon drawable for TaskThumbnailView
- It modifies TasksRepository to return the original icon drawable directly without mutating or replacing it, ensuring the original drawable is used.
- Moved the mutate and copy of the drawable into the TTV (View layer), to prevent mutating the source of the icon for everybody else.
This commit addresses two issues:

These changes aim to fix issues with task icons that are displayed with
zoom after being modified by TTV.

Fix: 392568687
Fix: 392583703
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTest
Test: Manual
Change-Id: I29e81ba3518ecad09b96d9a5c0fa16e6931bfb39
2025-01-27 06:23:51 -08:00
Cosmin Băieș 29d67ee492 Merge "Don't show both the IME Switcher and A11Y buttons" into main 2025-01-27 03:43:21 -08:00
Treehugger Robot 9815c49644 Merge "Add bug fix flag to guard enabling start launch transition from taskbar." into main 2025-01-27 03:31:27 -08:00
Jordan Silva fe4152e608 Merge "Refactor: Remove TaskThumbnailViewModel and introduce TaskViewModel" into main 2025-01-27 03:09:37 -08:00
Cosmin Băieș d9fbdec845 Remove unused imeDownButton in taskbar
This button was originally forked off from the main back button in [1],
prior to the gesture navigation work, and it was the only back button
shown when the IME was visible.

Starting from [2], we reverted to always show the main back button
regardless of the IME visibility, and to also show the imeDownButton
when not in three button navigation (also submitted prior to the gesture
navigation work). Eventually in [3] the IME started supporting gesture
navigation with its own fork of navigation bar, which shows this button.

Later in [4], the imeDownButton was changed to only be visible in
gesture navigation mode, while the IME can draw its own navigation
buttons (specified through a syspro, defaults to true). Thus it could
only be shown when neither in gesture navigation nor in three button
navigation. However, with the navigation bar taskbar unification, this
button is essentially ignored, as it is not manually added.

In any case, as this is a fork of the main back button, all its
behaviour could (and should) be handled by the main implementation.

  [1]: I4d0ecd0bee0c519892c63eeefef45055b26d349b
  [2]: I7959d26986e546596e2436b8b5eb7668f44b55cf
  [3]: I3e7e1f83554444131e2765dc159617bb9e2337c7
  [4]: Iab8c47521ab9e561881e4ffb45142888e4c427e4

Flag: EXEMPT refactor
Bug: 366129400
Test: verify with IME shown and hidden in 3 button nav and gesture nav,
  in launcher and setup wizard
Change-Id: If337d198ddb0e0e2173167add9991f97988a3a5c
2025-01-27 10:43:29 +01:00
Cosmin Băieș 18721bf550 Rename BACK_ALT flag to BACK_DISMISS_IME
The NAVIGATION_HINT_BACK_ALT flag was originally introduced in [1],
alongside a few other flags which affected the navigation bar buttons.
The other flags were eventually removed in [2], leaving only this.
Unfortunately, the flag name is not very explicit, and it lacks clear
documentation.

This redefines the flag as BACK_DISMISS_IME, representing whether the
back button is visually adjusted to indicate that it will dismiss the
IME when pressed.

  [1]: Ie64369e3df3178178f35b56763ea96d380b6ddd4
  [2]: Ifd1f8c9f400d90542f0ca858b9a4deacabbd518a

Flag: EXEMPT refactor
Bug: 366129400
Test: n/a
Change-Id: Ida655a61b2477109e233fc62776e31d17698e2ce
2025-01-27 10:43:29 +01:00
Cosmin Băieș f90ebe5f70 Don't show both the IME Switcher and A11Y buttons
The IME Switcher shares the same spot with the accessibility button on
the navigation bar. In the previous implementation of the NavigationBar,
if the a11y button is visible, the IME Switcher button would not be.

With the recent unification of the navigation bar and the taskbar, both
buttons could be made visible at the same time. This fixes the taskbar
logic to only show the IME Switcher button when it should be visible and
the a11y button is not visible. This logic is only applied on phone
mode, the only case where the buttons overlap.

Flag: EXEMPT bugfix
Bug: 378803994
Test: switch to 3 button nav, show accessibility shortcut and dock it to
  the navigation bar, show the IME with at least two keyboard langauges,
  observe that only a11y button becomes visible
Change-Id: Ifc082d51e02d74f7dbf4516814121b67c0a6aa1a
2025-01-27 10:43:27 +01:00
Will Osborn 30b04a4bb0 Merge "Add feature flag for enable_overview_on_connected_displays" into main 2025-01-27 01:26:10 -08:00
Vania Desmonda 88c11031f9 Add bug fix flag to guard enabling start launch transition from taskbar.
Flag: EXEMPT adding flag
Test: EXEMPT adding flag
Bug: 391641359
Change-Id: Ia21f94bb28549700efce9967c79303b97224abe5
2025-01-27 06:24:50 +00:00
Lingyu Feng 9d98fb90c0 Merge "Add onDisplayRemoveSystemDecorations to TouchInteractionService" into main 2025-01-26 17:30:49 -08:00
Matthew Mourgos a83f85cf43 Add flag for mouse interaction changes
Bug: 388897603
Flag: EXEMPT adding flag
Test: EXEMPT adding flag
Change-Id: I8cc3f7711fcd378a57314a8a8070374e550b1344
2025-01-24 16:23:34 -08:00
Cosmin Băieș 1787eda528 Propagate IME back disposition state to SystemUI
Previously the navigation bar and taskbar were incorrectly using the
back dispositon state as the source of truth for the IME visibility.
While this can only be set while the IME is visible, it can (and is)
also unset despite the IME still being visible. This was fixed in [1].

While the taskbar previously did not take into account the back
dispositon state, by the IME visibility changing, the rotation of the
back button would also change, leading to an equivalent state. However,
with the fix from [1], this would no longer happen, with one scenario
being showing the IME and then the IME swithcer menu, which temporarily
unsets the back disposition mode while the menu is visible.

This propagates the back disposition state to SystemUI, so taskbar can
respond to changes in this value, rather than in the IME visibility.

  [1]: Ic57cea49f5ff49132802083b4f0c9b0e82db1cf7

Flag: EXEMPT bugfix
Test: switch to 3 button nav, show IME, show IME Switcher menu,
  observe back button rotation
  atest NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleImeSwitcherButtonVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleImeSwitcherButtonNotVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeNotVisibleImeSwitcherButtonVisible
  NavigationBarTest#testSetImeWindowStatusSysuiState_ImeVisibleBackDispositionAdjustNothing
Bug: 366129400
Change-Id: Ib05f9263afb754724021b5f3e48520eff5dad398
2025-01-25 01:18:11 +01: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
Cosmin Băieș c4ddddc2aa Remove redundant references to IME Switcher vis
The taskbar and bubble bar were using both the visibility of the IME and
that of the IME Switcher button to determine whether these bars should
be stashed. However, the IME Switcher button will never be visible while
the IME is not visible, so using its visibility is redundant.

This changes the stashing logic to only take into account the IME
visibility. Note, the IME is also considered visible even when a
hardware keyboard is connected, regardless of any UI being visible or
not. This visibility state determines various system behaviours.

Flag: EXEMPT refactor
Bug: 366129400
Test: open the IME and IME Switcher menu on large screen devices;
  observe taskbar behaviour
Change-Id: Ibcd16896582ca575538d8c1c3d2ab879090d075c
2025-01-25 01:18:11 +01:00
Cosmin Băieș ee04a3e0fd Remove unused FLAG_ROTATION_BUTTON_VISIBLE
The code related to this flag was removed in [1], but the flag
declaration, and two no-op usages were left over.

  [1]: I1de7fa061a6c6aba9f949a0bcf8cfced84273e3f

Flag: EXEMPT cleanup
Test: n/a
Bug: 366129400
Change-Id: If3d0751e0a9035ba8b0c66250df9339856788171
2025-01-25 01:18:11 +01:00
Treehugger Robot 1809cb6ff3 Merge "Focus on newly added app for all Accessibility use cases when adding an app to the home screen." into main 2025-01-24 14:02:44 -08:00
Eghosa Ewansiha-Vlachavas 432544a529 Merge "[2/n] Hide desktop button in overview for incompatible tasks" into main 2025-01-24 13:01:25 -08:00
Treehugger Robot 196ba82377 Merge "Removing redudntant objects from BgDataModel" into main 2025-01-24 12:00:33 -08:00
Treehugger Robot d77eed56f4 Merge "Fix for InteractionJankMonitorWrapper NPE" into main 2025-01-24 11:52:09 -08:00