This patch fixes a bug where split screen did not fully support launching intents with different users.
The bug arose because SplitSelectStateController only had one place to store user information about the staged intent, mUser, but this disregarded the fact that the secondary app could also be passed in as an intent, and could belong to a different user from that of the initial app and the existing context. We need to support this case now since we now allow second-app selection from Taskbar.
Fixed by splitting the field into mInitialUser and mSecondUser, which will be tightly bound with mInitialTaskIntent and mSecondTaskIntent to make sure that Intents are always launched with the correct UserHandle.
Fixes: 275410160
Test: Manual
Change-Id: Ic904672769be8fd116180d457b36eb567c5ee304
Merged-In: Ic904672769be8fd116180d457b36eb567c5ee304
Merged-In: I1ec49c75d562e4309a41d98010f0eff113c81e9d
TaskView clipping is not necessary anymore because task in Overview will always be the same aspect ratio as the app when in fullscreen.
Fix: 268211636
Test: manual trigger of Overview (landscape, portrait, split screen)
Change-Id: Ib4faeda6f0cccef3b23fcbacb89c6d2832c0df59
Merged-In: Ib4faeda6f0cccef3b23fcbacb89c6d2832c0df59
* Created SplitAnimationController to prevent more
RecentsView bloat
* Extract SplitSelectSource attributes into separate class
* http://recall/-/cMb5xTTxhmZtFt04eYnmQj/eACJq1un8Ef91LgmQblpAw
Bug: 267370106
Change-Id: I5d430c091ac84bbbc30319e7b78711b610a21252
Based on UX specs, desktop tile should be using the large size and be
pinned ot the right in overview.
Updates to ensure the desktop tile is using the focused tile size when
grid only overview is enabled.
Test: enable grid only overview, have some fullscreen tasks in overview
and some desktop tasks, open overview from home, observe desktop tile
peeks from right
Test: same setup as before, open a fullscreen app, open overview,
observe desktop tile peeks in from right
Test: same setup as before, go to desktop, open overview, observe
desktop tile is focused
Test: turn off grid only overview, repeat the same test case
Bug: 271131878
Change-Id: Ic804428dca415f08a26c47e1d6b9b3a94fcfbfdf
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
Enable highlight around focused overview item when desktop windowing
prototypes are enabled.
This highlight was built for and enabled with keyboard quickswitch feature.
We don't support quickswitch on desktop yet.
Disable the quickswitch, but keep the border highlight.
Bug: 269342116
Test: enable desktop windowing proto, use an external keyboard and
alt+tab to switch between apps, observe highlight in overview, no
quickswitch popup
Test: enable desktop windowing proto, enable
ENABLE_KEYBOARD_QUICK_SWITCH, observe that alt+tab still opens
overview
Test: disable desktop windowing proto, enable
ENABLE_KEYBOARD_QUICK_SWITCH, observe alt+tab opens the quickswitch
popup, and highlights in overview
Change-Id: I15b36f082610f4ce38143856c84fef723f1b8ba0
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
Copied over icon from caption desktop button in WMShell. Temporary icon
for now.
Refactored some logic in TaskView to better support for custom
orientation handling in subclasses. Subclasses can override setting
orientation for icon or thumbnail.
Bug: 267326722
Test: manual, enable desktop windowing proto 2 and go to overview
Change-Id: Id66d48fa52a418a07b954a384b2c3ea22f091b1f
This is usually a result of TaskIconCache updating in the background.
Fix: 267744363
Test: manual.
Change-Id: I83620f3774def7ffb07906a6d45b64e9aad6de71
When desktop windowing prototype is enabled, pin desktop tile to the
right of the focused tile.
Also making desktop tile persistent so it will always show up,
regardless whether there are tasks added to the desktop or not.
Fixing some nullpointer issues that stem from that.
Bug: 261234155
Test: no recent tasks, go to overview, shows empty view
Test: only desktop tasks, go to overview from home, desktop tile focused
Test: only desktop tasks, desktop open, go to overview, desktop tile
focused
Test: 1 fullscreen task and some desktop tasks, go to overview from home
screen, fullscreen tile focused
Test: fullscreen task open and no desktop tasks, go to overview,
fullscreen task focused and empty desktop tile on the right
Test: fullscreen task open and some desktop tasks in background, go to
overview, fullscreen tile focused, desktop tile on the right
Test: some desktop tasks focused, some fullscreen tasks in background,
go to overview, desktop tile focused, fullscreen tasks on the left
Change-Id: Ib28185b40f639d36b82b6d0e3c61026ec84e245c
This change is a minor cleanup to make a function more streamlined.
Bug: 265244769
Test: Manual, confirmed no regression
Change-Id: I557246a7633b10701adf75aaba6930f25e1c30aa
This patch makes it so that the correct task will be chosen when selecting a second splitscreen app via Taskbar.
Prior to this patch, the Taskbar app selection function -- which attempts to match the tapped icon to a running TaskView -- assumed that the TaskView in question was always a solo (non-grouped) Task. This resulted in the wrong app being selected for split when the desired Task happened to be the secondary app in a pair.
Fixed by checking to see if the desired app is primary or secondary, and returning the correct Task, IconView, and ThumbnailView for the split operation.
Fixes: 265244769
Test: Manual
Change-Id: Ie1122d1b49151d70dec9711fe558fba7752b7d8e
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
when the method is called outside of taskbar.
This prevents the case where phone runs transient taskbar logic.
Bug: 260006210
Test: added local logs, tested in phone mode
Change-Id: I600c06d6c797bd68461ac033dcc2c6158f221024
> Removing some unused methods
> Moving some specialized methods to corresponding classes
> Removing GridProvider check as it is released
Bug: 257555083
Test: Presubmit
Change-Id: Ib0f8c673d018071d3f4b7d9247e0a35718ab009c
Merged-In: Ib0f8c673d018071d3f4b7d9247e0a35718ab009c
Returning a runnable list that doesn't get run later causes the overview command to be added to the pending command queue, but never gets removed. This causes following overview (and home on tablets) commands not to respond.
Test: forcefully caused the error condition programmatically; checked the queue is cleared and the user is sent home.
Fixes: 255851262
Change-Id: I9d2f54960c54963b1e7480a597d05911201c152b
This patch makes it so that (when we enable Taskbar in Overview) users will be able to select their second app for splitscreen by tapping the Taskbar icon, or the icon in AllApps.
This was done by performing a check to SplitSelectStateController when a taskbar icon is hit. If we are currently in split select mode, Taskbar/AllApps icons will no longer launch their respective fullscreen apps, but instead confirm the split attempt. The confirmed app will either be an already-running instance of the app, or a fresh instance of the app (if none is currently running). The split confirmation function is located in TaskbarUIController, where it is accessible to both LauncherTaskbarUIController (for 1P Launcher) and FallbackTaskbarUIController (for 3P launchers).
Also cleans up ~2 lines of unused code from the old splitscreen instructions toast.
Outstanding issues:
- When selecting a second app from within AllApps, the AllApps shade does not animate away in a satisfying way
- When selecting a second app and launching a fresh instance of that app, the animation appears to come from the wrong location
- Intent + Intent splitting does not currently work
- If the selected app is already running with multiple instances, it picks the oldest instance. Ideally, the newest instance is preferred.
Bug: 251747761
Test: Manual testing with Taskbar in Overview flag enabled
Change-Id: I302dc092740bb880f9134ba8e2e587c4f2c29d01
This change is only for the visual appearance of the
transient taskbar.
Bug: 252905206
Test: manual
Change-Id: I4990b20b39089a0c27ec2a72dd3010cf64ddba1d
This patch makes it so that the DWB banner transitions out neatly when a user in Overview drags a tile downward to launch the app. Previously, the banner would stick around throughout the transition, creating visual clutter and drawing attention to the corners of the app.
Fixed by creating an exit transition in setFullscreenProgress(), similar to other UI elements like Overview action chips.
There is another outstanding issue where sometimes the transition can get clipped and jump to the final frame. The cause is still unknown, but issue is tracked at b/250976138 for a future fix.
Fixes: 249825524
Test: Manual
Change-Id: Iea47a9bc643537f0b716ce11b104803d9ca25fd2
Create a desktop recents tile that shows a snapshot of the freeform
tasks running on desktop.
Scales them down and positions them in the same location as they would
be on the desktop.
Bug: 244348395
Test: manual
Change-Id: Ieb5830a331691844769003189f557c4b7e4cd35c
Moves Launcher's PreviewPositionHelper to shared
library between SystemUI and Launcher to reuse
it in the future in the partial screensharing
recents selector.
There should be no functional changes in the
code itself.
Bug: 240924926
Test: presubmit
Change-Id: Ib38b6f9db91e63a2598bf81229e3cd3e1a49ca60
This change updates the animation for initiating a split from the Overview screen on phones. Includes new timings and interpolators, and extends timing data classes related to SplitAnimationTimings.
Fixes a noticeable issue where the split animation appeared slow on phones.
Outstanding issues (fixes in progress):
- Repeated invocations of split on phones cause an erroneous animation to play. (b/249154347)
- Thumbnail corners do not match placeholder corners; the transition between the two is slightly janky. (b/236761794)
- Placeholder icons should be 72dp. (b/236761794)
Bug: 236761794
Test: Manual
Change-Id: Ibb97ef54498b0aa9556df531d8084799259c06e2
Create a placeholder tile in recents for desktop.
It is based on launcher task information. With extra flag indicating it
is for desktop.
When it is clicked, it will call sysui to show apps on desktop.
Test: manually verify that desktop tasks do not show up separately in
recents
Bug: 244348395
Change-Id: I8535a54e1545841cd988d4770e6fc5e857277cda
Fixes: 247843657
Test: Tapping on animating taskView as soon as
split top is selected from app menu doesn't result
in starting split prematurely.
Change-Id: I94455d9bab381e5223f70cab981830d51a8fad6b
This CL fixes an issue where initiating split select on a task with a DWB banner would result in the DWB banner sticking around long after the thumbnail itself fades, interfering visually with the rest of the animation.
Fixed by hiding all child views of the taskview when splitting, instead of just the thumbnail.
Fixes: 247257724
Test: Manual
Change-Id: I4dbeccf8dd28431749df5e78482e80aacf5df55a
This change updates the Overview > OverviewSplitSelect animation to the latest spec. This is a re-upload of a previous change, ag/19464657, but no longer will cause the b/241165022 issue.
Includes:
- New timings
- Task thumbnails slide in with an "overshoot" animation
- Icons fade out and fade in appropriately
- SplitInstructionsView has a new compound "unfold" animation
Bug: 236760307
Test: Manual on tablet. Made sure the b/241165022 issue is fixed.
Change-Id: Ia22f6b6d7b9474b782e693fae2320a34a2985b18
* If current TaskView is running live tiles, animate directly
when toggling recents button instead of trying to
launch the task
Fixes: 240231324
Test: Launching a single GroupedTaskView from overview
launches as expected in 3 button.
Tested adjacent launches as well.
Change-Id: I6c060d918d3ae08bee9da1ad9507bb25cf445b96