Commit Graph

307 Commits

Author SHA1 Message Date
Schneider Victor-tulias 3c732aa71b Merge "Default to using AppLaunchAnimationRunner when no LaunchableView can be found" into main 2023-10-17 17:22:07 +00:00
Schneider Victor-tulias 7802dfb44d Default to using AppLaunchAnimationRunner when no LaunchableView can be found
Flag: not needed:
Fixes: 305699288
Test: ran launcher and launched apps
Change-Id: I5ab4f3c7d976e463c29340a4a00edf37e15abf47
2023-10-17 11:30:21 -04:00
Luca Zuccarini ff2b38e366 Reuse the main depth controller for launch animations.
The two controllers don't own any unique state, other than the current
depth state. These two _should_ never diverge anyway, because there is
only one valid depth at any given time. By using the same controller all
the time we can enforce this invariant.

Everything else is basically just registered and unregistered listeners,
which the main controller already does properly and always has the same
state in that regard as the ad-hoc one that we're removing.

Finally we don't need to take care of any cleanup explicitly, as we did
before.

Bug: 293427436
Flag: N/A
Test: manual
Change-Id: If6ea68847a60254df76e806eac2679ae0415bfe0
2023-10-17 12:16:25 +00:00
Stefan Andonian 17ee527e15 Don't show FloatingIconView during Back to Home Animation when animations are disabled.
Bug: 235915161
Test: Reproduced the issue locally, then verified that the fix worked as
desired without introducing unwanted side effects.

Change-Id: I3db3b2ddbd34a2ef19eae10282758df32c2d5b3f
2023-10-05 17:44:12 +00:00
Luca Zuccarini 850a282446 [Toast] Fix ANR when tapping on rich card chip. am: ba44979d79 am: f876cb4bf4
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24894969

Change-Id: Iac57076c82c798876d7d94c9f03d3fc1d34bc09f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-29 18:41:51 +00:00
Luca Zuccarini ba44979d79 [Toast] Fix ANR when tapping on rich card chip.
This method recursively looks up the view hierarchy for a suitable view
to animate. The wrong variable was causing an infinite loop by never
updating the object being checked for the end condition.

With the fix, the animation behaves as expected.

Fix: 302568434
Flag: ENABLE_SEARCH_RESULT_LAUNCH_ANIMATION
Test: see video in the bug.
Change-Id: I123e50f1618a1e48256c0c976eeb46c93e8391b2
Merged-In: I123e50f1618a1e48256c0c976eeb46c93e8391b2
2023-09-29 11:41:55 +00:00
Wei Sheng Shih 64116af237 Merge "Transfer the animation bounds to another coordinate if needed." into main 2023-09-14 10:02:28 +00:00
wilsonshih 3228322d49 Transfer the animation bounds to another coordinate if needed.
For a remote close animation target, because the orientation can be
different from launcher, so when launcher applying surface animation
to it, there should do another coordinate transfer based on it's
coordinate.
Also for closing animation, there shouldn't use #getWindowTargetBounds
because it only search for opening target.
There is no change when launcher's orientation matches animation target.

Bug: 254805643
Bug: 298318284
Test: close activity in each oritation, verify the position of remote
animaiton target is aligned with the floating view.

Change-Id: I7799357695a467f1bfc653e4f058a5e646ea2405
2023-09-14 02:41:21 +00:00
Schneider Victor-tulias 9e6a845ca4 Merge "Add error handling to prevent IllegalArgumentException" into udc-qpr-dev 2023-09-11 15:30:05 +00:00
Schneider Victor-tulias 785a7511b6 Add error handling to prevent IllegalArgumentException
ActivityLaunchAnimator.Controller.fromView requires an instance of LaunchableView, however findViewWithBackground had no checks to return one. updated the check to make the exception less likely.

Flag: not needed
Fixes: 297564681
Test: ran launcher and launched apps
Change-Id: Iddbe55c1ff66b067f8456d058cbc60a2a698c4ae
Merged-In: Iddbe55c1ff66b067f8456d058cbc60a2a698c4ae
2023-09-05 13:58:42 +00:00
Schneider Victor-tulias 0fb4b268e5 Add error handling to prevent IllegalArgumentException
ActivityLaunchAnimator.Controller.fromView requires an instance of LaunchableView, however findViewWithBackground had no checks to return one. updated the check to make the exception less likely.

