Commit Graph

21228 Commits

Author SHA1 Message Date
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
Alex Chau
3dd59f0e7e Merge "Preparation for adding the AddDesktopButton to the view hierarchy" into main 2025-01-15 02:45:57 -08:00
Treehugger Robot
0650e9da6d Merge "Add nullable annotation to getAndInvalidateIfModified which returns null" into main 2025-01-15 02:09:16 -08:00
Uwais Ashraf
b853ff5edd Add nullable annotation to getAndInvalidateIfModified which returns null
Fix: 389069343
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Flag: com.android.launcher3.enable_grid_only_overview
Test: Code compiles after adding @Nullable annotation
Change-Id: I692b260eeabb2d69d6daa6ef91d1ab063ab0fe72
2025-01-15 00:05:10 -08:00
Treehugger Robot
93cd05e34a Merge "Remove some usages of GroupTask.task2" into main 2025-01-14 17:03:25 -08:00
Bill Yi
d1c2619c94 Merge "Import translations. DO NOT MERGE ANYWHERE" into main 2025-01-14 16:28:14 -08:00
Treehugger Robot
bc3995222b Merge "Moving DisplayController to dagger" into main 2025-01-14 13:39:19 -08:00
minch
9e8f5ee62a Preparation for adding the AddDesktopButton to the view hierarchy
- Update the logic of `getRunningTaskExpectedIndex` to make sure it
  will still work with the AddDesktopButton added as the first child
  of the RecentsView.
- Introduce `mTaskAlignmentTranslationY` to ClearAllButton, and set
  it through RecentsView. Thus, the logic can be used by the
  AddDesktopButton as well. etc.

Flag: EXEMPT refactor
Bug: 382057498
Test: Manual
Change-Id: I6d0c031fe1fc0b4c198b9c890a27a69d911d38d9
2025-01-14 21:10:53 +00:00
Alex Chau
e3b4b66d79 Merge "Support both grid and large tile with gridOnlyOverivew" into main 2025-01-14 12:24:19 -08:00
Saumya Prakash
25923178be Merge "Fix talkback not automatically announcing in Gesture Nav Tutorial" into main 2025-01-14 12:06:25 -08:00
Sunny Goyal
55dc2d1c31 Moving DisplayController to dagger
Separating various overrides to individual modules so that they can be reused in tests

Removing ContextualEduStatsManager and directly using SysUiProxy as all the usescases
are only in quickstep/
This avoids additional Module definition and delegation

Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I096459d638553991ed01766002b874589c6b976e
2025-01-14 11:40:35 -08:00
Treehugger Robot
b96a51e181 Merge "Drop initial default values from flows." into main 2025-01-14 11:27:59 -08:00
Treehugger Robot
236bdbd7bf Merge "Convert GroupTask and DesktopTask to Kotlin" into main 2025-01-14 11:23:14 -08:00
Ahmed Fakhry
28869b86e9 Remove some usages of GroupTask.task2
This CL marks `GroupTask.task1` and `GroupTask.task2` as deprecated, and
removes some of the usages of the `task2`. Follow-up CLs will continue
replacing all the usages.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I530bbba00bd41cf33a952b083de7670d9a490e81
2025-01-14 18:13:46 +00:00
Vinit Nayak
75d7e07844 Merge "Remove and cleanup splitContextual flag" into main 2025-01-14 09:39:59 -08:00
Pat Manning
2e6e9a6f4f Merge "Add Launcher Jank instrumentation to dismiss recent task" into main 2025-01-14 09:33:06 -08:00
Ahmed Fakhry
5ca0a51c60 Convert GroupTask and DesktopTask to Kotlin
This is the first step in refactoring GroupTask to remove the assumption
about `task1` being always present.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: Ib79d9f2ad7f028b971e2509d846b50fa220bee26
2025-01-14 17:22:22 +00:00
Uwais Ashraf
279f4ba6a2 Drop initial default values from flows.
Bug: 387511656
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Checking perfetto traces shows that this reduces the number of continuations on main by ~100 for 30 apps
Test: Opening Overview shows correct content.
Test: TaskThumbnailViewScreenshotTest
Change-Id: If8d3c6a8f82cea38a3fb78339946bec2c8646ab7
2025-01-14 16:50:25 +00:00
Vinit Nayak
3815a095f1 Remove and cleanup splitContextual flag
Bug: 276361926
Flag: EXEMPT removing flag
Change-Id: I6f567a8aae5b962f36ec2bc96b7fb05906b4ff2f
2025-01-14 10:23:59 -05:00
Uwais Ashraf
a395d929ff Merge "Fix how touch deadzone work in RecentsView" into main 2025-01-14 07:13:17 -08:00
Pat Manning
eee3a78186 Add Launcher Jank instrumentation to dismiss recent task
Bug: 385698952
Fix: 389653070
Test: OverviewTaskDismiss#dismissTask (Functional & microbenchmark test)
Flag: EXEMPT adding CUJ for existing recents

