Commit Graph

152 Commits

Author SHA1 Message Date
Shan Huang
581429b3dc Launcher side implementation of gesture seekable back to home animation.
This is a two part animation. The first part is an animation that tracks gesture location to scale and move the leaving app window. Once the gesture is committed, the second part takes over the app window and plays the rest of app close transitions in one go.

This animation is used only for apps that enable back dispatching via {@link android.view.OnBackInvokedDispatcher}. The controller registers an {@link IOnBackInvokedCallback} with WM Shell and receives back dispatches when a back navigation to launcher starts.

Apps using the legacy back dispatching will keep triggering the WALLPAPER_OPEN remote transition registered in {@link QuickstepTransitionManager}.

Bug: b/195946584
Test: m -j
Test: Swipe back to home on pre-T and T apps, at different life cycle
stages.

Change-Id: I615c5171cd875130f10346fa3ca2a8e9670176cf
2022-03-11 00:11:21 +00:00
Jon Miranda
e8b174482d Merge "Add debug logs for bad launcher state." into tm-dev 2022-03-10 22:03:37 +00:00
Jon Miranda
7ebe209c21 Add debug logs for bad launcher state.
Bug:223498680
Bug:221658803

Test: manual
Change-Id: I138a7ab031269009fa8ca492cd0bd48085aa4e68
2022-03-10 20:25:38 +00:00
Jon Miranda
7db484396a Merge "Never look for matching view in All Apps when swiping up to go home." into tm-dev 2022-03-10 18:46:51 +00:00
TreeHugger Robot
441a7d76ef Merge "Play fallback animation if there are multiple closing targets." into tm-dev 2022-03-09 20:44:18 +00:00
Jon Miranda
b42e124f5b Never look for matching view in All Apps when swiping up to go home.
The swiping up gesture will never return an app in All Apps,
so we can ignore All Apps state in those cases.

This fixes an edge case where user swipes up and launcher state
is still in All Apps. This causes us to animate the icon to
where it would be in All Apps, even though by the time the
animation starts we are actually in Normal state.

Bug: 222124240
Test: open app from  all apps then quickly swipe up to go home
Change-Id: I756a870660a397d6629aec82e4f5ec4914ed0669
2022-03-08 16:37:35 -08:00
Jon Miranda
b2a5f266ad Play fallback animation if there are multiple closing targets.
Bug: 200247089
Test: close app w/ gesture nav, 3 button nav
      close split screen apps

Change-Id: I748f038eaf1542014f3acbb8fa31488936835dfe
2022-03-08 14:45:16 -08:00
Schneider Victor-tulias
789a6a95cc Add method to pause expensive view updates during the app launch aimation
Fixes: 220922269
Test: Manual
Change-Id: I39066f575c0ddfc4868ab9e27149e2bd9492b39c
2022-03-04 13:59:33 -08:00
Sunny Goyal
6bc4257d86 Separating refresh rate tracking to a separate class
Bug: 221961069
Test: Presubmit
Change-Id: I04091ebc9f3d88d2dbbde1bf0d5390c815e026d1
2022-02-28 17:13:00 -08:00
tomnatan
9f12373bdd [11/n] Letterbox Education: set LAUNCHER_TASKBAR_EDUCATION_SHOWING.
The setting is set to 1 if the taskbar education should be shown as soon as the animation for opening an app starts and is set back to 0 when the taskbar education window is detached from the window.

Bug: 214590804
Test: N/A
Change-Id: Id26e3051a6e0ef1f9c2dcbeef98710efbb4df54f
2022-02-11 10:28:51 +00:00
Jon Miranda
b030f83f52 Fix bug where back swipe to icon in All Apps search result.
Issue is that All Apps is scaling during the animation, so when
FloatingIconView looks for it in the view hierarchy,
it's not in its final position.

This would be the cleanest approach for a scv2 fix

Bug: 213306709
Test: manual
Change-Id: Iaec77d15c9533edccd9c82164143af8fa522158f
2022-01-20 13:48:40 -08:00
Tony Huang
fc6fc6d651 Merge "Animate split divider" into sc-v2-dev 2021-12-22 02:47:05 +00:00
Jon Miranda
32ec4d52e1 Scale, crop, and translate window when swiping back to home.
This makes the animation consistent with what happens
when swiping up to home.

