From 7e50a5827417115af52c5f3a9dd5e7b7e592d0f8 Mon Sep 17 00:00:00 2001 From: "Jian-Syuan (Shane) Wong" Date: Sat, 24 Jun 2023 00:11:19 +0000 Subject: [PATCH] Add getExpectedPresentationTimeMillis Add getExpectedPresentationTimeMillis to AnimationUtils that offers a differnt time unit (milliseconds) other than getExpectedPresentationTimeNanos. bug: 283122385 Test: atest AnimationUtilsTest Change-Id: I888ec9fc69a57377e8594e2c4fc3476c9f31feb3 --- core/api/current.txt | 1 + .../java/android/view/animation/AnimationUtils.java | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/core/api/current.txt b/core/api/current.txt index 00e3effa461c8..25de0818fa1f2 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -54926,6 +54926,7 @@ package android.view.animation { public class AnimationUtils { ctor public AnimationUtils(); method public static long currentAnimationTimeMillis(); + method public static long getExpectedPresentationTimeMillis(); method public static long getExpectedPresentationTimeNanos(); method public static android.view.animation.Animation loadAnimation(android.content.Context, @AnimRes int) throws android.content.res.Resources.NotFoundException; method public static android.view.animation.Interpolator loadInterpolator(android.content.Context, @AnimRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException; diff --git a/core/java/android/view/animation/AnimationUtils.java b/core/java/android/view/animation/AnimationUtils.java index f31a43f5924f3..8ba8b8cca5edf 100644 --- a/core/java/android/view/animation/AnimationUtils.java +++ b/core/java/android/view/animation/AnimationUtils.java @@ -30,6 +30,7 @@ import android.content.res.Resources.Theme; import android.content.res.XmlResourceParser; import android.os.SystemClock; import android.util.AttributeSet; +import android.util.TimeUtils; import android.util.Xml; import android.view.InflateException; @@ -155,6 +156,18 @@ public class AnimationUtils { return state.mExpectedPresentationTimeNanos; } + /** + * The expected presentation time of a frame in the {@link SystemClock#uptimeMillis()}. + * Developers should prefer using this method over {@link #currentAnimationTimeMillis()} + * because it offers a more accurate time for the calculating animation progress. + * + * @return the expected presentation time of a frame in the + * {@link SystemClock#uptimeMillis()} time base. + */ + public static long getExpectedPresentationTimeMillis() { + return getExpectedPresentationTimeNanos() / TimeUtils.NANOS_PER_MS; + } + /** * Loads an {@link Animation} object from a resource *