Commit Graph
311 Commits
Author SHA1 Message Date
Jeremy Sim 0b4b89bdcf Fix bug with selecting a secondary task as second splitscreen app via Taskbar
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
2023-02-01 15:40:06 +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
Jon Miranda 807823155d Check for isTaskbarPresent in addition to isTransientTaskbar
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
2022-11-23 12:05:43 -08:00
TreeHugger Robot 3ea398ecb7 Merge "Cleaning Utilities.java" into tm-qpr-dev 2022-11-17 02:39:38 +00:00
Sunny Goyal 47d4d81b4f Cleaning Utilities.java
> 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
2022-11-17 01:06:16 +00:00
Schneider Victor-tulias 62b9f80d1e Merge "Return to home when overview command fails." into tm-qpr-dev 2022-11-14 20:44:52 +00:00
Schneider Victor-tulias 0844f2e8ef Return to home when overview command fails.
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
2022-11-10 11:56:09 -08:00
Jeremy Sim 93fc0f3a7c Allow user to select second split app from Taskbar
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
2022-11-08 14:38:05 -08:00
Jeremy Sim 4972822c60 Merge "Add transitions to DWB banner when app thumbnail progresses from Overview tile to fullscreen" into tm-qpr-dev 2022-10-27 23:38:31 +00:00
Jon Miranda 661f38cdb8 Merge "Add transient taskbar UI" into tm-qpr-dev 2022-10-26 14:56:15 +00:00
Jon Miranda 184a04266d Add transient taskbar UI
This change is only for the visual appearance of the
transient taskbar.

Bug: 252905206
Test: manual
Change-Id: I4990b20b39089a0c27ec2a72dd3010cf64ddba1d
2022-10-25 13:46:19 -07:00
Jeremy Sim 0525e3a462 Add transitions to DWB banner when app thumbnail progresses from Overview tile to fullscreen
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
2022-10-24 10:47:29 -07:00
Sunny Goyal 8a11443333 Removing unnecessary RemoteAnimationTargetCompat
Merged-In: I12a4c29eaf9bd7d97d3c02074b4cc1ca452fc88a
Bug: 221961069
Test: Presubmit
Change-Id: I12a4c29eaf9bd7d97d3c02074b4cc1ca452fc88a
2022-10-24 17:17:36 +00:00
TreeHugger Robot 24dd3f57b2 Merge "Desktop tile that is a snapshot of desktop" into tm-qpr-dev 2022-10-12 21:10:16 +00:00
Pat Manning a283b551d2 Merge "Use wm shell splash screen animation to reveal app after tasks have appeared." into tm-qpr-dev 2022-10-12 11:34:41 +00:00
Ats Jenk 3c59d9b345 Desktop tile that is a snapshot of desktop
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
2022-10-10 15:50:31 -07:00
Nick Chameyev cbfb35edc7 Extract PreviewPositionHelper to shared library
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
2022-10-05 10:23:54 +01:00
Pat Manning e7fc4b1f63 Use wm shell splash screen animation to reveal app after tasks have appeared.
Bug: 202826469
Test: manual
Change-Id: I6a9e8a932849c30f7b572119a7f607178b5a6437
2022-10-04 19:08:54 +01:00
Tracy Zhou c0095e81ae Remove ENABLE_QUICKSTEP_LIVE_TILE flag
Fixes: 249627137
Test: manual - (1) swipe up from app (2) swipe home (3) quick switch (4) split in overview
Change-Id: Ibe56ba3824b379b20fb3f0aa09be4d6bdb5abaa1
2022-09-29 04:58:52 +00:00
Vinit Nayak 888f745490 Merge "Update animations for phones: Overview > OverviewSplitSelect transition" into tm-qpr-dev 2022-09-28 18:30:16 +00:00
Jeremy Sim ba7324e2b8 Update animations for phones: Overview > OverviewSplitSelect transition
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
2022-09-27 11:45:02 -04:00
Ats Jenk 919ddf19f3 Set up a place holder tile for desktop
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
2022-09-23 16:28:48 -07:00
Vinit Nayak 061e6f5dd5 Merge "Prevent taps on initial TaskView animated into split select" into tm-qpr-dev 2022-09-22 21:56:55 +00:00
Vinit Nayak 5144be3903 Prevent taps on initial TaskView animated into split select
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
2022-09-21 16:57:53 -07:00
Jeremy Sim 2fbddc4949 Fix small bug with DWB banners not animating out promptly
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
2022-09-19 21:58:38 -07:00
TreeHugger Robot e58e123bd7 Merge "Add metrics sources for split invocation" into tm-qpr-dev 2022-09-15 09:35:12 +00:00
Jeremy Sim 21a5b12b6f Update animations for TM-QPR: Overview > OverviewSplitSelect transition
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
2022-09-14 18:06:05 -07:00
Vinit Nayak 7fb4f997c4 Add metrics sources for split invocation
* See design doc in bug description for
usage/details

