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
- 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
- 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
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
- 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
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
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
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
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
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
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
- Remove TaskThumbnailViewModel and replace it with TaskViewModel
- Introduce TaskUiStateMapper class to map between TaskData and TaskThumbnailUiState
- Improve TaskView by introducing TaskViewModel and delegate to TaskContainer to show changes
- Refactor TaskThumbnailView to simplify its responsability and be able to receive TaskThumbnailUiState.
- Add TaskViewModel test and TaskUiStateMapper tests
Bug: 390583187
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: OverviewImageTests
Test: TaskViewModelTest
Test: TaskUiStateMapperTest
Test: TaskThumbnailViewModelImplTest
Test: TaskThumbnailViewScreenshotTest
Change-Id: I90bb08d377d7a24ca803c552e0cf3897c8888b76
Apply the `offsetTranslationX` to the AddDesktopButton inside
`updatePageOffsets`, so the button can be set to offscreen
when needed.
This requires us to differentiate the `gridTranslationX` and
the `offsetTranslationX` for this button as well.
Flag: com.android.window.flags.enable_multiple_desktops_frontend
com.android.window.flags.enable_multiple_desktops_backend
Fix: 389209282
Test: Manual
Change-Id: Id157c41577b2f47b220558b353f07a4ecb0ec3b5
This cl also removes forced hidden annoucement and focus for Bubble Bar since they are annouced together.
we are keeping the tasksbar show annoucement and focus since it is only way to notify user of taskbar being shown on screen until we figure out proper solution with talkback team.
Test: Manual, Presubmit
Bug: 383928453
Flag: EXEMPT bugfix
Change-Id: I2c32ea393da2509af49e2fce795759a6903b0451
Add debugging logs to understand why taskbar root layout would be null.
Flag: EXEMPT not adding new behavior
Bug: 382378283
Test: Manual
Change-Id: I1140360274667a6c3766f03e1f5f1592c09e13e1
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
Update debugging logs for TaskbarManager to be display specific.
Flag: EXEMPT not adding new behavior
Bug: 390004132
Test: Manual
Change-Id: I0222e3bce94bee410b3572d1bc820cc71a2c1a68
The default View's haptics are disabled when using MSDL. This avoids
duplicate vibrations on long-press.
Test: manual. Verified single haptic playback on long-press
Flag: com.android.launcher3.msdl_feedback
Bug: 376283547
Change-Id: I35f4ddd755e851992016957a92ebc546aa131d18
Added an IPC call to inform the Bubble Bar in the launcher process
of drag events from the shell.
Bug: 388894910
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Check that events from the shell process successfully
reach the launcher process.
Change-Id: I01615911ce7e4250138aedaa5823f639b9163ff0