- 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
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
This reverts commit bca368924c.
Reason for revert: Droidmonitor created revert due to b/404894013. Will be verifying through ABTD before submission.
Change-Id: If43e23bca9f7e62f26ee3c977cac643fcda3e3e6
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
- 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
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
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
- 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
- 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
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
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
- 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
- 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
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
- 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
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
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
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
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
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
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
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
> 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
When the container was present, but empty, it was showing it's background.
Bug: 133783088
Change-Id: I97b65435d66e9ced7f5487dc50a00665794f8fcd
Tested: manual
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
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
Now that we don't show DWB toast for negative remaining time
Bug: 127689526
Change-Id: I3ced3ec0da9bd7b09df9b66b4ef608e87339573f
(cherry picked from commit e921bacfb8)
No UX spec is ready, so using some placeholder layout.
No attention to string localization since I feel that strings may
change, compared to current mocks.
Not using remaining-time API, as it is not ready.
Bug:118319143
Test: Manual
Change-Id: I50cff9099677db543e95963f058d3e89eab07d8f
Keyboard navigation of AllAppsContainerView is broken in TOT; disabling
focusing there is necessary for Recents.
Bug: 72222505
Test: Manual
Change-Id: I85d544f7c8dbdaf12e49de51c6626bbc3dc32917
The list is:
Close [task]
<items from the task’s popup menu>
Also making a current task in carousel get accessibility focus. This
prevents losing focus after closing a task, and makes sense generally.
Bug: 72409756
Test: Manual
Change-Id: I2cfdfd4693a255f63417d922cb6aa4841db1d3c3
> Refactoring RecentsView to a common base class
> Moving some dependency form Launcher to BaseActivity
> Using the Recents view in RecentsActivity
Change-Id: Ie0e6741d356291e77420798c140c999121de3a0d