Commit Graph

29 Commits

Author SHA1 Message Date
samcackett
2244b633cc Add TaskContentView wrapper to TaskThumbnailView
- Keep TaskThumbnailViewDeprecated as-is
- Due to flag guarding and xml changes, added bottomright_snapshot id
- Remove redundant FrameLayout from task_header_view.xml and refactor
the view to handle alignment correctly
- Move feature flag logic to the state mapper
- Extract TaskThumbnailViewHeader logic and any related state out of
TaskThumbnailView and move to TaskContentView
- Use vertical LinearLayoutManager to hold the TaskThumbnailViewHeader
and TaskThumbnailView
- Rename TaskThumbnailViewHeader to TaskHeaderView. Rename xml and state
 similarly

This reverts commit df6dc455a7.
This reverts commit 714370a9bfb2e53738b0cd9958acd6540d8d649c.

Reason for revert: Reland previously reverted CL's with fixes

Fix: 408971730
Fix: 397889146
Fix: 401469907
Fix: 402277471
Fix: 403826044
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TaskUiStateMapperTest & TaskContentViewScreenshotTest & TaskThumbnailViewScreenshotTest & TaskHeaderViewScreenshotTest & SwitchBetweenSplitPairsGesturalNavPortrait
Change-Id: I01758447ad1194ebbeab748113621b42f3384db8
2025-04-09 16:36:51 +01:00
Shamali Patwa
15fa804ddf Merge "Add ViewStubs for DWB layouts to avoid duplicate views in refactor" into main 2025-03-25 06:38:42 -07:00
Shamali P
4ec89fbc63 Add ViewStubs for DWB layouts to avoid duplicate views in refactor
This CL just moves existing code to use view stubs. The refactor CLs
will use the flag to conditionally inflate these views.

Bug: 405359346
Fix: 405359346
Flag: EXEMPT refactor
Test: Existing screenshot tests and manual demo
Change-Id: Ib023d5f3538a0959a5965704a4ff18d769f8aa94
2025-03-21 16:26:07 -07:00
Alex Chau
77ddc254cc Revert "Add TaskContentView parent to TaskThumbnailViewHeader and TTV"
This reverts commit e0cc96df62.

Reason for revert: b/403826044, b/402277471

Flag: EXEMPT revert

Change-Id: I0c6e507753bf47be4f74b6056de75d981f0c2848
2025-03-20 04:45:52 -07:00
Priyanka Advani (xWF)
92aef0d99a Revert^3 "Inflate TaskThumbnailViewDeprecated as TaskContentView"
This reverts commit bca368924c.

Reason for revert: Droidmonitor created revert due to b/404894013. Will be verifying through ABTD before submission.

Change-Id: If43e23bca9f7e62f26ee3c977cac643fcda3e3e6
2025-03-19 12:56:55 -07:00
Sam Cackett
bca368924c Revert^2 "Inflate TaskThumbnailViewDeprecated as TaskContentView"
This reverts commit 1048b2711c.

Reason for revert: Reland CL with fix

Original message:
Inflate TaskThumbnailViewDeprecated as TaskContentView

If the enableRefactorTaskThumbnail is false, then inflate
TaskThumbnailViewDeprecated as TaskContentView so that the behaviour
matches the previous pre-factor behaviour

Fix: 402277471
Bug: 403826044
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Manual. See bug

Change-Id: Ib43331023d99316c7b0c9de2ab81e379db58bb50
2025-03-19 10:05:25 -07:00
Sam Cackett
e0cc96df62 Add TaskContentView parent to TaskThumbnailViewHeader and TTV
- Add TaskContentView parent view
- Extract TaskThumbnailViewHeader logic and any related state out of
TaskThumbnailView and move to TaskContentView
- Use vertical LinearLayoutManager to hold the TaskThumbnailViewHeader
and TaskThumbnailView
- Rename TaskThumbnailViewHeader to TaskHeaderView. Rename xml and state
 similarly

Bug: 397889146
Flag: EXEMPT. Refactor
Test: Refactoring CL. Existing unit tests still pass.