Bug: 208292857
Test: open app, swipe back to close, test on portrait and landscape
Change-Id: I096b20fe3d3398001e442d41981350e7b0321a46
2021-12-15 01:34:12 +00:00
Vinit Nayak
0d40e19c4a Animate split divider
* TODO currently it doesn't animate when
dragging a split task back down because we need
to sync that with the other task scaling
animation playback controllers.
* It also doesn't animate in when opening a
split pair from overview because I think shell
is setting it to be visible before the divider
leash even makes it to launcher

Bug: 202914644

Change-Id: I6c60cffdb63aa262d0b547f85acc604c0c8a3637
2021-12-07 11:20:30 -08:00
Jon Miranda
c4a99bff04 Play return to icon animation if user swipes back to All Apps.
Bug: 205187702
Test: open app in all apps, swipe back to go back to all apps
Change-Id: I9e79c8365fdf667321343aaac2f8d77cb60a316a
2021-11-23 11:27:42 -08:00
Jon Miranda
4e5664ac28 Play fallback animation when overlay is shown.
Bug: 205086529
Test: go to -1, click to open app, swipe back
Change-Id: I905511e0ac7576d2134a10088289a5ca37d1b257
2021-11-05 16:16:12 -07:00
Vinit Nayak
d0eea50a0c Show divider when GroupedTaskView expanded from recents
* Also increased animation duration to allow
apps to get ready

Fixes: 202928293
Change-Id: I8814ec2415e7985e4f433695f6cc55f83f0c0ac2
2021-11-05 11:15:01 -07:00
Evan Rosky
a3defa4d39 Merge "Provide app-process tokens to remote transitions so they can be boosted" into sc-v2-dev 2021-11-03 20:59:08 +00:00
Jonathan Miranda
9b85616119 Merge "Remove PROTOTYPE_APP_CLOSE feature flag and associated code." into sc-v2-dev 2021-11-01 18:35:44 +00:00
Jon Miranda
029a644a6e Remove PROTOTYPE_APP_CLOSE feature flag and associated code.
Flag was never enabled, safe to remove.

Bug: 200999899
Test: manual
Change-Id: Ie2646d8c4b9a1c40fac1bfd7dadf4ec714171aec
2021-10-29 16:07:29 -07:00
Tony Wickham
615cf6c431 Fix launching window bounds for immersive apps
Test: Open an immersive app (e.g. fullscreen YT video), ensure it fills
the screen; open a non-immersive app (e.g. Calculator), ensure it only
fills up to the top of the taskbar.
Fixes: 200036592

Change-Id: Id815bbc8140cbaf1e61ac587ae1f1325e7ec5b72
2021-10-13 21:17:16 +00:00
Tony Wickham
1ad55e6ab5 Merge "Use falllback animation when going back to no icon" into sc-v2-dev 2021-09-28 21:19:38 +00:00
Tony Wickham
b43374e9f9 Use falllback animation when going back to no icon
Test: Open settings from the shade (not on home screen) and go back, ensure animates reasonably
Bug: 197656915
Change-Id: I78baa3ad03655f66b9e9727e62247ec8a15f3bf9
2021-09-28 09:19:47 -07:00
Jon Miranda
3940470bed Avoids animating the background when launching app targets are translucent.
Bug: 200052247
Test: Pause an app, click on paused app and ensure background does not animate
Change-Id: Ib0a7cac0ab866441dd8fb27831a8333d0c931723
2021-09-24 16:00:25 -07:00
Jon Miranda
13519e4402 Significantly reduce gesture feedback when swiping up to home screen.
- Uses overscroll damping logic to reduce the velocity
- The start to target rect interpolation can be from the
  start, center, or bottom of the rect depending on where the item
  is on the workspace. This reduces the  amount of distance needed to
  travel between, which helps further reduce gesture feedback.

Bug: 173107751
Test: test closing app that is on:
      -  top row of home screen
      -  middle of home screen
      - in hotseat

Change-Id: I055dd61ca3491807109ff2f6c501bf710c8d340f
2021-09-23 20:13:40 +00:00
Jon Miranda
8d3d2757e2 Play window close animation to home for most app to launcher scenarios
- Animates into icon/widget location on workspace (when applicable)
- Excludes unlock animation
- Excludes when user goes back to to All Apps state