Bug: 231369744
Change-Id: I0c0ec11e924e387c523b5ac5feb7cabf78eaa748
2022-09-14 11:58:03 -07:00
Winson Chung 3f649ef892 Update Launcher for removed shared wrappers
- Launcher can reference system code directly now

Bug: 219861883
Test: Builds/Presubmit
Change-Id: I3f656b6c7fce93243ccb7591e52441e99137dec6
Merged-In: I3f656b6c7fce93243ccb7591e52441e99137dec6
2022-09-14 17:14:32 +00:00
Vinit Nayak 42fd4441a3 Run animation for liveTile before trying to launch it
* 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
2022-09-07 15:33:35 -07:00
Jeremy Sim b33471a21f Fix bug with Launcher animation canceling, esp. around OverviewSplitSelect
This commit fixes a bug where the user could cancel animations when transitioning between Launcher states, potentially resulting in a state where Overview elements (task thumbnails etc.) were wrongly hidden or invisible.

The bug occurred because functions such as createInitialSplitSelectAnimation() and createAtomicAnimation() did not carry out any cleanup upon animation failure. This resulted in RecentsView potentially being in a polluted state for the next launch.

Bug was fixed by adding cleanup routines to two onAnimationEnd listeners.

Fixes: 242715097
Test: Manual
Change-Id: I05415ecf515e247aa535e3ca8371e540c3189b01
2022-09-01 20:51:53 -07:00
Pat Manning 038e112e9d Update grouped task view thumbnail splash interpolation to match regular task.
Follow-up to ag/19730966

Fix: 244433374
Test: follow up after b/238405972
Change-Id: I5c3c05dd51234b568e8f99c075e0f3384bca4741
2022-08-31 18:10:11 +01:00
Pat Manning 81dc9ad131 Refactor overview progress as splash progress.
This also avoids showing splash in split select state

Fix: 242284413
Test: follow up after b/238405972
Change-Id: I2e83fa3d030e8a74edb4152c472dbf02ac5a80b1
2022-08-30 11:23:08 +01:00
Jeremy Sim 2fe7dd7306 Revert "Update animations for TM-QPR: Overview > OverviewSplitSelect transition"
This reverts commit a50bb39048.

Reason for revert: Causes a P1 bug (b/241165022).

Fixes: 241165022
Bug: 236760307
Change-Id: Icc080d9a37e26d70d0f4cf846a4fd39df3b71625
2022-08-18 21:28:54 +00:00
Jeremy Sim a50bb39048 Update animations for TM-QPR: Overview > OverviewSplitSelect transition
The animation from Overview to OverviewSplitSelect is now updated to the latest spec. See bug for details.
- New timings
- Task thumbnails slide in with a new spring animation
- Icons fade out and fade in appropriately
- SplitInstructionsView has a new compound "unfold" animation

Bug: 236760307
Test: Manual on tablet and phone. Looks good on both true and fake orientations.
Change-Id: If98d4464aa51c876d79bee9672279992a2cf9026
2022-08-14 10:34:51 -07:00
Jeremy Sim fe5bccbf6f Merge "Update calculation method for Overview UI placement on tablets" into tm-qpr-dev 2022-07-29 18:56:40 +00:00
Jeremy Sim 1cfe6d490a Update calculation method for Overview UI placement on tablets
This update slightly changes the calculation method for Overview UI placement, in order to line up better with spec. (The previous calculation caused a small 30dp divergence on tablets.)

Bug: 236760307
Test: Manual by measuring pixels and comparing to spec
Change-Id: I94e9e7b5a6a24c37693425ac8ec71cd066003658
2022-07-28 14:05:24 -07:00
vadimt f6ef879cf4 Moving all sources that are shared between Launcher and TAPL in one directory
This will help SysUI test team (who uses TAPL) to set up Gradle build for their tests.

Bug: 202567877, 234414088
Test: presubmit
Change-Id: I3d923ea4b54d1a4c3d2b345be09692727d30433e
2022-07-27 20:18:46 +00:00
Alex Chau 66bac181ac Merge "Revert "Move BaseActivityInterface task size methods to DevicePr..."" into tm-qpr-dev 2022-07-26 09:36:18 +00:00
Alex Chau 62572c04e2 Revert "Move BaseActivityInterface task size methods to DevicePr..."
Revert "Move BaseActivityInterface task size methods to DevicePr..."