Change-Id: Ie31f35c6617aab272f984a6beb3e4cb8f58e3ce9
2025-02-28 12:19:26 +00:00
Uwais Ashraf
ca8a53911a Use ViewStub for TTV creation to prevent double inflation (TTVDeprecated then TTV).
Bug: 381317629
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: Performance tests
Test: Open single, split and desktop tasks with flag combinations for TTV refactor and app chip.
Change-Id: Ie43955ddf6c9fac162974077a37e8448c5ef1781
2024-12-10 08:19:22 +00:00
Marcelo Arteiro
bc02103a6a Migrate materialColor* attributes into colors
TLDR:
* This change should not break anything or change any color.
* Simplifies theming and styling while improving developer experience.
* With this  developers can often skip styling for color entirely, while ensuring consistency and preventing accidental overrides.

Bug: 374273611
Test: presubmit
Flag: EXEMPT bugfix
Change-Id: Id19038078e83c73847b1a7c686c3a3df1ecccac2
2024-11-21 13:08:11 +00:00
Alex Chau
98484db4ea Set DigitalWellBeingToast to GONE when there is no limit
- Surprisingly swithcing between GONE and VISIBLE doesn't cause a jank when swiping up
- Having DigitalWellBeingToast GONE should reduce the amount of time to layout RecentsView when there is no banner, which should fix b/364621823
- It might or might not reduce memory usage in b/364568201
- Also add missing accessibiltiy node for DigitalWellBeingToast

Bug: 364621823
Test: Swipe up with the app having DWB banner in different index, no jank when landing to Overivew
Flag: EXEMPT BUG_FIX
Change-Id: Ibf5a7f5318de509fe572779dd774dce71881aabe
2024-09-06 14:26:14 +00:00
Alex Chau
fae91d5e57 Include DigitalWelllBeing banner in task XML to avoid addView during animation
- Also simplified DigitalWellBeingToast to be an actual View that is a children of TaskView
- Split out getDwbLayoutTranslations into 2 methods
  - One that update layout will be called earlier during TaskView.updateTaskSize. It now takes calcualted split snaphsot size and layoutParams sizes instead of using measured sizes so it can run before onMeasure. Also make sure updateLayoutParams is called.
  - One that calulate translations only can be called more frequently without causing jank during animation
- TaskView.updateTaskSize now always set the exact sizes as layoutParams instead of MATCH_PARENT, so we can use the values for updateDwbBannerLayout
- Simplified outline and splitOffsetTranslation calculations

Fix: 345789862
Fix: 362435532
Test: Presubmit and manually testing DWB banner in variaous configuration single/split real/fake portrait/landscape/fake
Flag: EXEMPT bugfix
Change-Id: Ibde877c5f983689e0ef8104ba344b5947d0e3948
2024-09-03 17:02:31 +00:00
Alex Chau
1ceac5ddfe Implement e2e test for desktop windowing
Code changes:
- TaskView, GroupedTaskView and DesktopTaskView now uses different resId, so it can be differentiated by TAPL
- Extracted result handling of icon loading, so we can override in DesktopTaskView
- DesktopTaskView now load icons, so titleDescription can be loaded. When icons are loaded, contentDescription are applied to respective snapshotViews; icon unloading is ignored
- Track launchDesktopFromRecents and composeRecentsLaunchAnimator in TAPL events so we can test if the TaskView launch path is correct

Test changes:
- Added TaplTestsOverviewDesktop that move 2 TestActivities into Desktop, and launch the DesktopTaskView as static and live tile
- TaplTestsOverviewDesktop is limited to Tangor/cf_tablet only, and added LimitDeviceRule to AbstractLauncherUiTest to enable @AllowedDevices and @IgnoreLimit

TAPL changes (2 APIs added/modified):
- Changed TaskView matcher to use id/task_view_* to match all TaskView types
- When Overview is launcehd from Background, mark the currentTask after the launch as liveTile. When an OverviewTask has the same accessibility node as the liveTile, it'll expect different event when launching.
- [API change] BaseOverview.getTestActivityTask can now matches mutiple test activiites, useful for matching GroupedTaskView and DesktopTaskView; Fix a bug that getTestActivityTask wrongly use `getParent()` which is RecentsView to match activityName.
- In OverviewTask.open, we'll expect different events based on TaskView types and whether it's a live tile. Launching DesktopTaskView will in additional verify Desktop header is present on screen.
- [API change] In OverviewTaskMenu, support tapping Desktop menu and verify Desktop header is present on screen.
- Removed unused OverviewTaskMenuItem

