Add getExpectedPresentationTimeMillis

Add getExpectedPresentationTimeMillis to AnimationUtils that offers a
differnt time unit (milliseconds) other than
getExpectedPresentationTimeNanos.

bug: 283122385
Test: atest AnimationUtilsTest
Change-Id: I888ec9fc69a57377e8594e2c4fc3476c9f31feb3
This commit is contained in:
Jian-Syuan (Shane) Wong
2023-06-24 00:11:19 +00:00
parent 1e800b8253
commit 7e50a58274
2 changed files with 14 additions and 0 deletions

View File

@@ -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;

View File

@@ -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
*