Change-Id: Ic5b50cd333d824f208b3d02829a8d5e8acc5f31d
2025-01-14 05:59:59 -08:00
Bill Yi
544d105047 Import translations. DO NOT MERGE ANYWHERE
Auto-generated-cl: translation import
Change-Id: Ie09a66cbda62872f9d71668822de2a3962abfb09
2025-01-13 19:07:18 -08:00
Treehugger Robot
af8990f9b0 Merge "Improve 2 stage logging slightly." into main 2025-01-13 17:05:20 -08:00
Saumya Prakash
c0149f4e70 Fix talkback not automatically announcing in Gesture Nav Tutorial
This change explicitly sets the Talkback attributes to allow for
automatically scrolling to the subtitle in the gesture navigation
tutorial. Previously, you would have to tap the subtitle for it to be
announced.

Fix: 386884587
Test: Run the tutorial with talkback enabled and observe talkback announcing the
title and subtitle of the current gesture
Flag: EXEMPT bugfix

Change-Id: I6ca2c1654f9e481165e2135e9afd72fa178f8184
2025-01-13 22:19:18 +00:00
fbaron
486016efd6 Add screenrecord for testLaunchShortcut_fromTaskbarAllApps
Flag: TEST_ONLY
Test: testLaunchShortcut_fromTaskbarAllApps
Bug: 373417111
Change-Id: Iee2eba237920228e5658bd7746beae03edaeff8b
2025-01-13 14:11:58 -08:00
Treehugger Robot
d64bb9392c Merge "Fix NPE in LauncherSwipeHandlerV2Test.setup (follow up)" into main 2025-01-13 13:34:59 -08:00
Mykola Podolian
fc8db9afc3 Merge "Shift transient taskbar to ensure 12dp distance with the bubble bar." into main 2025-01-13 12:52:21 -08:00
Xiaoqian (Daisy) Dai
6dbd67ae7d Merge "desktop-exploded-view: Add header to individual windows." into main 2025-01-13 11:40:53 -08:00
Mykola Podolian
987de5534e Merge "Hide bubble bar stash handle when the notification shade is open." into main 2025-01-13 11:40:18 -08:00
Schneider Victor-Tulias
2b64aa0b13 Fix NPE in LauncherSwipeHandlerV2Test.setup (follow up)
Since there is no display being used for LauncherSwipeHandlerV2Test, then no RecentsDisplayResource gets created for the DEFAULT_DISPLAY (and so RecentsDisplayModel.getFallbackWindowInterface returns null). Adding a mock display