Flag: not needed
Fixes: 297564681
Test: ran launcher and launched apps
Change-Id: Iddbe55c1ff66b067f8456d058cbc60a2a698c4ae
2023-09-05 13:57:11 +00:00
Fengjiang Li e180de6b20 Fix memory leak of Launcher activityfrom QuickstepTransitionManager and LauncherBackAnimationController
We should also avoid using non-static inner class that extends IOnBackInvokedCallback.Stub and IRemoteAnimationRunner.Stub inside LauncherBackAnimationController, which references the entire LauncherBackAnimationController object.

1. When launcher is created, a Runnable is posted to ShellExecutor to call BackAnimationController#registerAnimation
2. When launcher is later destroyed, another Runnable is posted to same ShellExecturo to call BackAnimationController#unregisterAnimation
3. If the execturo queued the 1st runnable, then we have leaked LauncherBackAnimationController object, including Launcher activity.

This CL fixes the leak by making the Stub static inner classes, and use weak reference hold reference to launcher activity.

Bug: 297806573
Test: Grab a heap dump and this reference no longer exist
Flag: N/A
Change-Id: I78853e900a98399b02682ba2d9179e544a4030d5
2023-08-30 23:43:20 -07:00
Sunny Goyal 57a83b5732 Using CUJ_APP_CLOSE_TO_HOME_FALLBACK when fallback animaiton is playing
Bug: 281873427
Test: N/A
Flag: N/A
Change-Id: I7745b8b7d7b48fa5a4f58e8db7e99865226e81d5
2023-08-16 12:30:27 -07:00
Sunny Goyal c1d1e68a82 Removing some unused overrides in Launcher
> Changing AddItemActivity to use RemoteAnimation directly
  to avoidTransitionManager override

Bug: 273828110
Test: Manual
Flag: N/A
Change-Id: I49777e7eeba00319476b0a239bc1cdac37833457
2023-08-11 12:31:49 -07:00
Andy Wickham ea12dd4e39 Merge "Make some things public for reuse." into udc-qpr-dev 2023-07-31 18:19:22 +00:00
Johannes Gallmann 19721d5e28 Merge "Extract Launcher resource interpolators to Animation Library" into udc-qpr-dev 2023-07-31 12:36:43 +00:00
Andy Wickham 2f72b2efb8 Make some things public for reuse.
Test: With sister change.
Flag: N/A
Bug: 292000892
Change-Id: I8a20b9d4d5df748f90d907a10fe99d066d700170
2023-07-28 16:15:20 -07:00
Luca Zuccarini 627d67549f Animate depth from the right value on Taskbar All Apps launches.
`MyDepthController` in `QuickstepTransitionLauncher` assumes that we
want the background to always animate the same way, matching the rest
state of the workspace (depth == 0). However, in Taskbar All Apps the
background is visible, and depth != 0. We now initialize the one-off
`DepthController` for launches to take into account the latest depth set
by the top level `DepthController`, so there is no jumpcut at the
beginning of the animation.

Note that in my opinion we should use the same `DepthController` for all
cases, rather than having this one-off. I'm looking into the feasibility
of that change, but for now this fixes the issue at hand.

Fix: 292959100
Flag: N/A
Test: manual, see videos in the bug

Change-Id: Id90e8e728cc3e2ccf7d92148fbb0d6ff3e6fd6ca
2023-07-26 15:37:44 +00:00
Johannes Gallmann a82eebd286 Extract Launcher resource interpolators to Animation Library
Bug: 292080029
Test: atest InterpolatorResourcesTest
Change-Id: I65dba4eb3f96844d4f9a4d0af608c0bd8e77ccc2
2023-07-22 09:52:53 +02:00
Fengjiang Li da718e9749 Log appear animation's scale factor
Test: Grabbed a bug report b/291974797
Flag: N/A
Bug: 290320302
Change-Id: Ic33dc94806b838a03a2203bdd5701a1eeaeeb7bf
2023-07-20 11:08:14 -07:00
Hongwei Wang 49b9fbd188 Merge "Polish home-key from split to pip transition" into udc-dev am: ca08d75e4a am: 93551e9496
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23833485

Change-Id: I0a6ef4eee4dfc6244b5ee4a7716c1e625923d4b8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-29 17:58:16 +00:00
Hongwei Wang ca08d75e4a Merge "Polish home-key from split to pip transition" into udc-dev 2023-06-29 17:17:03 +00:00
Winson Chung 551cbc4969 Merge "Workaround for handling the restart of an already visible task" into udc-dev am: 0da5208bb3 am: c8a2f9111b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23785437

Change-Id: I2a7ebbac3c510d32b70ee57dd8323123800ff09a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-28 07:52:58 +00:00
Winson Chung 57c2a79e47 Workaround for handling the restart of an already visible task
- If a task is already visible, then startActivity is a no-op and the
  remote transition that launcher expects to run is not started. As a
  workaround (until restarts are an actual transition), listen for
  the case where a task is restarted and invoke the end callbacks