Fix: 320313527
Test: TaplTestsOverviewDesktop
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: I89261c787364901320f3acb18f01ddad5f62d17c
2024-08-08 10:37:40 +01:00
Marcelo Arteiro
f38d98d1a6 Align color resources in launcher projects.
This is an effort to align/unify color usage across all launcher projects and the system itself.
This fix recreates all dynamic color attributes present in the OS since many launcher areas cannot access private attributes.
It is recomemnded to use these new local attributes in all launcher areas and avoid creating new color resources when these can be used directly.

Bug: 352690172
Test: Presubmits
Flag: EXEMPT bugfix
Change-Id: Ic36b8bf70ee37f2fdd32e459e66f0e2d001d6ba2
2024-07-19 14:22:21 +00:00
Uwais Ashraf
7e7afac7c0 Change drawing in TTV to use Views rather than Canvas
Fix: 352332386
Test: Presubmit, Manual
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Ia1b7b6dc3d093d431ce022e793f40e61cec38ac6
2024-07-11 13:19:21 +00:00
Alex Chau
4205013b0a Recycle thumbnailViews in DesktopTaskView
- Changed mTaskContainers to a List
- Added an XML for TaskThumbnailView to make it compatible with ViewPool
- Removed mSnapshotViews variable, and streamlined DesktopTaskView binding logic to re-use thumbnailvIew from mTaskContainers or ViewPool

Bug: 249371338
Fix: 251586230
Test: manual
Flag: ACONFIG com.android.window.flags.enable_desktop_windowing_mode DEVELOPMENT
Change-Id: Iab7575e9c36b8ebf3eb62f19f13d75ba671f9f4f
2024-05-08 22:19:27 +00:00
Uwais Ashraf
e21525da40 Add a refactored TaskThumbnailView
- Live Tile, swipe (left+right) and dismiss working
- Tests of ViewModel state transitions
- Deprecate the old TaskThumbnailView
- Renaming TaskThumbnailView to TaskThumbnailViewDeprecated

Fix: 335440878
Fix: 331754672
Bug: 331753115
Test: TaskThumbnailViewModelTest
Test: Attached video on bug
Flag: ACONFIG com.android.launcher3.enable_refactor_task_thumbnail DEVELOPMENT
Change-Id: I063b957fe6e56960970dcaadc641848fbd73251c
2024-04-23 23:05:14 +01:00
Jordan Silva
ebd71c6cc9 Refactoring TAPL functions for OverviewTask
This CL refactors some methods in OverviewTask to rely on OverviewSplitTask. It also changes the BaseOverview getTasks function to retrieve the parent task and support cases where only the bottomright_snapshot is available in the recent tasks.

Bug: 320633351
Test: TaplTestsSplitscreen
Flag: N/A
Change-Id: I226f895810ce3b46cc107f76cd85e2918abf7088
2024-02-05 13:50:23 +00:00
Sam Dubey
0552d37f34 Revert "Update Tapl tests for enable_grid_only_overview"
Revert submission 25220083-b/283246928

Reason for revert: b/308930958

Reverted changes: /q/submissionid:25220083-b/283246928

Bug: 283246928
Change-Id: I69ce128061f7ffad213f8f193122b18e5ee9378d
2023-11-02 13:33:55 +00:00
Alex Chau
3029b8314e Update Tapl tests for enable_grid_only_overview
- Add "task" as id for TaskView, and use it instead of "snapshot" when creating OverviewTask, so that for split tasks are caputred as a whole in getCurrentTask and getTasks
- Fix getCurrentTask() to correctly get the top-right tasks in grid only overview. It'll first get the widest task, and then top, and then rightmost task
- Fix scrollLeftByDistance() to correctly account for leftGestureMargin to make sure it scroll by distance provided
- Fix scrollCurrentTaskOffScreen() to actually scroll the task off screen
- Fix createAndLaunchASplitPair() to use Task menu instead of Overview actions for grid only overview
- Skip testOverviewActions() in grid only overview, where Overview actions isn't available
- Fix testOverivewForTablet to expect the correct task in grid only overview; also disabled part of a test due to an animation bug in Overview
- Fix dismissBySwipingUp() to swipe from bottom of task, which is required to effectively dismiss top row tasks
- Also fixed OverviewTask to correctly get objects in FallbackOverview