Flag: com.android.launcher3.enable_fallback_overview_in_window
Bug: 377678992
Test: pre/postsubmit
Change-Id: I43754eafb4f6a9b393e6a7b7fbd5b27903d2f9b9
2025-01-13 14:12:29 -05:00
Treehugger Robot
3ddd380c14 Merge "Remove ScreenRecord for a closed bug" into main 2025-01-13 10:19:05 -08:00
Alex Chau
ad9821d8ed Fix how touch deadzone work in RecentsView
- The new design have 3 deadzones Rect:
  - TaskView (for desktop tasks, focused task or all tasks in small screen)
  - Top row
  - Bottom row
- The shorter row between top/bottom row is expanded to cover space between the 2 rows
- The large tile row is expanded to cover space between large and small tiles
- Rect illustration: http://screen/8vHAqrYdUB5Rqbc.png

Fix: 323143607
Fix: 323143607
Test: Tap empty space between tasks, Oveview should not dismiss
Test: Tap empty space on shorter rows in grid, Overview should dismiss
Flag: EXEMPT bugfix
Change-Id: Id59c1238df33dfbe67a696d0836ba393321b38ac
2025-01-13 13:34:11 +00:00
Alex Chau
9c85596111 Support both grid and large tile with gridOnlyOverivew
- With the introduction of Desktop windowing, we'll need to supprot grid task and large tile (desktop tile) coexisting
- The previous gridOnlyOverview aimed to have taskSize matches actual grid task size, and introduced another carouselTaskSize for scaling in swipe up carousel
- Now I'm reverting to pre-gridOnlyOverview implementation of having taskSize as both large tile size and carousel task size, and gridTaskSize as only task size in grid

TaskViewSimualtor
- Removed no longer needed carousel translation and related calculations
- mIsGridTask is now determined with DeviceProfile, so when swipeing to Desktop task it won't use grid task size

TaskView
- Removed no longer used nonGridPivotTranslationX

RecentsView
- Make getSelectedTaskBounds / getTaskBounds picks the correct taskSize

Fix: 359573248
Fix: 321697299
Fix: 325606690
Bug: 322816508
Test: Swipe up, quick switch, task launching with grid task and desktop tasks; repeat with RTL, three button, phone
Flag: com.android.launcher3.enable_grid_only_overview
Change-Id: I14648c6682c53a4d06f9c9585d53f28dddef4f8f
2025-01-13 13:31:29 +00:00
Brandon Dayauon
f48e1d42e3 Merge "Remove screen record annotation from test" into main 2025-01-11 11:33:05 -08:00
Treehugger Robot
c9f33fba00 Merge "Revert "Override desktop tasks corner radius during recents tran..."" into main 2025-01-11 01:06:00 -08:00
Treehugger Robot
8fa43b3bb1 Merge "Moving overview preloading to a separate utility class" into main 2025-01-10 21:32:23 -08:00
Adam Cohen
8d4669a620 Merge "Add LauncherProvider interface to get and set current workspace layout via xml" into main 2025-01-10 16:36:25 -08:00
Vadim Tryshev
3dafa1edff Remove ScreenRecord for a closed bug
Bug: 349439239
Test: presubmit
Flag: NONE Test change
Change-Id: If80c6681e6a3cb6c0bc81763c28ed7837c14c719
2025-01-10 14:46:42 -08:00
mpodolian
f1186f9d14 Hide bubble bar stash handle when the notification shade is open.
Introduced logic to control the bubble bar stash handle alpha based on
the notification shade state.

Test: TransientBubbleStashControllerTest
Test: Manual. Have bubbles and the bubble bar stashed. Open the
notification shade, observe that the stash handle fades away. Close the
notification shade, observe that the stash handle fades back in.
Have few bubbles, open bubbles test app, click on bubble icon. Observe
the bubble bar expands without blinking.
Test: Manual.
http://recall/-/gx8ASgewUeUS3QYohfrd1J/e1iUtwaFdezKOb0gBRff7Z
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 376140839
Fixes: 376141264

