Merge "Add getExpectedPresentationTimeMillis"

This commit is contained in:
Jian-Syuan (Shane) Wong
2023-07-01 00:18:24 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 0 deletions

View File

@@ -54946,6 +54946,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
*