Bug: 197656197
Bug: 197450256
Bug: 197656915
Test: go in app, swipe back to land on home
Change-Id: Icdf680bd88599f1b6288822a177087283668431c
2021-09-21 20:19:23 -07:00
Evan Rosky
80ca459e7d Provide app-process tokens to remote transitions so they can be boosted
The app process token is required for shell to request delegated
transition animators to be boosted.

Bug: 183993977
Test: add logging in WPC.setRunningRemoteAnimation and verify calls
      during transitions
Change-Id: Ide2dd3e77714cca8e85e409c8d88c69c20122827
2021-09-03 13:38:00 -07:00
Shawn Lin
fe2aed97c5 Merge "[DO NOT MERGE] Update QuickStepContract.getWindowCornerRadius API" into sc-v2-dev 2021-09-03 03:57:09 +00:00
Evan Rosky
c12b7355b1 Fix NPE that happens occasionally on start-up
Was not checking if topActivity was null.

Bug: 189935087
Test: boot phone thousands of times.
Change-Id: I3c779be5f09d82d52a3df9478c801a1963e0a5c2
2021-08-31 15:10:47 -07:00
shawnlin
4e15fe0726 [DO NOT MERGE] Update QuickStepContract.getWindowCornerRadius API
Update from getWindowCornerRadius(Resources) to
getWindowCornerRadius(Context)

Bug: 131221697
Test: make
Change-Id: Ia5f10e9292e205dab7e69d97dfc82d17690816fb
2021-08-19 15:52:10 +08:00
TreeHugger Robot
fe5ce7334a Merge "New app animation specs." into sc-qpr1-dev am: 686d42a1d4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15587964

Change-Id: If21b096b1d5ac025ffb4116c805d31acba6cc662
2021-08-19 00:57:46 +00:00
Jon Miranda
bda98de9f8 New app animation specs.
- New values and interpolators.

Bug: 173107751
Test: open apps from different parts of the home screen
Change-Id: I81bec0221aec9c04dac0bb3e926c879999699e57
2021-08-18 18:26:46 +00:00
Andy Wickham
13f3ffed95 Adds initial Taskbar Edu implementation.
Currently it just pops up with one placeholder image for splitscreen.
The Next button doesn't do anything.

Screenshots:
Light: https://screenshot.googleplex.com/B27CwBcwobHTghN.png
Dark: https://screenshot.googleplex.com/48EuJZv8evd5RGW.png

Known issues:
 - Back gesture is picked up behind by the app behind the taskbar.
 - When the flag is enabled, the Edu shows up each time you open
   an app, rather than only the first time.

Bug: 180605356
Test: Manual
Change-Id: Ifba9aa59abf1501b5f8ddebb3fcc13df85f6efaa
2021-08-17 09:57:47 -07:00
Tony Wickham
635e180e56 Extend taskbar color to entire screen in overview
Only when taskbar is unstashed in apps:
- Scrim workspace with the taskbar color when opening apps and in BackgroundAppState
- Crop opening apps to above the taskbar
- Crop TaskViews to above the taskbar during gestures

If taskbar is stashed in apps, behavior is the same as before, i.e. no scrim over the wallpaper and no cropping of tasks.

Added a field DeviceProfile#taskbkarPresentInApps to distinguish these cases. LauncherTaskbarUIController and TaskbarStashController ensure this value is set appropriately.

Test: Ensure tasks don't appear behind taskbar when it's unstashed; set ENABLE_SCRIM_FOR_APP_LAUNCH = true to test the whole screen scrimming when opening an app

Bug: 196257194
Fixes: 190681228
Change-Id: I481501457a5a6d49c380feea3db3b4058e4cf3f8
2021-08-16 16:50:52 -07:00
Evan Rosky
8fb6c2156b Part of fixing Splashcreen cts tests
This passes the launcher component name into the transition filter
so that it only matches if the launcher is the current home activity

Bug: 194112093
Test: atest SplashscreenTests
Change-Id: Ie2185545a5bef8b317e104b6ac878f6cde0d7350
2021-07-20 14:23:55 -07:00
Jonathan Miranda
e6f0509d1d Merge "Fix bug where app icon is gone for first frame on cold start." into sc-dev am: 3334c32120
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15164770

Change-Id: I38ace4adec4591e9259a8859ed547e1b951b922c
2021-07-01 18:36:20 +00:00
Jonathan Miranda
3334c32120 Merge "Fix bug where app icon is gone for first frame on cold start." into sc-dev 2021-07-01 18:34:47 +00:00
Jon Miranda
17cc821c28 Fix bug where app icon is gone for first frame on cold start.
We need the icon to be full alpha during the init pass, then when
the actual animation starts, we can swap the icon with the window
(splash screen that draws the icon).