Fixes: 286016555
Test: Repro steps on the bug
Change-Id: Iec3ab97c8817a5e95399cec90f891d65f369d234
2023-06-28 05:51:54 +00:00
Jerry Chang 3651051182 Polish home-key from split to pip transition
Includes WINDOWING_MODE_MULTI_WINDOW closing target to the condition of
playing fallback animation. So the remaining splitting task won't be
play with iconview animation when home-key to auto-pip consumed another
splitting task in pip transition handler.

Bug: 281476331
Test: repro steps of the bug
Test: pass existing tests
Video: http://recall/-/fLARJNt42LVxc3tt86SneW/eelqATeE1REoOtOEDxeDVR
Change-Id: If05d8841a6a940e61f71683422ef1a3d4e3597c7
2023-06-28 02:10:34 +00:00
TreeHugger Robot 796c3bbd02 Merge "Restore strong reference to animation runner" into udc-dev am: 1f3c56af5b am: 7733c11623
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23793397

Change-Id: I5f485e204fa56b319f250a467eb448622be9f01f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-27 03:54:56 +00:00
Winson Chung 6cfe2e6cbe Restore strong reference to animation runner
- The remote animation factory needs to be strongly referenced since
  the only other reference is a weakly held one from
  LauncherAnimationRunner, and if a gc happens in between starting
  the animation and the onAnimationStart() callback, then the
  animation will not play.

Fixes: 284106887
Test: Force a gc after creating a remote app launch animation and ensure
      that the runner still exists when the animation starts

Change-Id: I5f584451b41c666916801b8ea0cb470c7ab9fc51
2023-06-26 23:55:23 +00:00
Sunny Goyal 6e1e11bb5c Merge "Fising launcher stuck on blur" into udc-dev am: ef6fbb5be8 am: 81b856468e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23621509

Change-Id: I5eb5546f2df74bf236b70b38ed3e0f8d032faf6d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-09 07:39:16 +00:00
Sunny Goyal 521c2a038b Fising launcher stuck on blur
The same surface can become invalid, in which case we need to wait
until the next draw to apply blur

Bug: 284411563
Test: Verified on device
Change-Id: Ifb6be94756fd00c5925e11a6b7d57f206e063a17
2023-06-08 13:18:34 -07:00
Kateryna Ivanova 7120373bbc Migrate Interpolators from Launcher3 to the public animation library
Test: atest
Bug: 271850966
Change-Id: Iba999f2e753764a37d35e508e707df02388432e9
2023-05-30 07:20:38 +00:00
Luca Zuccarini 07c3491ec2 Merge "Add a view type check to ensure the right animation is used." into udc-dev 2023-05-25 15:42:51 +00:00
Luca Zuccarini f898ee474c Merge "Remove redundant instances of depth controller." into udc-dev 2023-05-24 11:35:21 +00:00
Luca Zuccarini a96dcb0cc7 Remove redundant instances of depth controller.
During each app launch, a new `MyDepthController` is instantiated, which
registers two of its methods as listeners for cross window blur and
opaqueness. This controller's usefulness spans that specific animation
only, but the listeners are never unregistered. This creates conflicts
when an opaqueness signal happens, which cause the background to flicker
(see videos).

Bug: 283335820
Test: manual, see videos in the bug
Flag: not needed, bug fix
Change-Id: I3dcb0b8ff0aa77bf3183a926889d0131b17bcaa4
2023-05-23 15:33:17 +00:00
Tony Huang 2083c5450d Hide divider immediately if going to launcher
Divider should hide immediately when going to launcher, this fix
the divider hidden delay in 3-btn-nav mode.

Fix: 283058496
Test: manual
Test: pass existing tests
Change-Id: Ia4eaba8020c564cc95b8652fe0f7066b653b9df4
2023-05-22 16:38:14 +08:00
Luca Zuccarini 2449a01b22 Add a view type check to ensure the right animation is used.
Bug: 265134143
Test: recorded perfetto trace, see bug
Change-Id: If6abc36f0f43c6bb632fc824c19717c1231b32dc
2023-05-19 09:51:15 +00:00
Treehugger Robot f3fdca59d2 Merge "Revert "Fix null-pointers in SurfaceTransactionApplier constructor."" into udc-dev 2023-05-10 21:40:40 +00:00
Sunny Goyal 64809780ce Revert "Fix null-pointers in SurfaceTransactionApplier constructor."
This reverts commit d86c5657e0.