Bug: 283246928
Test: presubmit
Flag: None
Change-Id: I5dd39b1779ea02738556f921169dbe38aa4cba8c
2023-11-01 22:15:12 +00:00
Pat Manning
1695cc724c Create icon app chip menu for overview tasks.
Fix: 257951354
Test: TaplTestsQuickstep
Test: TaplTestsSplitscreen
Flag: ENABLE_OVERVIEW_ICON_MENU
Change-Id: Id8a14b1970ae42bcc74e95419caeaf52ef63638b
2023-10-02 12:51:56 +00:00
helencheuk
27f23c7a35 Re-land "Add hover state border to overview task item"
Fix: 249859410
Test: b/291266459
Change-Id: I5ac1e9e77439e587f11c994d22fdc72d20d8502d
2023-07-20 18:35:22 +01:00
Ikram Gabiyev
45b33a1a55 Remove contentDescription attribute in filter icon
Remove contentDescription attribute for multi-instance
filter icon ImageView since importantForAccessibility="no"
to avoid talkback noting it instead of the task name itself.

Bug: 280908761
Test: manually reproduce the steps in the bug
Change-Id: Ifdc884537222565fc2e52d5a17272f19a4446f62
2023-05-24 14:01:04 -07:00
Schneider Victor-tulias
e5c7d7dcd2 Polish the keyboard quick switch view and border animation colors
Flag: ENABLE_KEYBOARD_QUICK_SWITCH
Bug: 276336349
Test: keyboard quick switched on tablet and handheld
Change-Id: I2c21737db3fc4c332ffef9098e8d05d998cf3c39
2023-04-07 13:29:32 -07:00
Marcelo Arteiro
dec6428014 Automated Token Alignment Android/Material
Test: Treehugger
Bug: 268682423
Change-Id: I1127f729935c52f80f16c468316822fac351fc54
2023-02-20 15:35:01 +00:00
Schneider Victor-tulias
f908729fa8 Add the KeyboardQuickSwitchView (1/2)
Preparatory change for adding the KeyboardQuickSwitchView and associated flows.

Test: Manually tested alt-tab and alt-shift-tab in and out of overview on a tablet and phone
Bug: 258854035
Change-Id: I468481a023e82d3ef7c7d4d44c5b9435173b49ae
2023-02-13 15:34:39 -08:00
Ikram Gabiyev
6d3ad6820d Turn off filter ui if flag is off
Fix a bug in a condition determining when to show
filter ui for a certain taskview, making sure
that the ui is off when the feature flag for
multi-instance is off.

Test: reproduced the steps laid out in the bug

Bug: 264218764
Change-Id: Ie745789ad834d56b79de47e5196737eb08b081fa
2023-01-04 00:16:34 +00:00
Ikram Gabiyev
448e0ade10 Filter recents view instances by package name
Filter instances of GroupTasks based on package name
as a part of support for multi-instance

Add a feature flag to toggle multi-instance features

See the video below for how to use the demo.
Note: some extra UI elements were added since video
was recorded, but the filtering process is the same.
http://recall/-/da585DRwKRZK3S2xxcQrSm/gW9HZnbCvGyH1DQiVizOW2

See go/multi-instance for more info about the feature

Bug: 253520408

Test: manually tested the instance filtering

Change-Id: I19c947ca353699096388b9fbbdca6d75cb0041a7
2022-12-28 00:10:48 +00:00
Vinit Nayak
af6b85e3bc Show multiple icons for GroupedTaskView
* Hide all overview actions for GroupedTaskView
* Move some logic from TaskView into respective
PagedOrientationHandlers
* Remove unused methods from PagedOrientationHandler
* NOTE this is just visual changes. Properly showing
task menu's is still in-progress

Bug: 181704764
Test: Tested GroupedTaskView in portrait/landscape,
fake landscape in small screen, and real portrait/landscape
in large screen

Change-Id: I9c13ca114024db0a8e3fa5d295951696adb8516f
2021-09-17 10:16:56 -07:00
Vinit Nayak
17c4b33db6 Add GroupedTaskView for gestures in staged split.
* Currently only works for portrait 50/50 split
* Have gesture swipe animation flow use multiple
TaskViewSimulators, one for each app in split
* Added new APIs in shell to query for actively running
tasks to determine if we're in split screen
* Lots of UI polish needed during gesture
* Launching into staged split after live tile ends
not implemented yet.

Bug: 181704764
Change-Id: Ib90e99e1e10b19121e8709385e1334b9380d6502
2021-08-17 13:46:43 -07:00