Commit Graph

1766 Commits

Author SHA1 Message Date
Eghosa Ewansiha-Vlachavas 064af3dfa7 Merge "[2/n] Include default home package in windowing exemptions check" into main 2025-01-29 21:52:45 -08:00
Treehugger Robot 4a17c7ab0d Merge "Move SimpleOrientationTouchTransformer to Dagger." into main 2025-01-29 19:42:42 -08:00
Anushree Ganjam 4597aae947 Move SimpleOrientationTouchTransformer to Dagger.
Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I2c7adf5da76f0a60c167f4c650622ba8dfeac98d
2025-01-29 17:15:03 -08:00
Treehugger Robot a804d02912 Merge "Refactor: Extract Thumbnail and sysUiStatusNavFlags from TaskContainerVM" into main 2025-01-29 12:04:37 -08:00
Jordan Silva 39549a3843 Refactor: Extract Thumbnail and sysUiStatusNavFlags from TaskContainerVM
Moves the sysUiStatusNavFlags from TaskContainer to TaskView to align it
 with the new thumbnail architecture. This change allows for better
 management and access of this information within the TaskView.

Bug: 390581380
Doc: go/launcher-overview-unified-taskviewmodel
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: GetSysUiStatusNavFlagsUseCaseTest
Test: GetTaskUseCaseTest
Test: TaskUiStateMapperTest
Test: TaskViewModelTest
Change-Id: Ic285e41620350dbd3e975b6223e6b7d4cd62d3c0
2025-01-29 17:57:18 +00:00
Eghosa Ewansiha-Vlachavas 686276b571 [2/n] Include default home package in windowing exemptions check
Test desktop and external display system shortcuts with default home
package.

Flag: NONE bug fix
Test: atest -c NexusLauncherTests:com.android.quickstep.DesktopSystemShortcutTest,
      atest -c NexusLauncherTests:com.android.quickstep.ExternalDisplaySystemShortcutTest
Fixes: 389906224
Change-Id: I0d48ac3ffe995ebefffd1ea1b6892a72a3d3a4f1
2025-01-29 08:05:26 +00:00
Charlie Anderson db9bb3c869 Merge "Convert UserCache to use Dagger" into main 2025-01-28 16:15:03 -08:00
Anushree Ganjam 79ffb0ed30 Merge "Move SettingsChangeLogger to Dagger." into main 2025-01-28 15:11:59 -08:00
Schneider Victor-tulias c4aa8188e7 Merge changes I73042126,If7c21ab5 into main
* changes:
  Fix TaplTestsQuickstep test failures with recents window flag on
  Clean up the input stream on TAPL test failure
2025-01-28 13:20:58 -08:00
Charlie Anderson e90282b317 Convert UserCache to use Dagger
Bug: 372012340
Test: Presubmit
Flag: EXEMPT Dagger Change
Change-Id: I36a0a3f56540c0515d99badc127c2ab8534e684e
2025-01-28 15:30:07 -05:00
Schneider Victor-Tulias 3b71faed91 Fix TaplTestsQuickstep test failures with recents window flag on
Flag: com.android.launcher3.enable_launcher_overview_in_window
Bug: 377678992
Test: pre/postsubmit
Change-Id: I73042126e2af1ffabe8a368d8a02ae1a4552d9a2
2025-01-28 14:05:45 -05:00
Treehugger Robot a8145bc41f Merge "Fix RecentTasksListTest.loadTasksInBackground_freeformTask_createsDesktopTask after flipping a flag" into main 2025-01-28 10:34:58 -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 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
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
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
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 fe4152e608 Merge "Refactor: Remove TaskThumbnailViewModel and introduce TaskViewModel" into main 2025-01-27 03:09:37 -08: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
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
Jordan Silva 3bf3740891 Refactor: Remove TaskThumbnailViewModel and introduce TaskViewModel
- 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
2025-01-24 11:36:22 -08:00
Treehugger Robot b22158206b Merge "Introduce SingleTask and SplitTask" into main 2025-01-24 02:59:37 -08:00
Ahmed Fakhry f87e44376b Introduce SingleTask and SplitTask
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
2025-01-23 23:48:01 +00:00
Treehugger Robot ed5910ad52 Merge "Revert "Revert "Migrating RecentsAnimationDeviceState and depend..."" into main 2025-01-23 11:02:36 -08:00
Eghosa Ewansiha-Vlachavas c808bb1b23 [2/n] Hide desktop button in overview for incompatible tasks
Flag: NONE bug fix
Test: atest -c NexusLauncherTests:com.android.quickstep.DesktopSystemShortcutTest,
      atest -c NexusLauncherTests:com.android.quickstep.ExternalDisplaySystemShortcutTest
