summaryrefslogtreecommitdiffstats
path: root/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java')
-rw-r--r--go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java b/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
index 62e40d194..c03222db1 100644
--- a/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
+++ b/go/quickstep/src/com/android/quickstep/AppToOverviewAnimationProvider.java
@@ -42,6 +42,7 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple
private final ActivityControlHelper<T> mHelper;
private final int mTargetTaskId;
private IconRecentsView mRecentsView;
+ private AppToOverviewAnimationListener mAnimationReadyListener;
AppToOverviewAnimationProvider(ActivityControlHelper<T> helper, int targetTaskId) {
mHelper = helper;
@@ -49,12 +50,24 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple
}
/**
+ * Set listener to various points in the animation preparing to animate.
+ *
+ * @param listener listener
+ */
+ void setAnimationListener(AppToOverviewAnimationListener listener) {
+ mAnimationReadyListener = listener;
+ }
+
+ /**
* Callback for when the activity is ready/initialized.
*
* @param activity the activity that is ready
* @param wasVisible true if it was visible before
*/
boolean onActivityReady(T activity, Boolean wasVisible) {
+ if (mAnimationReadyListener != null) {
+ mAnimationReadyListener.onActivityReady(activity);
+ }
ActivityControlHelper.AnimationFactory factory =
mHelper.prepareRecentsUI(activity, wasVisible,
false /* animate activity */, (controller) -> {
@@ -79,6 +92,9 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple
*/
@Override
public AnimatorSet createWindowAnimation(RemoteAnimationTargetCompat[] targetCompats) {
+ if (mAnimationReadyListener != null) {
+ mAnimationReadyListener.onWindowAnimationCreated();
+ }
AnimatorSet anim = new AnimatorSet();
if (mRecentsView == null) {
if (Log.isLoggable(TAG, Log.WARN)) {
@@ -131,4 +147,21 @@ final class AppToOverviewAnimationProvider<T extends BaseDraggingActivity> imple
long getRecentsLaunchDuration() {
return REMOTE_APP_TO_OVERVIEW_DURATION;
}
+
+ /**
+ * Listener for various points in the app to overview animation preparing to animate.
+ */
+ interface AppToOverviewAnimationListener {
+ /**
+ * Logic for when activity we're animating to is ready
+ *
+ * @param activity activity to animate to
+ */
+ void onActivityReady(BaseDraggingActivity activity);
+
+ /**
+ * Logic for when we've created the app to recents animation.
+ */
+ void onWindowAnimationCreated();
+ }
}