63 Commits

Author SHA1 Message Date
Pun Butrach
9b90822395 fix: Disable material expressive folder expansion animations 2026-01-10 20:51:07 +07:00
Abhishek Sharma
5f3a03f4fb feat: Add option to clear home screen in settings (#6125)
Signed-off-by: abhixv <abhi.sharma1@hotmail.com>
2026-01-10 20:51:01 +07:00
Pun Butrach
0e8b200bab fix: Just make submodule stay the same please intellj 2026-01-10 20:50:12 +07:00
Pun Butrach
edfd0baad6 fix: Android 14/15 crash 2026-01-10 20:49:55 +07:00
Pun Butrach
d36845897b feat: Better At-a-Glance perceptive wallpaper colour luminance detection 2026-01-10 20:49:46 +07:00
Pun Butrach
2e76c99dad fix: Conflict incoming changes from 15-dev 2026-01-10 20:49:12 +07:00
Pun Butrach
11f7abcb66 chore: Cleanup, and hidden feature logged
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:25 +07:00
Pun Butrach
0a446431eb build: SNAPSHOT 0 (Draft) 2026-01-10 20:47:59 +07:00
Pun Butrach
b67168f737 Allocate insane memory just for CI
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:46:44 +07:00
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
Zak Cohen
334efebaba Overview - Adds first pass at making landscape layout real.
Adds dynamic sizing to margins around task view, also creates space in the
overview actions view in landscape to make space for the proactive chips if
needed.

Bug: 182529089
Test: Local build and run on two devices
Change-Id: I447de3564a3249ede4e8e8a4d3e5d1c177f6be61
2021-03-24 14:45:48 +00:00
Zak Cohen
34f4b7ebb8 Remove elevation from Task in Overview.
New designs don't have elevation for task views.


Bug: 179922117
Test: Local run
Change-Id: I0b3cb698574b49a279c7265e7f523819d20e2827
2021-02-11 19:08:02 +00:00
Sreyas
6c7e594d06 Updating Chips UI
Old Screenshot: https://drive.google.com/file/d/1_ptMdXCQGTz_vafOMbB-BZVZ_EP1LsaN/view?usp=sharing
New Screenshot: https://drive.google.com/file/d/1bM6Ur5H5OJdG22XU0MdRfVlNBAf_8aUy/view?usp=sharing
Test: Manual
Bug: 179490983

Change-Id: I14715b07a412239535b4916ba9cb355a0f0cf09e
2021-02-05 17:05:27 -08:00
Vinit Nayak
a406f727ad Add vertical layout support for Overview in portrait
WM is making changes which allows apps to maintain
their orientation independent of the orientation of
the foreground app. This allows recents to always start
in portrait even when the app currently running is in
landscape. This means we have to give the illusion of
a landscape oriented overview when user swipes up in
gesterual nav when launcher is started in portrait
configuration.

PagedOrientationHandler abstracts all coordinate specific
logic from Paged/RecentsView primarily, but also all
other dynamic calculations throughout launcher.
PagedViewOrientationState is the single point of exposure
to other classes that depend on those changes. The goal
is to also minimize holding state to allow for default
implementations of PagedOrientationHandler for all the
3p/Fallback classes. PagedViewOrientationState also
holds other data around rotation that isn't
specifically tied to view logic.

The fake landscape overview can be toggled with:
adb shell settings put global forced_rotation [0/1]

Fixes: 146176182
Change-Id: I65d8d4e9f92b93931cbe0053ccaf0cda8d2ffd6c
2020-03-02 18:02:35 -08:00
Zak Cohen
e895869f47 Overview actions - adds feature flag and base class for Overview Actions.
Adds ENABLE_OVERVIEW_ACTIONS feature flag and base factory. Requires an
implementation in overlay to show any actions.

Test: run locally with flag on and off.
Bug: 145628186

Change-Id: I1c36330464cc01e1e987ebfea1a9f451067598a5
2019-12-09 16:43:54 -08:00
Zak Cohen
b053371672 Make it possible to set a bottom margin on the task thumbnail view.
Test: manual test

Change-Id: Idb18efeb5e2ee46f789488529513874e028532db
2019-12-02 15:56:57 -08:00
Sunny Goyal
5b636ebfd4 Optimizing some layouts in taskview
> Recycling DigitalWellBeingToast so that the view is not inflated everytime
> Simplifying DigitalWellBeingToast to use a single text view
> Adding support for footers in taskView without creating additional layout

Bug: 122345781
Change-Id: Ia889819b93eb8644532ea95c6767554874d5e2d1
2019-06-13 10:39:46 -07:00
Zak Cohen
f1128d9f5e Task footer - use temporary motion for show and hide.
Bug: 125844074
Test: manual

Change-Id: I9a26760f4bd976d0c3475db1322ee0da639d8209
2019-06-06 14:37:19 -07:00
Zak Cohen
560fe07448 Chips container - Don't hard code the height of the chips container.
When the container was present, but empty, it was showing it's background.

Bug: 133783088
Change-Id: I97b65435d66e9ced7f5487dc50a00665794f8fcd
Tested: manual
2019-05-28 14:53:41 -07:00
Zak Cohen
418b9bc5fc Adapt the task footer container to be a named container.
Bug: 126744445
Test: manual
Change-Id: Id00ffac4581bbbe5dfd73a63b05c4512394745c1
2019-05-20 10:44:20 -07:00
Zak Cohen
1159c9c18a Moves proactive hints and wellness toast into a linear layout.
This ensures that they do not fight for the space. This is intended to
be iterated upon as we find solutions to some of the technical
challenges in the current POR.

Change-Id: I831e8797b16f28fe2cd742c96e9b7c916abf77a5
2019-05-15 15:47:58 -07:00
Perumaal S
64941fd9c6 Add proactive hints container
This replaces all other chips containers and causes minimal
layout overhead: It is strictly within the task itself and
causes zero jank or space issues.

Screenshots:
https://drive.google.com/corp/drive/folders/1-3ZNCJtWc9_cgmP1nNd8U1yvpCr6GGoq
Test: manual
Change-Id: I5e22a34c4dc1ac3e73c4d5c913befc2360cb388e
2019-05-12 14:56:25 -07:00
vadimt
c6d9ddfddb Removing hourglass_bottom
Now that we don't show DWB toast for negative remaining time

Bug: 127689526
Change-Id: I3ced3ec0da9bd7b09df9b66b4ef608e87339573f
(cherry picked from commit e921bacfb8)
2019-04-12 19:27:17 +00:00
vadimt
534178c926 Using hourglass icons for DWB toast
Bug: 118319143
Change-Id: I67018db3ceb8b6c0d863a46c9a9148013c68c1f7
Tests: Manual
2019-01-18 12:50:08 -08:00