Fixes: 389923274

Change-Id: I82acc85ca57b5454f9eeedd800dcd7da9990f9c8
2025-01-23 17:14:52 +00:00
Treehugger Robot 86864f95c3 Merge "AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks" into main 2025-01-23 03:34:55 -08:00
Gustav Sennton 1427068342 AllApps tray icon tap: use showDesktopApp() for existing Desktop tasks
When tapping an icon in the AllApps tray, before this CL, we would use
the WM Shell API startLaunchIntentTransition() to launch a task for that
app icon. However, this would break the window limit logic since in WM
Shell (startLaunchIntentTransition()) we think we're launching a new
task, when in fact we're just moving an existing one to the front.
With this CL we instead reuse the showDesktopApp() API whenever the app
we're trying to launch has an already visible / minimized Desktop task.

Bug: 391365151
Test: launch visible Desktop app from AllApps - doesn't overtrigger
window limit
Flag: com.android.window.flags.enable_desktop_app_launch_transitions_bugfix

Change-Id: Ia3638012226fe28c853ec6cfd0523a8fb23b8961
2025-01-23 00:46:08 -08:00
Sunny Goyal a5fef475a5 Revert "Revert "Migrating RecentsAnimationDeviceState and depend..."
Revert submission 31416515-revert-31332401-recents-device-state-LXBUANUQFL

Reason for revert: Fixing build breakage and resubmitting

Reverted changes: /q/submissionid:31416515-revert-31332401-recents-device-state-LXBUANUQFL

Change-Id: I3b89356df57f1e7ff1a9e364c0d766578e23798c
2025-01-22 18:31:06 -08:00
Toni Barzic f817372651 Show desktop tasks when taskbar is pinned on home
Updates taskbar and KQS to show (running) desktop tasks when taskbar is
shown on the home screen - adds `shouldShowDesktopTasksInTaskbar` method
to TaskbarDesktopModeController to be used instead of
`areDesktopTasksVisible*()` to determine whether to show desktop tasks
in the taskbar. The method, in addition to desktop tasks visibility,
also considers whether taskbar should be shown on the home screen, and
whether current launcher state is home.

The launcher state is fetched from `TaskbarStashController`, which
already keeps track of this state. This is likely not ideal, but can be
removed in the long term - see http://b/390665752.

Furthermore, updates ReventsModel login not to always filter out desktop
tasks with no non-minimized tasks (which is currently expected behavior
in overview) in `getTasks()`. The filtering is now done by the filter
passed to `getTasks()` method, instead of when processing tasks in the
background. The filter used by default is updated to filter out such
desktop tasks, but callsites from `KeyboardQuickSwitchController` and
`TaskbarRecentAppsController` are updated to use an empty filter, so
they can display desktop tasks when they're all minimized.

Bug: 376711722
Bug: 390665160
Test: Manual on desktop device - verify that taskbar and KQS when shown
on home screen display desktop tasks, including the case all tasks are
minimized.
Flag: com.android.window.flags.enter_desktop_by_default_on_freeform_displays

Change-Id: Iabc22e20bf64aa9a826b4a5952f1edc6ea639cdc
2025-01-22 22:36:02 +00:00
Liana Kazanova (xWF) fa30e3fc0e Revert "Migrating RecentsAnimationDeviceState and dependent obje..."
Revert submission 31332401-recents-device-state

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

Reverted changes: /q/submissionid:31332401-recents-device-state

Change-Id: I3986328ee3aa8ebb822f7ef05b9f80ef68872aef
2025-01-22 13:50:08 -08:00
Sunny Goyal d7bfa76bcc Migrating RecentsAnimationDeviceState and dependent objects to Dagger
Bug: 361850561
Flag: EXEMPT dagger
Test: Presubmit

Change-Id: I2c45ec49a913abb0532e83b09e797012e06eb8c4
2025-01-21 23:53:02 -08:00
Treehugger Robot 5684d23331 Merge "Don't expect another task to become focused when dismissing Desktop task" into main 2025-01-21 20:33:31 -08:00
Treehugger Robot bfd58c8c00 Merge "Remove some usages of GroupTask.task1" into main 2025-01-21 17:04:01 -08:00
Vinit Nayak e7753eb796 Merge "Remove and cleanup AppPairs flag" into main 2025-01-21 12:20:55 -08:00
Alex Chau 341330bacd Don't expect another task to become focused when dismissing Desktop task
- Don't consider Dekstop task as focused in TAPL
- Renamed variables in dismissTasks_whenDesktopTask_IsInTheCenter as there isn't always a focused task

