- Focus task is only removed under ENABLE_GRID_ONLY_OVERVIEW, but many fixes/refactoring are generic and apply with the flag off
- Keep moving running task to front if go to overvied after quick switch, so live tile is always on top right
Grid calculation:
- Fixed some top/bottom calculation assumption that assume focus task is always present
Size calculation:
- With ENABLE_GRID_ONLY_OVERVIEW, taskSize == gridTaskSize, and task is aligned to top-right of gridRect (instead of focusTaskRect)
Bug: 257952455
Test: Enter overview from home
Test: Enter overview from app, with variations that quick switch and enter
Test: Dismiss task from different position
Test: Split select task from different position
Test: Repeat with/without GRID_ONLY_OVERVIEW flag
Test: Repeat with handheld
Change-Id: I6580a8ac6c2c2059c33c4daca05b7d0354513e74
Bug fixes:
- Unusual long scroll when only focus task left after split select
- Animation jump when tasks cannot fit screen width after dismiss or split select
To fix the above issue, generified calculations when total grid task width < screen width:
- Removed some special case handling when only focus task left (getSnapToFocusedTaskScrollDiff), and instead replace with generic logic that calculation that extra scroll position (shortTotalCompensation) needed when long row width is smaller than the grid size
- Fixed snapped task grid translation calculation to account for shortTotalCompensation
- Last task scroll calculation should account for shortTotalCompensation too
- Calculate the expected shortTotalCompensation after dismiss, and use that to adjust the close gap between clearAll distance
splitScrollOffset that we applied during split screen does not work well when shortTotalCompensation != 0. splitScrollOffset is not a good solution to handle split placeholder, as it allow tasks to scroll to weird position. I removed splitScrollOffset completely, and only apply split translation when split placeholder covers the tasks:
- Removed splitScrollOffset on TaskView/ClearAll, so scroll position of TaskView will not change while in split to splify things.
- When split placehodler will cover task's natural position (taskSize) in overview grid, apply split translation on all tasks similar to handheld
- Removed isSplitPlaceholderFirstInGrid/isSplitPlaceholderLastInGrid adjustments
Bug: 257952455
Test: Enter overview from home
Test: Enter overview from app, with variations that quick switch and enter
Test: Dismiss task from different position
Test: Split select task from different position
Test: Repeat with/without GRID_ONLY_OVERVIEW flag
Test: Repeat with handheld
Change-Id: I7689b5384845f03491041b6d910835c9ac4fab08
Use same logic for desktop as split screen is using. If focused task is
the desktop task, hide overview actions.
Bug: 269658609
Test: Enable desktop proto 2, have some apps on desktop, focus on a
fullscreen app, open overview, observe actions visible
Test: have some apps on desktop, open desktop, open overview, observe
actions are not visible
Test: open two apps in split screen, go to overview, observe no actions
visible
Change-Id: I7de28ea7af93b58379bb539c5a1b1bcbf6d13b83
- Use getSourceVisualDragBounds() if the target view is BubbleTextView;
this accounts for padding as well as extra ring inset for
PredictedAppIcon
- Also ensure we always use the final drag view scale when switching to
the system drag and drop, instead of using the current scale which
might be in the process of animating
Test: drag regular and predicted icons in taskbar, but drop it in a
region that doesn't accept it (e.g. the taskbar itself), check that the
return animation scales and offsets more correctly than before
Bug: 269814838
Change-Id: Ie8398b2617340e1d2568773563aa0263a3366940
- Don't stash until drag ends, but immediately stash at that point
(regardless of success or failure, though failure will animate to the
original icon before stashing)
- Send transient taskbar's bounds to WM Shell via intent extra such that
they ignore drag events in that region
Test: manual in persistent and transient taskbar
Bug: 269814838
Fixes: 268526633
Fixes: 259645384
Change-Id: I5ded3998046f259ed6e79cb4ed765ad7b0c72e45
Enables clipToPadding property for the
workspace view so it clips the views coming
from the outside of the workspace.
Bug: 267670594
Test: manual test by folding and unfolding with
several pages on a foldable device
Change-Id: Ibcb6ecd1ce784a66fdee35969b7f460bbb32f638
- BackgroundAppState extends OverviewState, so in some cases we will
transition to background app, which inadvertently triggers global
drag and drop from being enabled
Bug: 269819279
Test: Enter split, cycle the screen and try to drag an app from the
transient bar
Change-Id: I0e8c5e8bbaa0220fc870d2db866152864253010f
* Moving things out of RecentsView to avoid
dependency on a non-testable class
* Also helping prevent bloating RecentsView.java
Bug: 266482558
Test: Single Chrome instance in recents. Initiate split
with Chrome from workspace, tap on Chrome again in Taskbar,
ensure no crash.
Change-Id: I99ec704479ffaa860f4d80c2cb9f54182f31f41a
Show an empty view when there are no tasks on the desktop.
Bug: 267326725
Test: have a fullscreen task, open overview, observe empty view for
desktop tile
Test: have a desktop task, open overview, observe desktop task thumbnail
is shown in overview and empty view is hidden
Change-Id: Ifb6d96d42bf602e9cc9e397efc0e07e2accdf16b
- Added support for escape(backtick on some keyboards) keyboard keys
- Added support for d-pad left and right keyboard keys
- Fixed janky behaviour when quick switching too quickly.
- Removed unused code
Bug: 269618928
Test: Tried quick switch very quickly, tried escape, d-pad left and right keys in RTL and LTR modes
Change-Id: Ie03207cb349891e9c2de18502f3f65b7c8f9c018
Bug: 231648761
Fixes: 269392826
Test: Unable to reproduce 269392826, but verified this doesn't
break existing paths to adjust the insets
Change-Id: I8aa82f3fb77e627ac02352ef31b788b81c2ca901
- We need to reset icon alignment whenever icon layout bound
changes. This fixes the issue where we build an icon
alignment animator before any of the views are laid out.
- Separated animation logic between.
createTransientAnimToIsStashed and createAnimToIsStashed
* The values still require a bit more tuning but this gets us
a lot closer to spec for many of the motion polish.
Bug: 267806083
Bug: 246634367
Bug: 246635237
Test: manual
Change-Id: Id122134b22ef4e418ce632e4a8137239dc8bb313
These can be used instead of the base types by views that want to use
container launch animations, to avoid duplicated boilerplate due to
implementing LaunchableView.
Bug: 250588519
Test: manual
Change-Id: I355b1a8de933c61313372fc7e00791cd0faef629