Bug: 192366079
Test: slow down window animations
      check no empty frame on cold start app launch
      check no empty frame on warm start app launch

Change-Id: I16a1779e5252d8e88bc3c408e1dc40b264fe4cf4
2021-07-01 00:11:41 +00:00
Lucas Dupin
3fb19d41b6 Merge "Decouple zooms and blurs on app launch" into sc-dev am: c2ef0363af
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15145970

Change-Id: Idadf9a85d4de92e584a524ff48856cca5c81d664
2021-06-30 00:25:43 +00:00
Lucas Dupin
0f00c35268 Decouple zooms and blurs on app launch
We'd like to be able to disable blurs during app launch, but without
disabling zooms as well. The previous sysprop would set the depth of
BackgroundAppState to 0, when what we want is to conserve wallpaper
zoom.

Bug: 191969790
Test: adb shell setprop ro.launcher.blur.appLaunch false
Change-Id: Ie4b26096f6ac723c3981bba2829557e6cc6c733b
2021-06-29 13:02:12 -07:00
Lucas Dupin
820b0987bd Merge "Reset DEPTH at the end of launch animations" into sc-dev am: 789f01af7e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15130116

Change-Id: I5d4b3c70bf2201831ed25405083eaf6de1bdf92f
2021-06-28 22:28:34 +00:00
Lucas Dupin
789f01af7e Merge "Reset DEPTH at the end of launch animations" into sc-dev 2021-06-28 22:15:21 +00:00
Lucas Dupin
9d8580bd2a Reset DEPTH at the end of launch animations
This way the wallpaper won't be zoomed out if an app crashes.

Test: adb am crash <some test app>
Fixes: 191979512
Change-Id: I7576798f736d63c3e46bbac1b983b9d1a437647d
2021-06-28 11:45:14 -07:00
Vadim Tryshev
e3f02c4de6 Merge "Postponing CUJ start by 1 frame" into sc-dev am: e70e6a3b0b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15096971

Change-Id: Iaedc20bb98781ad97b8f72e064cb47e77e7f2975
2021-06-26 15:10:04 +00:00
Vadim Tryshev
e70e6a3b0b Merge "Postponing CUJ start by 1 frame" into sc-dev 2021-06-25 17:56:34 +00:00
vadimt
ca383ffdf5 Postponing CUJ start by 1 frame
for CUJ_APP_LAUNCH_FROM_ICON, CUJ_APP_CLOSE_TO_HOME,
CUJ_APP_LAUNCH_FROM_WIDGET and CUJ_APP_LAUNCH_FROM_RECENTS

Test: Local perfetto run
Bug: 190858586
Change-Id: I7a26d91c44a0a4c767bde3230d39a096a26d7b75
2021-06-24 11:44:57 -07:00
Sunny Goyal
9ffb0f803b Merge "Fixing TaskView.launchTask.onEndCallback is not called" into sc-dev am: eb3367796a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15032513

Change-Id: I0b76512550814f23fde9c95a59e90e50280e3dde
2021-06-22 18:20:46 +00:00
Sunny Goyal
696c612964 Fixing TaskView.launchTask.onEndCallback is not called
Sometimes onAnimaitonCancelled can be called without onCreate. Calling
onEnd in this case so that the sate is cleared

Removing additional subclassing for the runner

Bug: 190856140
Test: Manual
Change-Id: If105cb343cab446a4eac90a45184ce50c6e4c485
2021-06-21 16:06:40 -07:00
Jonathan Miranda
94df55bada Merge "Fix bug where workspace alpha does not get set to 1 when animation gets cancelled." into sc-dev am: f9df8f3682
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15023032

Change-Id: I9ab72caa407fd3e6a2e6130bcf9e924ba2c7726c
2021-06-20 22:59:04 +00:00
Jon Miranda
651abb9924 Fix bug where workspace alpha does not get set to 1 when animation gets cancelled.
- Can also remove QSB from app launch animator, since its in the hotseat now.

Bug: 189458349
Test: manual
Change-Id: Ib41376e3f8c58166c6ee6fbfed38bdd443663df4
2021-06-18 15:39:36 -07:00