Fix: 391354508
Test: TaplTestsOverviewDesktop#dismissTasks_whenDesktopTask_IsInTheCenter
Flag: EXEMPT BUG_FIX
Change-Id: Iadc0cf81f37d537837e565e233d11c4148cf3045
2025-01-21 17:58:58 +00:00
Jagrut Desai 6971afcd0b Merge "Fix Taskbar icon Accessibilty Focus on hovering" into main 2025-01-17 13:17:41 -08:00
Treehugger Robot 6b6020da2d Merge "Add TaskViewModel to fetch and map Tasks data" into main 2025-01-17 11:00:32 -08:00
Jagrut Desai 625b78ae13 Fix Taskbar icon Accessibilty Focus on hovering
The problem: ArrowTipView was TypeAccessible hence taking a focus away from taksbar icon. The hover event was getting consumer by onHover of the listener and not getting passed to view. Upon passing the hover event we see icon scale up. We don't want both icon to scale up and show
tootip when hovering.

The Solution: pass motion event to onHoverEvent for icon view and mark ArrowTipView to be not included as Accessible View. For disabling hove
ring for taskbar icon we introduced new field to track if hovering is enabled for display type for that icon.

Test: Manual, Presubmit
Bug: 284081291
Flag: EXEMPT bugfix
Change-Id: Ie02d17856b26f82887fd178ccf0a7351416cc43e
2025-01-17 09:57:38 -08:00
Ahmed Fakhry 26a43abbe2 Remove some usages of GroupTask.task1
See go/refactor-group-task for details. This is another incremental
change towards deprecating `GroupTask.task1`.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: Ib9b38268374277f485c6856a012b5b7f02e37055
2025-01-17 17:47:26 +00:00
Jordan Silva be4ceb26c9 Add TaskViewModel to fetch and map Tasks data
This commit introduces a new `TaskViewModel` which retrieves task data using `GetTaskUseCase` and maps them to `TaskTileUiState`.
It also adds new files `TaskTileUiState` and `GetTaskUseCase` with their corresponding models.
- `TaskTileUiState` is used to represent the UI state of a single overview tile.
- Introduced `TaskData` sealed interface to encapsulate different states of a task.
- `GetTaskUseCase` is used to fetch a single task given an id from the repository.
- `TaskViewModel` fetches and maps tasks to `TaskUiState`.
- Added unit tests for `TaskViewModel` to ensure the correct data is being emitted.
- Added unit tests for `GetTaskUseCaseTest` for testing task retrieval logic.
- `TaskModel` is the new data model representing the data fetched by the repository.

Fix: 390578940
Fix: 390578937
Bug: 388486032
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: GetTaskUseCaseTest
Test: TaskViewModelTest
Change-Id: Ibf728eccc31270c0d0d8668a503e26d6d0e88f59
2025-01-17 16:44:56 +00:00
Treehugger Robot 948222d92a Merge "Add a tapl test for locked taskbar" into main 2025-01-16 21:08:23 -08:00
Toshiki Kikuchi 6df54399fb Add a tapl test for locked taskbar
This CL adds a new tapl test to verify the behavior of the “locked”
taskbar which is sticky even when the home is on top.

Bug: 388125007
Flag: EXEMPT add test
Test: TaplTestsLockedTaskbar

Change-Id: I80d8d565ac63c2e3a8c2f79c46809f89fadfd181
2025-01-17 12:11:29 +09:00
Sihua Ma 8fc266d063 Move tests to multivalent
Test: SysUI studio
Test: atest NexusLauncherRoboTests
Flag: EXEMPT test migration
Change-Id: Idd9e52f281d955e87f6db638ebfd8218a4dcb77f
2025-01-17 00:04:27 +00:00
Anushree Ganjam 25717836e1 Merge "Use RunListener to Clear inline mocks at the end of each test class." into main 2025-01-16 13:28:04 -08:00
Anushree Ganjam 0a29e73ffb Use RunListener to Clear inline mocks at the end of each test class.
Inline mocks are leaking activity contexts and accumulation of these activity contexts led to OOM that resulted in test failure.

See https://github.com/mockito/mockito/issues/1614 for details on mockito caused memory leaks

This change works for both soong and gradle builds.

Bug: 378520480
Test: atest and android studio builds
Flag: TEST_ONLY
Change-Id: I4a50993621ea416a02a41dd2f9c330d1599f065c
2025-01-16 11:19:52 -08:00
Vinit Nayak 3456fcbe03 Remove and cleanup AppPairs flag
Test: Launcher compiles and runs
Bug: 274835596
Flag: EXEMPT cleanup
Change-Id: Iab8f17d444753df303ed1a09d6547917545e66f5
2025-01-16 14:02:55 -05:00
Saumya Prakash 26bceb527e Merge "Avoid per task app icons in Taskbar for desktop mode" into main 2025-01-15 14:18:38 -08:00