Reason for revert: b/281294745

Change-Id: Ib2680b60346a9bc5932057707d0ef105441f324d
2023-05-10 19:34:01 +00:00
Schneider Victor-tulias a40de23f04 Merge "Fix null-pointers in SurfaceTransactionApplier constructor." into udc-dev 2023-05-08 16:50:13 +00:00
Schneider Victor-tulias d86c5657e0 Fix null-pointers in SurfaceTransactionApplier constructor.
A recurring class of null pointers are caused by using views with no view root implementation in SurfaceTransactionApplier from QuickstepTransitionManager. This can happen when we use launcher views after it has been destroyed.

- No longer using mDragLayer in getFallbackClosingWindowAnimators; simply applying the transaction immediately.
- Forcefully using getFallbackClosingWindowAnimators when launcher is destroyed.

Flag: not needed
Bug: 278833389
Test: launches and closed several apps in 3-button and gesture nav mode
Change-Id: I83b3aec1488fe9666bd0301a6044a181bb05dbdd
2023-05-05 21:53:50 +00:00
Lucas Silva 4a0f9298d1 Update QuickstepTransitionManager to allow remote transitions to be
overridden

Bug: 280585150
Test: flashed device, and verified along with other changes in this
topic
Flag: ENABLE_DREAM_TRANSITION

Change-Id: Ic62ab51e0b95253127aa0c4fc8a4ea613afafaa3
2023-05-03 11:44:27 -04:00
Robin Lee 7e5594928c Remove keyguard state from onAnimationCancelled
Reason for revert: b/276433230

Test: atest CtsWindowManagerDeviceTestCases:KeyguardTests
Test: atest PowerKeyGestureTests
Bug: 276433230
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:11e6fdd982ab7e6df951dcfe97948f81a8f36d75)
Merged-In: I62d760206dfd13ba4de7a77d2906b0f90bd2c343
Change-Id: I62d760206dfd13ba4de7a77d2906b0f90bd2c343
2023-04-21 09:06:02 +00:00
Evan Rosky b8f82c1a9d Merge "Improve transition logging" into udc-dev 2023-03-31 20:43:15 +00:00
Evan Rosky 8869bb5f40 Improve transition logging
Adding debug-names to remote transitions so that
they can be identified across processes

Bug: 276349701
Test: existing tests since this doesn't change logic
Change-Id: I41400feeb2dd91971f8c750613085c80af309aea
2023-03-30 15:28:43 -07:00
Jerry Chang 7e51edd808 Fix wrong surface positioning when animating a split pair to home
Use the screen based position instead of parent-relative position to
make sure the surface was placing at the expected position while
animation apps to home.

Bug: 273685456
Test: http://recall/-/fLARJNt42LVxc3tt86SneW/c2pLS6FwyEMweiLiWqqzPa
Change-Id: Iea79e6d2b9ab591fe18c5ac7a0d89bb90a461145
2023-03-29 07:21:33 +00:00
Jon Miranda 6e816aaf37 Merge "Add a way to fade out taskbar view when closing an app in the taskbar." into tm-qpr-dev am: 149246f077 am: ce06cf89b0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22141153

Change-Id: I919b45021c1fbc2a5d5c30c2d5eca71a672cd5be
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-21 14:14:43 +00:00
Jon Miranda ce06cf89b0 Merge "Add a way to fade out taskbar view when closing an app in the taskbar." into tm-qpr-dev am: 149246f077
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22141153

Change-Id: Ia0212c2829b01c5b0faf120d6303b7cf6d147ad6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-21 13:33:32 +00:00
Jon Miranda 149246f077 Merge "Add a way to fade out taskbar view when closing an app in the taskbar." into tm-qpr-dev 2023-03-21 13:01:30 +00:00
Jon Miranda 4202d43e48 Merge "Tune springs when app animates home into the hotseat on devices with a taskbar." into tm-qpr-dev am: fad8c1c449 am: 03bb5fe49c
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22146526

Change-Id: I0adde19b10d0bf6c25c5025453fd361a0804cf62
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-20 22:12:54 +00:00
Jon Miranda 03bb5fe49c Merge "Tune springs when app animates home into the hotseat on devices with a taskbar." into tm-qpr-dev am: fad8c1c449
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22146526

Change-Id: Iaa1d5cf3e030398c97841fe604ad923cce4e25e7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-20 21:34:11 +00:00
Jon Miranda fad8c1c449 Merge "Tune springs when app animates home into the hotseat on devices with a taskbar." into tm-qpr-dev 2023-03-20 20:54:27 +00:00