Change-Id: Id9c473f9aead0e4c5830793d9f3b0b1ae86453e7
2025-01-10 14:33:30 -08:00
Mykola Podolian
11fcd29cdf Merge changes I8ec01d69,If2366ec1,I8321e2f5 into main
* changes:
  Take bubble selection from the shell update.
  Fix bubbles animation when the new bubble added and old bubble removed.
  Fix arrow animation when the new bubble added and old bubble removed.
2025-01-10 14:28:52 -08:00
Michele Fan
89b039da83 desktop-exploded-view: Add header to individual windows.
The header has an app icon, app title and a close button. Currently
clicking on the close button does nothing. Will address it in a
following CL.

Flag: com.android.launcher3.enable_desktop_exploded_view
Test: Manual
Bug: 353965691

Change-Id: I5e0303a02d5f8afd16a5f5f0335a8fa489ff98f2
2025-01-10 22:25:43 +00:00
Brandon Dayauon
dc433bae0f Remove screen record annotation from test
bug: 355466672
Test: manual presubmit
Flag: EXEMPT removing annotation
Change-Id: If85ba788420ddb8e8567e81c36d4be762d46ff20
2025-01-10 13:28:25 -08:00
Daniel Chapin
c9a10a788a Revert "Override desktop tasks corner radius during recents tran..."
Revert submission 30844330-recents_swipeup_cornerradius

Reason for revert: b/388979758

Reverted changes: /q/submissionid:30844330-recents_swipeup_cornerradius

Change-Id: I58e737c660cd8f8e8c9ce4e7c06ab311d9cc583c
2025-01-10 05:58:50 -08:00
Adam Cohen
295c520bcb Add LauncherProvider interface to get and set current workspace layout via xml
=> For prototyping purposes only. The method is protected by system|signature permission.
=> Uses the AutoInstall layout xml specification to allow for getting and setting the current launcher layout.

Test: manual via prototype apk
Flag: EXEMPT prototyping interface

Change-Id: I04dd29ee69db642095dfb5f6c4965cdb8509b05e
2025-01-09 12:28:42 -08:00
mpodolian
f62b45e5f0 Take bubble selection from the shell update.
Prior to this change, the bubble bar controller determined which bubble
to select. With this change, the selection is now determined by the
update received from the shell.

Test: Manual. Tested the add overflow and remove bubble flows, add
bubble and remove overflow flows, and add bubble and remove bubble flows
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 359952121

Change-Id: I8ec01d6976b1e1cd0129071fd1765041eeb10b83
2025-01-09 12:17:47 -08:00
Treehugger Robot
75ebd70172 Merge "Don't populate accessibility menu when split selection is active" into main 2025-01-09 12:10:28 -08:00
Ats Jenk
eb15dbbe70 Merge "Use down and up event diff for bubble bar click" into main 2025-01-09 10:58:20 -08:00
Ats Jenk
65e60920b8 Use down and up event diff for bubble bar click
When determining if a touch event on bubble bar area is a click,
check the time diff between receiving ACTION_DOWN and ACTION_UP
motion events.
This matches with how the click handling is implemented in
View.java.

Bug: 385928447
Test: tap on bubble bar to expand it, long-press on bubble bar to move
Test: atest PlatformScenarioTests:android.platform.test.scenario.sysui.bubble.ShowMultipleBubblesAndSwitchTest
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I5a4a6605adf08f21b28b017cb6edfcb7b898a762
2025-01-09 08:58:54 -08:00
Ats Jenk
0570605e10 Merge "Use bubble count for checking if bubble bar has bubbles" into main 2025-01-09 08:48:14 -08:00
samcackett
7e2b19508c Don't populate accessibility menu when split selection is active
User should only be able to select the second app to split with, not
dismiss or take any other action.

Fix: 320221290
Test: Enable Switch Access. Open some apps.
Go to Overview and select "Split".
Select the second app. Accessibility menu should not be shown.
Flag: EXEMPT bugfix

Change-Id: I9075e018261949366dec21f64249308601690dbe
2025-01-09 14:34:51 +00:00