Add onEndCallback to ContainerAnimationRunner

Bug: 247121782
Test: Manual, i.e. tested that callback is invoked after launch animation
Change-Id: Ie52ffa1b76de01943dd16346560768b3ecced118
This commit is contained in:
Johannes Gallmann
2023-03-03 16:18:34 +01:00
parent 86d8db485f
commit f54b88d2d6

View File

@@ -299,7 +299,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
ItemInfo tag = (ItemInfo) v.getTag();
if (tag != null && tag.shouldUseBackgroundAnimation()) {
ContainerAnimationRunner containerAnimationRunner =
ContainerAnimationRunner.from(v, mStartingWindowListener);
ContainerAnimationRunner.from(v, mStartingWindowListener, onEndCallback);
if (containerAnimationRunner != null) {
delegateRunner = containerAnimationRunner;
}
@@ -1757,7 +1757,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
@Nullable
private static ContainerAnimationRunner from(
View v, StartingWindowListener startingWindowListener) {
View v, StartingWindowListener startingWindowListener, RunnableList onEndCallback) {
View viewToUse = findViewWithBackground(v);
if (viewToUse == null) {
viewToUse = v;
@@ -1784,8 +1784,15 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
ActivityLaunchAnimator.Callback callback = task -> ColorUtils.setAlphaComponent(
startingWindowListener.getBackgroundColor(), 255);
ActivityLaunchAnimator.Listener listener = new ActivityLaunchAnimator.Listener() {
@Override
public void onLaunchAnimationEnd() {
onEndCallback.executeAllAndDestroy();
}
};
return new ContainerAnimationRunner(
new ActivityLaunchAnimator.AnimationDelegate(controller, callback));
new ActivityLaunchAnimator.AnimationDelegate(controller, callback, listener));
}
/** Finds the closest parent of [view] (inclusive) with a background drawable. */