From 09e25c5cdc7185357ec75367490bd2f3b3c332fb Mon Sep 17 00:00:00 2001 From: Jorim Jaggi Date: Fri, 10 Dec 2021 18:28:07 +0100 Subject: [PATCH] Add option to trace animation fraction In order to investigate animation value skipping directly from traces when needed. Bug: 210125581 Change-Id: I6febb148de12bb586344d29e4713ac7e523714ea --- core/java/android/animation/ValueAnimator.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 2c41e8d0925a9..3cbae99224c7b 100644 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -23,6 +23,7 @@ import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.os.Build; import android.os.Looper; +import android.os.SystemProperties; import android.os.Trace; import android.util.AndroidRuntimeException; import android.util.Log; @@ -74,6 +75,8 @@ import java.util.HashMap; public class ValueAnimator extends Animator implements AnimationHandler.AnimationFrameCallback { private static final String TAG = "ValueAnimator"; private static final boolean DEBUG = false; + private static final boolean TRACE_ANIMATION_FRACTION = SystemProperties.getBoolean( + "persist.debug.animator.trace_fraction", false); /** * Internal constants @@ -1554,6 +1557,10 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio @CallSuper @UnsupportedAppUsage void animateValue(float fraction) { + if (TRACE_ANIMATION_FRACTION) { + Trace.traceCounter(Trace.TRACE_TAG_VIEW, getNameForTrace() + hashCode(), + (int) (fraction * 1000)); + } fraction = mInterpolator.getInterpolation(fraction); mCurrentFraction = fraction; int numValues = mValues.length;