Revert submission 19279487-baseactivityinterface

Reason for revert: As per discussion in ag/19341332, make sure DeviceProfile can properly react to inset changes before moving task size calculations there
Reverted Changes:
I30324d34c:Move BaseActivityInterface task size methods to De...
Ia9c1d0387:Move BaseActivityInterface task size methods to De...

Bug: 238593212
Change-Id: I0d40fdd4a5d4468494e30cef32a284479ddd2feb
2022-07-25 18:38:03 +00:00
Jeremy Sim 3430f7ade1 Merge "Remove unused TaskOutlineProvider from TaskView class" into tm-qpr-dev 2022-07-22 18:20:44 +00:00
Jeremy Sim 90d29d2837 Remove unused TaskOutlineProvider from TaskView class
This change removes the custom TaskOutlineProvider class defined in TaskView. It appears to be serving no purpose currently, and is causing an issue with shadows on split tiles.

Fixes: 208650434
Test: Deployed change on local device. Observed no more shadows on split tiles, and all corners and outlines still seem to be functioning correctly.
Change-Id: I7e56401ccabcd19e598726cca5cf721a22c0d982
2022-07-19 16:20:41 -07:00
Pat Manning 4e73e5e352 Move BaseActivityInterface task size methods to DeviceProfile.
Fix: 238593212
Test: DeviceProfilePhoneTest.kt
Test: DeviceProfileVerticalBarTest.kt
Test: DeviceProfilePhone3ButtonTest.kt
Test: DeviceProfileVerticalBar3ButtonTest.kt
Test: DeviceProfileTabletLandscapeTest.kt
Test: DeviceProfileTabletPortraitTest.kt
Test: DeviceProfileTabletLandscape3ButtonTest.kt
Test: DeviceProfileTabletPortrait3ButtonTest.kt
Test: DeviceProfileTwoPanelLandscapeTest.kt
Test: DeviceProfileTwoPanelPortraitTest.kt
Test: DeviceProfileTwoPanelLandscape3ButtonTest.kt
Test: DeviceProfileTwoPanelPortrait3ButtonTest.kt
Change-Id: I30324d34ca119a467f530b590949743c2ba7b91a
2022-07-18 16:35:02 +01:00
Pat Manning de5be15650 Merge "Show splash screen in quickswitch if thumbnail wrong aspect/orientation." into tm-qpr-dev 2022-07-13 13:56:34 +00:00
Pat Manning 0041ae3543 Show splash screen in quickswitch if thumbnail wrong aspect/orientation.
Test: manual
Bug: 202826469
Change-Id: I8337876ba26bf82d4f65697a86e6727be713ad53
2022-07-12 18:21:06 +01:00
Pat Manning 9f61347bc6 Clip taskbar size from bottom of thumbnail in overview.
Remove other TaskView clipping logic as it is always false for other sides.

Fix: 234007059
Test: TaskThumbnailViewTest
Change-Id: I56210605fb8c2f433236a82932aaa2800afe392b
2022-07-12 13:27:25 +01:00
Alex Chau b00a9fca79 Use taskbarSize to calculate clippedInsets
- Instead of calculating clippedInsets from thumbnail dimension, always use taskbarSize
- Clean up clippedInsets code as only bottom inset is ever present

Fix: 235328056
Test: With taskbar hidden, out of orientation thumbnail has proper size in quickswitch and overview
Change-Id: I3d7fc7899f04862c3401935b10f475e9ab74685a
2022-07-04 18:49:11 +01:00
Jeremy Sim c94f4b779b Allows Launcher to recover gracefully into OverviewSplitSelect state
When Launcher restarts (as the result of a UiModeChange or something else), it attempts to recover its previous state. However, the OverviewSplitSelect state is unique because it requires some additional information to recover properly (the taskId of the staged task and so on). This change makes it so that the relevant information is passed forward in the recovery bundle. Launcher will now restart in the base Overview state, and then immediately apply the saved data to recover the OverviewSplitSelect state.

Fixes: 233019928
Test: Manual
Change-Id: Ie6123ef9c374be000268f82857b696c49213c541
Merged-In: Ie6123ef9c374be000268f82857b696c49213c541
2022-07-01 00:07:54 +00:00
Vinit Nayak 690645b62e Remove old split screen overview related code
Bug: 233006032
Change-Id: I294dcde586da135af3bb33400e65d5f47edca3d8
2022-06-03 16:39:49 +00:00