From f20a330a5c0e29483822b94df2d7fcaf84d0e994 Mon Sep 17 00:00:00 2001 From: vadimt Date: Tue, 15 Dec 2020 16:42:29 -0800 Subject: [PATCH] Instrumenting app-to-pip CUJ. Bug: 169221267 Test: manual, presubmit Change-Id: I7fed51af63665ba9b0596f7f01bf3182643fb0a3 --- .../util/SwipePipToHomeAnimator.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java index 87fee79547..16ca43d4c6 100644 --- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java +++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java @@ -16,8 +16,9 @@ package com.android.quickstep.util; +import static com.android.systemui.shared.system.InteractionJankMonitorWrapper.CUJ_APP_CLOSE_TO_PIP; + import android.animation.Animator; -import android.animation.AnimatorListenerAdapter; import android.animation.RectEvaluator; import android.animation.ValueAnimator; import android.content.ComponentName; @@ -26,7 +27,9 @@ import android.view.SurfaceControl; import androidx.annotation.NonNull; +import com.android.launcher3.anim.AnimationSuccessListener; import com.android.systemui.shared.pip.PipSurfaceTransactionHelper; +import com.android.systemui.shared.system.InteractionJankMonitorWrapper; /** * An {@link Animator} that animates an Activity to PiP (picture-in-picture) window when @@ -76,9 +79,27 @@ public class SwipePipToHomeAnimator extends ValueAnimator implements startBounds.right - sourceRectHint.right, startBounds.bottom - sourceRectHint.bottom); - addListener(new AnimatorListenerAdapter() { + addListener(new AnimationSuccessListener() { + @Override + public void onAnimationStart(Animator animation) { + InteractionJankMonitorWrapper.begin(CUJ_APP_CLOSE_TO_PIP); + super.onAnimationStart(animation); + } + + @Override + public void onAnimationCancel(Animator animation) { + super.onAnimationCancel(animation); + InteractionJankMonitorWrapper.cancel(CUJ_APP_CLOSE_TO_PIP); + } + + @Override + public void onAnimationSuccess(Animator animator) { + InteractionJankMonitorWrapper.end(CUJ_APP_CLOSE_TO_PIP); + } + @Override public void onAnimationEnd(Animator animation) { + if (!mHasAnimationEnded) super.onAnimationEnd(animation); SwipePipToHomeAnimator.this.onAnimationEnd(); } });