Rename animator:animator to core:core-animation

Rename the animator libraries based on feedback.
animator/animator -> core/core-animation
animator/animator-testing -> core/core-animation-testing
animator/integration-tests -> core/core-animation-integration-tests

Bug: 152020427
Test: ./gradlew :core:core-animation-integration-tests:testapp:connectedCheck
Change-Id: I70c74a51ac28ce04f380e7dd559b0f739da42381
diff --git a/OWNERS b/OWNERS
deleted file mode 100644
index 67a6139..0000000
--- a/OWNERS
+++ /dev/null
@@ -1,23 +0,0 @@
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
diff --git a/animator/OWNERS b/animator/OWNERS
deleted file mode 100644
index 27729be..0000000
--- a/animator/OWNERS
+++ /dev/null
@@ -1 +0,0 @@
[email protected]
diff --git a/animator/animator-testing/api/current.txt b/animator/animator-testing/api/current.txt
deleted file mode 100644
index 91745ad..0000000
--- a/animator/animator-testing/api/current.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AnimatorTestRule implements org.junit.rules.TestRule {
-    ctor public AnimatorTestRule();
-    method public void advanceTimeBy(long);
-    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
-    method public long getCurrentTime();
-  }
-
-}
-
diff --git a/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt b/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt
deleted file mode 100644
index 91745ad..0000000
--- a/animator/animator-testing/api/public_plus_experimental_1.0.0-alpha01.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AnimatorTestRule implements org.junit.rules.TestRule {
-    ctor public AnimatorTestRule();
-    method public void advanceTimeBy(long);
-    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
-    method public long getCurrentTime();
-  }
-
-}
-
diff --git a/animator/animator-testing/api/public_plus_experimental_current.txt b/animator/animator-testing/api/public_plus_experimental_current.txt
deleted file mode 100644
index 91745ad..0000000
--- a/animator/animator-testing/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AnimatorTestRule implements org.junit.rules.TestRule {
-    ctor public AnimatorTestRule();
-    method public void advanceTimeBy(long);
-    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
-    method public long getCurrentTime();
-  }
-
-}
-
diff --git a/animator/animator-testing/api/restricted_1.0.0-alpha01.txt b/animator/animator-testing/api/restricted_1.0.0-alpha01.txt
deleted file mode 100644
index 91745ad..0000000
--- a/animator/animator-testing/api/restricted_1.0.0-alpha01.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AnimatorTestRule implements org.junit.rules.TestRule {
-    ctor public AnimatorTestRule();
-    method public void advanceTimeBy(long);
-    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
-    method public long getCurrentTime();
-  }
-
-}
-
diff --git a/animator/animator-testing/api/restricted_current.txt b/animator/animator-testing/api/restricted_current.txt
deleted file mode 100644
index 91745ad..0000000
--- a/animator/animator-testing/api/restricted_current.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AnimatorTestRule implements org.junit.rules.TestRule {
-    ctor public AnimatorTestRule();
-    method public void advanceTimeBy(long);
-    method public org.junit.runners.model.Statement apply(org.junit.runners.model.Statement, org.junit.runner.Description);
-    method public long getCurrentTime();
-  }
-
-}
-
diff --git a/animator/animator/api/1.0.0-alpha01.txt b/animator/animator/api/1.0.0-alpha01.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/1.0.0-alpha01.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/animator/api/api_lint.ignore b/animator/animator/api/api_lint.ignore
deleted file mode 100644
index e45f99b..0000000
--- a/animator/animator/api/api_lint.ignore
+++ /dev/null
@@ -1,3 +0,0 @@
-// Baseline format: 1.0
-BuilderSetStyle: androidx.animator.AnimatorSet.Builder#with(androidx.animator.Animator):
-    Builder methods names should use setFoo() style: method androidx.animator.AnimatorSet.Builder.with(androidx.animator.Animator)
diff --git a/animator/animator/api/current.txt b/animator/animator/api/current.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/current.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/animator/api/public_plus_experimental_1.0.0-alpha01.txt b/animator/animator/api/public_plus_experimental_1.0.0-alpha01.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/public_plus_experimental_1.0.0-alpha01.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/animator/api/public_plus_experimental_current.txt b/animator/animator/api/public_plus_experimental_current.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/public_plus_experimental_current.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/animator/api/restricted_1.0.0-alpha01.txt b/animator/animator/api/restricted_1.0.0-alpha01.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/restricted_1.0.0-alpha01.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/animator/api/restricted_current.txt b/animator/animator/api/restricted_current.txt
deleted file mode 100644
index d4819bd..0000000
--- a/animator/animator/api/restricted_current.txt
+++ /dev/null
@@ -1,372 +0,0 @@
-// Signature format: 3.0
-package androidx.animator {
-
-  public class AccelerateDecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateDecelerateInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AccelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public AccelerateInterpolator();
-    ctor public AccelerateInterpolator(float);
-    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Animator implements java.lang.Cloneable {
-    ctor public Animator();
-    method public void addListener(androidx.animator.Animator.AnimatorListener);
-    method public void addPauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void addUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void cancel();
-    method public androidx.animator.Animator clone();
-    method public void end();
-    method public abstract long getDuration();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public abstract long getStartDelay();
-    method public long getTotalDuration();
-    method public boolean isPaused();
-    method public abstract boolean isRunning();
-    method public boolean isStarted();
-    method public void pause();
-    method public void removeAllListeners();
-    method public void removeAllUpdateListeners();
-    method public void removeListener(androidx.animator.Animator.AnimatorListener);
-    method public void removePauseListener(androidx.animator.Animator.AnimatorPauseListener);
-    method public void removeUpdateListener(androidx.animator.Animator.AnimatorUpdateListener);
-    method public void resume();
-    method public abstract androidx.animator.Animator setDuration(@IntRange(from=0) long);
-    method public abstract void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setStartDelay(@IntRange(from=0) long);
-    method public void setTarget(Object?);
-    method public void setupEndValues();
-    method public void setupStartValues();
-    method public void start();
-    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
-  }
-
-  public static interface Animator.AnimatorListener {
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public default void onAnimationEnd(androidx.animator.Animator, boolean);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public default void onAnimationStart(androidx.animator.Animator, boolean);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorPauseListener {
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-  }
-
-  public static interface Animator.AnimatorUpdateListener {
-    method public void onAnimationUpdate(androidx.animator.Animator);
-  }
-
-  public class AnimatorInflater {
-    method public static androidx.animator.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
-    method public static androidx.animator.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
-  }
-
-  public abstract class AnimatorListenerAdapter implements androidx.animator.Animator.AnimatorListener androidx.animator.Animator.AnimatorPauseListener {
-    ctor public AnimatorListenerAdapter();
-    method public void onAnimationCancel(androidx.animator.Animator);
-    method public void onAnimationEnd(androidx.animator.Animator);
-    method public void onAnimationPause(androidx.animator.Animator);
-    method public void onAnimationRepeat(androidx.animator.Animator);
-    method public void onAnimationResume(androidx.animator.Animator);
-    method public void onAnimationStart(androidx.animator.Animator);
-  }
-
-  public final class AnimatorSet extends androidx.animator.Animator {
-    ctor public AnimatorSet();
-    method public boolean canReverse();
-    method public androidx.animator.AnimatorSet clone();
-    method public java.util.ArrayList<androidx.animator.Animator!> getChildAnimations();
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public long getStartDelay();
-    method public boolean isRunning();
-    method public androidx.animator.AnimatorSet.Builder play(androidx.animator.Animator);
-    method public void playSequentially(androidx.animator.Animator!...);
-    method public void playSequentially(java.util.List<androidx.animator.Animator!>);
-    method public void playTogether(androidx.animator.Animator!...);
-    method public void playTogether(java.util.Collection<androidx.animator.Animator!>);
-    method public void reverse();
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.AnimatorSet setDuration(long);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setStartDelay(long);
-  }
-
-  public class AnimatorSet.Builder {
-    method public androidx.animator.AnimatorSet.Builder after(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder after(long);
-    method public androidx.animator.AnimatorSet.Builder before(androidx.animator.Animator);
-    method public androidx.animator.AnimatorSet.Builder with(androidx.animator.Animator);
-  }
-
-  public class AnticipateInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateInterpolator();
-    ctor public AnticipateInterpolator(float);
-    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class AnticipateOvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public AnticipateOvershootInterpolator();
-    ctor public AnticipateOvershootInterpolator(float);
-    ctor public AnticipateOvershootInterpolator(float, float);
-    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ArgbEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.ArgbEvaluator getInstance();
-  }
-
-  public abstract class BidirectionalTypeConverter<T, V> extends androidx.animator.TypeConverter<T,V> {
-    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
-    method public abstract T convertBack(V);
-    method public androidx.animator.BidirectionalTypeConverter<V!,T!> invert();
-  }
-
-  public class BounceInterpolator implements androidx.animator.Interpolator {
-    ctor public BounceInterpolator();
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class CycleInterpolator implements androidx.animator.Interpolator {
-    ctor public CycleInterpolator(float);
-    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class DecelerateInterpolator implements androidx.animator.Interpolator {
-    ctor public DecelerateInterpolator();
-    ctor public DecelerateInterpolator(float);
-    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class FloatArrayEvaluator implements androidx.animator.TypeEvaluator<float[]> {
-    ctor public FloatArrayEvaluator();
-    ctor public FloatArrayEvaluator(float[]?);
-    method public float[] evaluate(float, float[], float[]);
-  }
-
-  public final class FloatEvaluator implements androidx.animator.TypeEvaluator<java.lang.Float> {
-    method public Float evaluate(float, Float, Float);
-    method public static androidx.animator.FloatEvaluator getInstance();
-  }
-
-  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
-    ctor public FloatProperty(String);
-    ctor public FloatProperty();
-    method public final void set(T, Float);
-    method public abstract void setValue(T, float);
-  }
-
-  public class IntArrayEvaluator implements androidx.animator.TypeEvaluator<int[]> {
-    ctor public IntArrayEvaluator();
-    ctor public IntArrayEvaluator(int[]?);
-    method public int[] evaluate(float, int[], int[]);
-  }
-
-  public class IntEvaluator implements androidx.animator.TypeEvaluator<java.lang.Integer> {
-    method public Integer evaluate(float, Integer, Integer);
-    method public static androidx.animator.IntEvaluator getInstance();
-  }
-
-  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
-    ctor public IntProperty(String);
-    ctor public IntProperty();
-    method public final void set(T, Integer);
-    method public abstract void setValue(T, int);
-  }
-
-  public interface Interpolator {
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public abstract class Keyframe<T> implements java.lang.Cloneable {
-    ctor public Keyframe();
-    method public abstract androidx.animator.Keyframe<T!> clone();
-    method @FloatRange(from=0, to=1) public float getFraction();
-    method public androidx.animator.Interpolator? getInterpolator();
-    method public Class<?> getType();
-    method public abstract T? getValue();
-    method public boolean hasValue();
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
-    method public static androidx.animator.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
-    method public static androidx.animator.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
-    method public static <T> androidx.animator.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
-    method public void setFraction(@FloatRange(from=0, to=1) float);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public abstract void setValue(T?);
-  }
-
-  public class LinearInterpolator implements androidx.animator.Interpolator {
-    ctor public LinearInterpolator();
-    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public final class ObjectAnimator extends androidx.animator.ValueAnimator {
-    ctor public ObjectAnimator();
-    method public androidx.animator.ObjectAnimator clone();
-    method public String getPropertyName();
-    method public Object? getTarget();
-    method public static androidx.animator.ObjectAnimator ofArgb(Object, String, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String, float...);
-    method public static androidx.animator.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
-    method public static <T> androidx.animator.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, int...);
-    method public static androidx.animator.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
-    method public static <T> androidx.animator.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiFloat(Object, String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, int[]![]);
-    method public static androidx.animator.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.ObjectAnimator ofMultiInt(Object, String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ObjectAnimator ofObject(Object, String, androidx.animator.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V, P> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.animator.TypeConverter<V!,P!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method public static <T, V> androidx.animator.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public static androidx.animator.ObjectAnimator ofPropertyValuesHolder(Object, androidx.animator.PropertyValuesHolder!...);
-    method public void setAutoCancel(boolean);
-    method public androidx.animator.ObjectAnimator setDuration(long);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class OvershootInterpolator implements androidx.animator.Interpolator {
-    ctor public OvershootInterpolator();
-    ctor public OvershootInterpolator(float);
-    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
-    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PathInterpolator implements androidx.animator.Interpolator {
-    ctor public PathInterpolator(android.graphics.Path);
-    ctor public PathInterpolator(float, float);
-    ctor public PathInterpolator(float, float, float, float);
-    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
-    method public float getInterpolation(@FloatRange(from=0, to=1) float);
-  }
-
-  public class PointFEvaluator implements androidx.animator.TypeEvaluator<android.graphics.PointF> {
-    ctor public PointFEvaluator();
-    ctor public PointFEvaluator(android.graphics.PointF);
-    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
-  }
-
-  public class PropertyValuesHolder implements java.lang.Cloneable {
-    method public androidx.animator.PropertyValuesHolder clone();
-    method public String getPropertyName();
-    method public static androidx.animator.PropertyValuesHolder ofFloat(String, float...);
-    method public static androidx.animator.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(String, int...);
-    method public static androidx.animator.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(String, androidx.animator.Keyframe!...);
-    method @java.lang.SafeVarargs public static androidx.animator.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, float[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<V!,float[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiFloat(String, androidx.animator.TypeConverter<T!,float[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, int[]![]);
-    method public static androidx.animator.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<V!,int[]!>, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T> androidx.animator.PropertyValuesHolder ofMultiInt(String, androidx.animator.TypeConverter<T!,int[]!>, androidx.animator.TypeEvaluator<T!>, androidx.animator.Keyframe!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.PropertyValuesHolder ofObject(String, androidx.animator.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
-    method @java.lang.SafeVarargs public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property, androidx.animator.TypeEvaluator<V!>, V!...);
-    method @java.lang.SafeVarargs public static <T, V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<T!,V!>, androidx.animator.TypeEvaluator<T!>, T!...);
-    method public static <V> androidx.animator.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.animator.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
-    method public void setConverter(androidx.animator.TypeConverter);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public void setIntValues(int...);
-    method public void setKeyframes(androidx.animator.Keyframe!...);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setProperty(android.util.Property);
-    method public void setPropertyName(String);
-  }
-
-  public class RectEvaluator implements androidx.animator.TypeEvaluator<android.graphics.Rect> {
-    ctor public RectEvaluator();
-    ctor public RectEvaluator(android.graphics.Rect);
-    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
-  }
-
-  public class TimeAnimator extends androidx.animator.ValueAnimator {
-    ctor public TimeAnimator();
-    method public void setTimeListener(androidx.animator.TimeAnimator.TimeListener?);
-  }
-
-  public static interface TimeAnimator.TimeListener {
-    method public void onTimeUpdate(androidx.animator.TimeAnimator, long, long);
-  }
-
-  public abstract class TypeConverter<T, V> {
-    ctor public TypeConverter(Class<T!>, Class<V!>);
-    method public abstract V convert(T);
-  }
-
-  public interface TypeEvaluator<T> {
-    method public T evaluate(float, T, T);
-  }
-
-  public class ValueAnimator extends androidx.animator.Animator {
-    ctor public ValueAnimator();
-    method public static boolean areAnimatorsEnabled();
-    method public androidx.animator.ValueAnimator clone();
-    method public float getAnimatedFraction();
-    method public Object getAnimatedValue();
-    method public Object? getAnimatedValue(String);
-    method public long getCurrentPlayTime();
-    method public long getDuration();
-    method public static long getFrameDelay();
-    method public String getNameForTrace();
-    method public int getRepeatCount();
-    method public int getRepeatMode();
-    method public long getStartDelay();
-    method public androidx.animator.PropertyValuesHolder![] getValues();
-    method public boolean isRunning();
-    method public static androidx.animator.ValueAnimator ofArgb(int...);
-    method public static androidx.animator.ValueAnimator ofFloat(float...);
-    method public static androidx.animator.ValueAnimator ofInt(int...);
-    method public static androidx.animator.ValueAnimator ofObject(androidx.animator.TypeEvaluator, java.lang.Object!...);
-    method public static androidx.animator.ValueAnimator ofPropertyValuesHolder(androidx.animator.PropertyValuesHolder!...);
-    method public void reverse();
-    method public void setCurrentFraction(float);
-    method public void setCurrentPlayTime(long);
-    method public androidx.animator.ValueAnimator setDuration(long);
-    method public void setEvaluator(androidx.animator.TypeEvaluator);
-    method public void setFloatValues(float...);
-    method public static void setFrameDelay(long);
-    method public void setIntValues(int...);
-    method public void setInterpolator(androidx.animator.Interpolator?);
-    method public void setNameForTrace(String);
-    method public void setObjectValues(java.lang.Object!...);
-    method public void setRepeatCount(int);
-    method public void setRepeatMode(int);
-    method public void setStartDelay(long);
-    method public void setValues(androidx.animator.PropertyValuesHolder!...);
-    field public static final int INFINITE = -1; // 0xffffffff
-    field public static final int RESTART = 1; // 0x1
-    field public static final int REVERSE = 2; // 0x2
-  }
-
-}
-
diff --git a/animator/integration-tests/testapp/src/main/AndroidManifest.xml b/animator/integration-tests/testapp/src/main/AndroidManifest.xml
deleted file mode 100644
index 5926906..0000000
--- a/animator/integration-tests/testapp/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2018 The Android Open Source Project
-
-     Licensed under the Apache License, Version 2.0 (the "License");
-     you may not use this file except in compliance with the License.
-     You may obtain a copy of the License at
-
-          http://www.apache.org/licenses/LICENSE-2.0
-
-     Unless required by applicable law or agreed to in writing, software
-     distributed under the License is distributed on an "AS IS" BASIS,
-     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-     See the License for the specific language governing permissions and
-     limitations under the License.
--->
-<manifest package="androidx.animator.testapp" />
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt
index ba1ec62..57722a2 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryGroups.kt
@@ -22,7 +22,6 @@
 object LibraryGroups {
     val ACTIVITY = LibraryGroup("androidx.activity", LibraryVersions.ACTIVITY)
     val ADS = LibraryGroup("androidx.ads", null)
-    val ANIMATOR = LibraryGroup("androidx.animator", null)
     val ANNOTATION = LibraryGroup("androidx.annotation", null)
     val APPCOMPAT = LibraryGroup("androidx.appcompat", null)
     val APPSEARCH = LibraryGroup("androidx.appsearch", LibraryVersions.APPSEARCH)
diff --git a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
index 4dce081..59d081d 100644
--- a/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
+++ b/buildSrc/src/main/kotlin/androidx/build/LibraryVersions.kt
@@ -22,8 +22,6 @@
 object LibraryVersions {
     val ACTIVITY = Version("1.2.0-alpha03")
     val ADS_IDENTIFIER = Version("1.0.0-alpha04")
-    val ANIMATOR = Version("1.0.0-alpha01")
-    val ANIMATOR_TESTING = Version("1.0.0-alpha01")
     val ANNOTATION = Version("1.2.0-alpha01")
     val ANNOTATION_EXPERIMENTAL = Version("1.1.0-alpha01")
     val APPCOMPAT = Version("1.2.0-beta01")
@@ -48,6 +46,8 @@
     val CONTENTACCESS = Version("1.0.0-alpha01")
     val COORDINATORLAYOUT = Version("1.2.0-alpha01")
     val CORE = Version("1.3.0-beta01")
+    val CORE_ANIMATION = Version("1.0.0-alpha01")
+    val CORE_ANIMATION_TESTING = Version("1.0.0-alpha01")
     val CORE_ROLE = Version("1.1.0-alpha01")
     val CURSORADAPTER = Version("1.1.0-alpha01")
     val CUSTOMVIEW = Version("1.1.0-beta01")
diff --git a/core/core-animation-integration-tests/OWNERS b/core/core-animation-integration-tests/OWNERS
new file mode 100644
index 0000000..9995116
--- /dev/null
+++ b/core/core-animation-integration-tests/OWNERS
@@ -0,0 +1,2 @@
[email protected]
[email protected]
diff --git a/animator/integration-tests/testapp/build.gradle b/core/core-animation-integration-tests/testapp/build.gradle
similarity index 90%
rename from animator/integration-tests/testapp/build.gradle
rename to core/core-animation-integration-tests/testapp/build.gradle
index 2a8d320..5e2863f 100644
--- a/animator/integration-tests/testapp/build.gradle
+++ b/core/core-animation-integration-tests/testapp/build.gradle
@@ -24,8 +24,8 @@
 dependencies {
     api("androidx.annotation:annotation:1.1.0")
     implementation("androidx.core:core:1.1.0")
-    implementation(project(":animator:animator"))
-    implementation(project(":animator:animator-testing"))
+    implementation(project(":core:core-animation"))
+    implementation(project(":core:core-animation-testing"))
 
     implementation(ANDROIDX_TEST_EXT_JUNIT, libs.exclude_for_espresso)
     implementation(ANDROIDX_TEST_CORE, libs.exclude_for_espresso)
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorInflaterTest.java
similarity index 98%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorInflaterTest.java
index e6cf411..a434d99 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorInflaterTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorInflaterTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -24,7 +24,7 @@
 import android.os.Build;
 import android.view.InflateException;
 
-import androidx.animator.testapp.test.R;
+import androidx.core.animation.testapp.test.R;
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorSetTest.java
similarity index 98%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorSetTest.java
index 54c6f89..d51c30b 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/AnimatorSetTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/AnimatorSetTest.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
-import static androidx.animator.AnimatorSetTest.AnimEvent.EventType.END;
-import static androidx.animator.AnimatorSetTest.AnimEvent.EventType.START;
+import static androidx.core.animation.AnimatorSetTest.AnimEvent.EventType.END;
+import static androidx.core.animation.AnimatorSetTest.AnimEvent.EventType.START;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/EvaluatorTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/EvaluatorTest.java
similarity index 98%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/EvaluatorTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/EvaluatorTest.java
index e813161..9e8b958 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/EvaluatorTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/EvaluatorTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -30,7 +30,7 @@
 import org.junit.runner.RunWith;
 
 /**
- * Tests for the various Evaluator classes in androidx.animator.
+ * Tests for the various Evaluator classes in androidx.core.animation.
  */
 @SmallTest
 @RunWith(AndroidJUnit4.class)
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/InterpolatorTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/InterpolatorTest.java
similarity index 99%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/InterpolatorTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/InterpolatorTest.java
index 1038ccb..466066e 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/InterpolatorTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/InterpolatorTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertTrue;
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/ObjectAnimatorTest.java
similarity index 99%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/ObjectAnimatorTest.java
index ec2a2f6..453800e 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/ObjectAnimatorTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/ObjectAnimatorTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import static junit.framework.TestCase.assertEquals;
 import static junit.framework.TestCase.assertFalse;
diff --git a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/PropertyValuesHolderTest.java b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/PropertyValuesHolderTest.java
similarity index 98%
rename from animator/integration-tests/testapp/src/androidTest/java/androidx/animator/PropertyValuesHolderTest.java
rename to core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/PropertyValuesHolderTest.java
index 199c03f..fe64b8b 100644
--- a/animator/integration-tests/testapp/src/androidTest/java/androidx/animator/PropertyValuesHolderTest.java
+++ b/core/core-animation-integration-tests/testapp/src/androidTest/java/androidx/core/animation/PropertyValuesHolderTest.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.core.Is.is;
diff --git a/animator/integration-tests/testapp/src/androidTest/res/animator/animator_along_path.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/animator/animator_along_path.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/animator/animator_along_path.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/animator/animator_along_path.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/animator/animator_set_with_dimens.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/animator/animator_set_with_dimens.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/animator/animator_set_with_dimens.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/animator/animator_set_with_dimens.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/control_points_interpolator.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/control_points_interpolator.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/control_points_interpolator.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/control_points_interpolator.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/path_interpolator.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/path_interpolator.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/path_interpolator.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/path_interpolator.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/single_control_point_interpolator.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/single_control_point_interpolator.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/single_control_point_interpolator.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/single_control_point_interpolator.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_point_interpolator.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_point_interpolator.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_point_interpolator.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_point_interpolator.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_points_interpolator.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_points_interpolator.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_points_interpolator.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_control_points_interpolator.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_1.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_1.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_1.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_1.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_2.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_2.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_2.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_2.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_3.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_3.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_3.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/interpolator/wrong_path_interpolator_3.xml
diff --git a/animator/integration-tests/testapp/src/androidTest/res/values/dimens.xml b/core/core-animation-integration-tests/testapp/src/androidTest/res/values/dimens.xml
similarity index 100%
rename from animator/integration-tests/testapp/src/androidTest/res/values/dimens.xml
rename to core/core-animation-integration-tests/testapp/src/androidTest/res/values/dimens.xml
diff --git a/animator/animator-testing/src/main/AndroidManifest.xml b/core/core-animation-integration-tests/testapp/src/main/AndroidManifest.xml
similarity index 92%
rename from animator/animator-testing/src/main/AndroidManifest.xml
rename to core/core-animation-integration-tests/testapp/src/main/AndroidManifest.xml
index 49d41f7..3704989 100644
--- a/animator/animator-testing/src/main/AndroidManifest.xml
+++ b/core/core-animation-integration-tests/testapp/src/main/AndroidManifest.xml
@@ -13,4 +13,4 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<manifest package="androidx.animator.testing" />
+<manifest package="androidx.core.animation.testapp" />
diff --git a/core/core-animation-testing/OWNERS b/core/core-animation-testing/OWNERS
new file mode 100644
index 0000000..9995116
--- /dev/null
+++ b/core/core-animation-testing/OWNERS
@@ -0,0 +1,2 @@
[email protected]
[email protected]
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/1.0.0-alpha01.txt
similarity index 90%
rename from animator/animator-testing/api/1.0.0-alpha01.txt
rename to core/core-animation-testing/api/1.0.0-alpha01.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/1.0.0-alpha01.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/current.txt
similarity index 90%
copy from animator/animator-testing/api/1.0.0-alpha01.txt
copy to core/core-animation-testing/api/current.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/current.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/public_plus_experimental_1.0.0-alpha01.txt
similarity index 90%
copy from animator/animator-testing/api/1.0.0-alpha01.txt
copy to core/core-animation-testing/api/public_plus_experimental_1.0.0-alpha01.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/public_plus_experimental_1.0.0-alpha01.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/public_plus_experimental_current.txt
similarity index 90%
copy from animator/animator-testing/api/1.0.0-alpha01.txt
copy to core/core-animation-testing/api/public_plus_experimental_current.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/public_plus_experimental_current.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/api/res-1.0.0-alpha01.txt b/core/core-animation-testing/api/res-1.0.0-alpha01.txt
similarity index 100%
rename from animator/animator-testing/api/res-1.0.0-alpha01.txt
rename to core/core-animation-testing/api/res-1.0.0-alpha01.txt
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/restricted_1.0.0-alpha01.txt
similarity index 90%
copy from animator/animator-testing/api/1.0.0-alpha01.txt
copy to core/core-animation-testing/api/restricted_1.0.0-alpha01.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/restricted_1.0.0-alpha01.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/api/1.0.0-alpha01.txt b/core/core-animation-testing/api/restricted_current.txt
similarity index 90%
copy from animator/animator-testing/api/1.0.0-alpha01.txt
copy to core/core-animation-testing/api/restricted_current.txt
index 91745ad..be788e4 100644
--- a/animator/animator-testing/api/1.0.0-alpha01.txt
+++ b/core/core-animation-testing/api/restricted_current.txt
@@ -1,5 +1,5 @@
 // Signature format: 3.0
-package androidx.animator {
+package androidx.core.animation {
 
   public class AnimatorTestRule implements org.junit.rules.TestRule {
     ctor public AnimatorTestRule();
diff --git a/animator/animator-testing/build.gradle b/core/core-animation-testing/build.gradle
similarity index 89%
rename from animator/animator-testing/build.gradle
rename to core/core-animation-testing/build.gradle
index c229f56..79a359e 100644
--- a/animator/animator-testing/build.gradle
+++ b/core/core-animation-testing/build.gradle
@@ -27,7 +27,7 @@
 dependencies {
     api("androidx.annotation:annotation:1.1.0")
     implementation("androidx.core:core:1.1.0")
-    implementation(project(":animator:animator"))
+    implementation(project(":core:core-animation"))
     implementation(ANDROIDX_TEST_EXT_JUNIT)
     implementation(ANDROIDX_TEST_CORE)
 }
@@ -35,8 +35,8 @@
 androidx {
     name = "Android Support Animator Testing"
     publish = Publish.NONE
-    mavenVersion = LibraryVersions.ANIMATOR_TESTING
-    mavenGroup = LibraryGroups.ANIMATOR
+    mavenVersion = LibraryVersions.CORE_ANIMATION_TESTING
+    mavenGroup = LibraryGroups.CORE
     inceptionYear = "2018"
     description = "This library provides functionalities for testing animations for API 14 and above."
 }
diff --git a/animator/animator-testing/lint-baseline.xml b/core/core-animation-testing/lint-baseline.xml
similarity index 86%
rename from animator/animator-testing/lint-baseline.xml
rename to core/core-animation-testing/lint-baseline.xml
index 9351f84..3906375 100644
--- a/animator/animator-testing/lint-baseline.xml
+++ b/core/core-animation-testing/lint-baseline.xml
@@ -7,7 +7,7 @@
         errorLine1="    public Statement apply(final Statement base, Description description) {"
         errorLine2="           ~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/AnimationTestRule.java"
+            file="src/main/java/androidx/core/animation/AnimationTestRule.java"
             line="44"
             column="12"/>
     </issue>
@@ -18,7 +18,7 @@
         errorLine1="    public Statement apply(final Statement base, Description description) {"
         errorLine2="                                 ~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/AnimationTestRule.java"
+            file="src/main/java/androidx/core/animation/AnimationTestRule.java"
             line="44"
             column="34"/>
     </issue>
@@ -29,7 +29,7 @@
         errorLine1="    public Statement apply(final Statement base, Description description) {"
         errorLine2="                                                 ~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/AnimationTestRule.java"
+            file="src/main/java/androidx/core/animation/AnimationTestRule.java"
             line="44"
             column="50"/>
     </issue>
diff --git a/animator/animator-testing/src/main/AndroidManifest.xml b/core/core-animation-testing/src/main/AndroidManifest.xml
similarity index 92%
copy from animator/animator-testing/src/main/AndroidManifest.xml
copy to core/core-animation-testing/src/main/AndroidManifest.xml
index 49d41f7..6f3cf86 100644
--- a/animator/animator-testing/src/main/AndroidManifest.xml
+++ b/core/core-animation-testing/src/main/AndroidManifest.xml
@@ -13,4 +13,4 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<manifest package="androidx.animator.testing" />
+<manifest package="androidx.core.animation.testing" />
diff --git a/animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java b/core/core-animation-testing/src/main/java/androidx/core/animation/AnimatorTestRule.java
similarity index 98%
rename from animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java
rename to core/core-animation-testing/src/main/java/androidx/core/animation/AnimatorTestRule.java
index 82b09c5..26ff94c 100644
--- a/animator/animator-testing/src/main/java/androidx/animator/AnimatorTestRule.java
+++ b/core/core-animation-testing/src/main/java/androidx/core/animation/AnimatorTestRule.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.os.Looper;
 import android.os.SystemClock;
diff --git a/core/core-animation/OWNERS b/core/core-animation/OWNERS
new file mode 100644
index 0000000..9995116
--- /dev/null
+++ b/core/core-animation/OWNERS
@@ -0,0 +1,2 @@
[email protected]
[email protected]
diff --git a/core/core-animation/api/1.0.0-alpha01.txt b/core/core-animation/api/1.0.0-alpha01.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/1.0.0-alpha01.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/core/core-animation/api/api_lint.ignore b/core/core-animation/api/api_lint.ignore
new file mode 100644
index 0000000..3b4ea75
--- /dev/null
+++ b/core/core-animation/api/api_lint.ignore
@@ -0,0 +1,3 @@
+// Baseline format: 1.0
+BuilderSetStyle: androidx.core.animation.AnimatorSet.Builder#with(androidx.core.animation.Animator):
+    Builder methods names should use setFoo() style: method androidx.core.animation.AnimatorSet.Builder.with(androidx.core.animation.Animator)
diff --git a/core/core-animation/api/current.txt b/core/core-animation/api/current.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/current.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/core/core-animation/api/public_plus_experimental_1.0.0-alpha01.txt b/core/core-animation/api/public_plus_experimental_1.0.0-alpha01.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/public_plus_experimental_1.0.0-alpha01.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/core/core-animation/api/public_plus_experimental_current.txt b/core/core-animation/api/public_plus_experimental_current.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/public_plus_experimental_current.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/animator/animator/api/res-1.0.0-alpha01.txt b/core/core-animation/api/res-1.0.0-alpha01.txt
similarity index 100%
rename from animator/animator/api/res-1.0.0-alpha01.txt
rename to core/core-animation/api/res-1.0.0-alpha01.txt
diff --git a/core/core-animation/api/restricted_1.0.0-alpha01.txt b/core/core-animation/api/restricted_1.0.0-alpha01.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/restricted_1.0.0-alpha01.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/core/core-animation/api/restricted_current.txt b/core/core-animation/api/restricted_current.txt
new file mode 100644
index 0000000..b5aa325
--- /dev/null
+++ b/core/core-animation/api/restricted_current.txt
@@ -0,0 +1,372 @@
+// Signature format: 3.0
+package androidx.core.animation {
+
+  public class AccelerateDecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateDecelerateInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AccelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AccelerateInterpolator();
+    ctor public AccelerateInterpolator(float);
+    ctor public AccelerateInterpolator(android.content.Context, android.util.AttributeSet);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Animator implements java.lang.Cloneable {
+    ctor public Animator();
+    method public void addListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void addPauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void addUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void cancel();
+    method public androidx.core.animation.Animator clone();
+    method public void end();
+    method public abstract long getDuration();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public abstract long getStartDelay();
+    method public long getTotalDuration();
+    method public boolean isPaused();
+    method public abstract boolean isRunning();
+    method public boolean isStarted();
+    method public void pause();
+    method public void removeAllListeners();
+    method public void removeAllUpdateListeners();
+    method public void removeListener(androidx.core.animation.Animator.AnimatorListener);
+    method public void removePauseListener(androidx.core.animation.Animator.AnimatorPauseListener);
+    method public void removeUpdateListener(androidx.core.animation.Animator.AnimatorUpdateListener);
+    method public void resume();
+    method public abstract androidx.core.animation.Animator setDuration(@IntRange(from=0) long);
+    method public abstract void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setStartDelay(@IntRange(from=0) long);
+    method public void setTarget(Object?);
+    method public void setupEndValues();
+    method public void setupStartValues();
+    method public void start();
+    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
+  }
+
+  public static interface Animator.AnimatorListener {
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public default void onAnimationEnd(androidx.core.animation.Animator, boolean);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public default void onAnimationStart(androidx.core.animation.Animator, boolean);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorPauseListener {
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+  }
+
+  public static interface Animator.AnimatorUpdateListener {
+    method public void onAnimationUpdate(androidx.core.animation.Animator);
+  }
+
+  public class AnimatorInflater {
+    method public static androidx.core.animation.Animator loadAnimator(android.content.Context, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Animator loadAnimator(android.content.res.Resources, android.content.res.Resources.Theme?, @AnimatorRes int) throws android.content.res.Resources.NotFoundException;
+    method public static androidx.core.animation.Interpolator loadInterpolator(android.content.Context, @AnimatorRes @InterpolatorRes int) throws android.content.res.Resources.NotFoundException;
+  }
+
+  public abstract class AnimatorListenerAdapter implements androidx.core.animation.Animator.AnimatorListener androidx.core.animation.Animator.AnimatorPauseListener {
+    ctor public AnimatorListenerAdapter();
+    method public void onAnimationCancel(androidx.core.animation.Animator);
+    method public void onAnimationEnd(androidx.core.animation.Animator);
+    method public void onAnimationPause(androidx.core.animation.Animator);
+    method public void onAnimationRepeat(androidx.core.animation.Animator);
+    method public void onAnimationResume(androidx.core.animation.Animator);
+    method public void onAnimationStart(androidx.core.animation.Animator);
+  }
+
+  public final class AnimatorSet extends androidx.core.animation.Animator {
+    ctor public AnimatorSet();
+    method public boolean canReverse();
+    method public androidx.core.animation.AnimatorSet clone();
+    method public java.util.ArrayList<androidx.core.animation.Animator!> getChildAnimations();
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public long getStartDelay();
+    method public boolean isRunning();
+    method public androidx.core.animation.AnimatorSet.Builder play(androidx.core.animation.Animator);
+    method public void playSequentially(androidx.core.animation.Animator!...);
+    method public void playSequentially(java.util.List<androidx.core.animation.Animator!>);
+    method public void playTogether(androidx.core.animation.Animator!...);
+    method public void playTogether(java.util.Collection<androidx.core.animation.Animator!>);
+    method public void reverse();
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.AnimatorSet setDuration(long);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setStartDelay(long);
+  }
+
+  public class AnimatorSet.Builder {
+    method public androidx.core.animation.AnimatorSet.Builder after(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder after(long);
+    method public androidx.core.animation.AnimatorSet.Builder before(androidx.core.animation.Animator);
+    method public androidx.core.animation.AnimatorSet.Builder with(androidx.core.animation.Animator);
+  }
+
+  public class AnticipateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateInterpolator();
+    ctor public AnticipateInterpolator(float);
+    ctor public AnticipateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class AnticipateOvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public AnticipateOvershootInterpolator();
+    ctor public AnticipateOvershootInterpolator(float);
+    ctor public AnticipateOvershootInterpolator(float, float);
+    ctor public AnticipateOvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ArgbEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.ArgbEvaluator getInstance();
+  }
+
+  public abstract class BidirectionalTypeConverter<T, V> extends androidx.core.animation.TypeConverter<T,V> {
+    ctor public BidirectionalTypeConverter(Class<T!>, Class<V!>);
+    method public abstract T convertBack(V);
+    method public androidx.core.animation.BidirectionalTypeConverter<V!,T!> invert();
+  }
+
+  public class BounceInterpolator implements androidx.core.animation.Interpolator {
+    ctor public BounceInterpolator();
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class CycleInterpolator implements androidx.core.animation.Interpolator {
+    ctor public CycleInterpolator(float);
+    ctor public CycleInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class DecelerateInterpolator implements androidx.core.animation.Interpolator {
+    ctor public DecelerateInterpolator();
+    ctor public DecelerateInterpolator(float);
+    ctor public DecelerateInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class FloatArrayEvaluator implements androidx.core.animation.TypeEvaluator<float[]> {
+    ctor public FloatArrayEvaluator();
+    ctor public FloatArrayEvaluator(float[]?);
+    method public float[] evaluate(float, float[], float[]);
+  }
+
+  public final class FloatEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Float> {
+    method public Float evaluate(float, Float, Float);
+    method public static androidx.core.animation.FloatEvaluator getInstance();
+  }
+
+  public abstract class FloatProperty<T> extends android.util.Property<T,java.lang.Float> {
+    ctor public FloatProperty(String);
+    ctor public FloatProperty();
+    method public final void set(T, Float);
+    method public abstract void setValue(T, float);
+  }
+
+  public class IntArrayEvaluator implements androidx.core.animation.TypeEvaluator<int[]> {
+    ctor public IntArrayEvaluator();
+    ctor public IntArrayEvaluator(int[]?);
+    method public int[] evaluate(float, int[], int[]);
+  }
+
+  public class IntEvaluator implements androidx.core.animation.TypeEvaluator<java.lang.Integer> {
+    method public Integer evaluate(float, Integer, Integer);
+    method public static androidx.core.animation.IntEvaluator getInstance();
+  }
+
+  public abstract class IntProperty<T> extends android.util.Property<T,java.lang.Integer> {
+    ctor public IntProperty(String);
+    ctor public IntProperty();
+    method public final void set(T, Integer);
+    method public abstract void setValue(T, int);
+  }
+
+  public interface Interpolator {
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public abstract class Keyframe<T> implements java.lang.Cloneable {
+    ctor public Keyframe();
+    method public abstract androidx.core.animation.Keyframe<T!> clone();
+    method @FloatRange(from=0, to=1) public float getFraction();
+    method public androidx.core.animation.Interpolator? getInterpolator();
+    method public Class<?> getType();
+    method public abstract T? getValue();
+    method public boolean hasValue();
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float, float);
+    method public static androidx.core.animation.Keyframe<java.lang.Float!> ofFloat(@FloatRange(from=0, to=1) float);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float, int);
+    method public static androidx.core.animation.Keyframe<java.lang.Integer!> ofInt(@FloatRange(from=0, to=1) float);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float, T?);
+    method public static <T> androidx.core.animation.Keyframe<T!> ofObject(@FloatRange(from=0, to=1) float);
+    method public void setFraction(@FloatRange(from=0, to=1) float);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public abstract void setValue(T?);
+  }
+
+  public class LinearInterpolator implements androidx.core.animation.Interpolator {
+    ctor public LinearInterpolator();
+    ctor public LinearInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0, to=1) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public final class ObjectAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public ObjectAnimator();
+    method public androidx.core.animation.ObjectAnimator clone();
+    method public String getPropertyName();
+    method public Object? getTarget();
+    method public static androidx.core.animation.ObjectAnimator ofArgb(Object, String, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofArgb(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String, float...);
+    method public static androidx.core.animation.ObjectAnimator ofFloat(Object, String?, String?, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>, float...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofFloat(T, android.util.Property<T!,java.lang.Float!>?, android.util.Property<T!,java.lang.Float!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, int...);
+    method public static androidx.core.animation.ObjectAnimator ofInt(Object, String, String, android.graphics.Path);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>, int...);
+    method public static <T> androidx.core.animation.ObjectAnimator ofInt(T, android.util.Property<T!,java.lang.Integer!>?, android.util.Property<T!,java.lang.Integer!>?, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, float[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiFloat(Object, String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, int[]![]);
+    method public static androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.ObjectAnimator ofMultiInt(Object, String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ObjectAnimator ofObject(Object, String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>?, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V, P> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,P!>, androidx.core.animation.TypeConverter<V!,P!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method public static <T, V> androidx.core.animation.ObjectAnimator ofObject(T, android.util.Property<T!,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public static androidx.core.animation.ObjectAnimator ofPropertyValuesHolder(Object, androidx.core.animation.PropertyValuesHolder!...);
+    method public void setAutoCancel(boolean);
+    method public androidx.core.animation.ObjectAnimator setDuration(long);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class OvershootInterpolator implements androidx.core.animation.Interpolator {
+    ctor public OvershootInterpolator();
+    ctor public OvershootInterpolator(float);
+    ctor public OvershootInterpolator(android.content.Context, android.util.AttributeSet?);
+    method @FloatRange(from=0) public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PathInterpolator implements androidx.core.animation.Interpolator {
+    ctor public PathInterpolator(android.graphics.Path);
+    ctor public PathInterpolator(float, float);
+    ctor public PathInterpolator(float, float, float, float);
+    ctor public PathInterpolator(android.content.Context, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    ctor public PathInterpolator(android.content.res.Resources, android.content.res.Resources.Theme?, android.util.AttributeSet?, org.xmlpull.v1.XmlPullParser);
+    method public float getInterpolation(@FloatRange(from=0, to=1) float);
+  }
+
+  public class PointFEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.PointF> {
+    ctor public PointFEvaluator();
+    ctor public PointFEvaluator(android.graphics.PointF);
+    method public android.graphics.PointF evaluate(float, android.graphics.PointF, android.graphics.PointF);
+  }
+
+  public class PropertyValuesHolder implements java.lang.Cloneable {
+    method public androidx.core.animation.PropertyValuesHolder clone();
+    method public String getPropertyName();
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(String, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofFloat(android.util.Property<?,java.lang.Float!>, float...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(String, int...);
+    method public static androidx.core.animation.PropertyValuesHolder ofInt(android.util.Property<?,java.lang.Integer!>, int...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(String, androidx.core.animation.Keyframe!...);
+    method @java.lang.SafeVarargs public static androidx.core.animation.PropertyValuesHolder ofKeyframe(android.util.Property, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, float[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<V!,float[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiFloat(String, androidx.core.animation.TypeConverter<T!,float[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, int[]![]);
+    method public static androidx.core.animation.PropertyValuesHolder ofMultiInt(String, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<V!,int[]!>, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T> androidx.core.animation.PropertyValuesHolder ofMultiInt(String, androidx.core.animation.TypeConverter<T!,int[]!>, androidx.core.animation.TypeEvaluator<T!>, androidx.core.animation.Keyframe!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.PropertyValuesHolder ofObject(String, androidx.core.animation.TypeConverter<android.graphics.PointF!,?>, android.graphics.Path);
+    method @java.lang.SafeVarargs public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property, androidx.core.animation.TypeEvaluator<V!>, V!...);
+    method @java.lang.SafeVarargs public static <T, V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<T!,V!>, androidx.core.animation.TypeEvaluator<T!>, T!...);
+    method public static <V> androidx.core.animation.PropertyValuesHolder ofObject(android.util.Property<?,V!>, androidx.core.animation.TypeConverter<android.graphics.PointF!,V!>, android.graphics.Path);
+    method public void setConverter(androidx.core.animation.TypeConverter);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public void setIntValues(int...);
+    method public void setKeyframes(androidx.core.animation.Keyframe!...);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setProperty(android.util.Property);
+    method public void setPropertyName(String);
+  }
+
+  public class RectEvaluator implements androidx.core.animation.TypeEvaluator<android.graphics.Rect> {
+    ctor public RectEvaluator();
+    ctor public RectEvaluator(android.graphics.Rect);
+    method public android.graphics.Rect evaluate(float, android.graphics.Rect, android.graphics.Rect);
+  }
+
+  public class TimeAnimator extends androidx.core.animation.ValueAnimator {
+    ctor public TimeAnimator();
+    method public void setTimeListener(androidx.core.animation.TimeAnimator.TimeListener?);
+  }
+
+  public static interface TimeAnimator.TimeListener {
+    method public void onTimeUpdate(androidx.core.animation.TimeAnimator, long, long);
+  }
+
+  public abstract class TypeConverter<T, V> {
+    ctor public TypeConverter(Class<T!>, Class<V!>);
+    method public abstract V convert(T);
+  }
+
+  public interface TypeEvaluator<T> {
+    method public T evaluate(float, T, T);
+  }
+
+  public class ValueAnimator extends androidx.core.animation.Animator {
+    ctor public ValueAnimator();
+    method public static boolean areAnimatorsEnabled();
+    method public androidx.core.animation.ValueAnimator clone();
+    method public float getAnimatedFraction();
+    method public Object getAnimatedValue();
+    method public Object? getAnimatedValue(String);
+    method public long getCurrentPlayTime();
+    method public long getDuration();
+    method public static long getFrameDelay();
+    method public String getNameForTrace();
+    method public int getRepeatCount();
+    method public int getRepeatMode();
+    method public long getStartDelay();
+    method public androidx.core.animation.PropertyValuesHolder![] getValues();
+    method public boolean isRunning();
+    method public static androidx.core.animation.ValueAnimator ofArgb(int...);
+    method public static androidx.core.animation.ValueAnimator ofFloat(float...);
+    method public static androidx.core.animation.ValueAnimator ofInt(int...);
+    method public static androidx.core.animation.ValueAnimator ofObject(androidx.core.animation.TypeEvaluator, java.lang.Object!...);
+    method public static androidx.core.animation.ValueAnimator ofPropertyValuesHolder(androidx.core.animation.PropertyValuesHolder!...);
+    method public void reverse();
+    method public void setCurrentFraction(float);
+    method public void setCurrentPlayTime(long);
+    method public androidx.core.animation.ValueAnimator setDuration(long);
+    method public void setEvaluator(androidx.core.animation.TypeEvaluator);
+    method public void setFloatValues(float...);
+    method public static void setFrameDelay(long);
+    method public void setIntValues(int...);
+    method public void setInterpolator(androidx.core.animation.Interpolator?);
+    method public void setNameForTrace(String);
+    method public void setObjectValues(java.lang.Object!...);
+    method public void setRepeatCount(int);
+    method public void setRepeatMode(int);
+    method public void setStartDelay(long);
+    method public void setValues(androidx.core.animation.PropertyValuesHolder!...);
+    field public static final int INFINITE = -1; // 0xffffffff
+    field public static final int RESTART = 1; // 0x1
+    field public static final int REVERSE = 2; // 0x2
+  }
+
+}
+
diff --git a/animator/animator/build.gradle b/core/core-animation/build.gradle
similarity index 91%
rename from animator/animator/build.gradle
rename to core/core-animation/build.gradle
index 27cba26..1ee2265 100644
--- a/animator/animator/build.gradle
+++ b/core/core-animation/build.gradle
@@ -34,10 +34,10 @@
 }
 
 androidx {
-    name = "Android Support Animator"
+    name = "Android Support Animation"
     publish = Publish.NONE
-    mavenVersion = LibraryVersions.ANIMATOR
-    mavenGroup = LibraryGroups.ANIMATOR
+    mavenVersion = LibraryVersions.CORE_ANIMATION
+    mavenGroup = LibraryGroups.CORE
     inceptionYear = "2018"
     description = "This library provides functionalities for creating and manipulating animations for API 14 and above."
 }
diff --git a/animator/animator/lint-baseline.xml b/core/core-animation/lint-baseline.xml
similarity index 67%
rename from animator/animator/lint-baseline.xml
rename to core/core-animation/lint-baseline.xml
index 614a31fe..66be42c 100644
--- a/animator/animator/lint-baseline.xml
+++ b/core/core-animation/lint-baseline.xml
@@ -7,154 +7,154 @@
         errorLine1="    public PropertyValuesHolder[] getValues() {"
         errorLine2="                                  ~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ValueAnimator.java"
+            file="src/main/java/androidx/core/animation/ValueAnimator.java"
             line="513"
             column="35"/>
         <location
-            file="src/main/java/androidx/animator/ValueAnimator.java"
+            file="src/main/java/androidx/core/animation/ValueAnimator.java"
             line="492"
             column="17"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.animator.ObjectAnimator.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.core.animation.ObjectAnimator.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;T> evaluator, @NonNull T... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ObjectAnimator.java"
+            file="src/main/java/androidx/core/animation/ObjectAnimator.java"
             line="386"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.animator.ObjectAnimator.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.core.animation.ObjectAnimator.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;T> evaluator, @NonNull T... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ObjectAnimator.java"
+            file="src/main/java/androidx/core/animation/ObjectAnimator.java"
             line="601"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator evaluator, @NonNull Object... values) {"
         errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ObjectAnimator.java"
+            file="src/main/java/androidx/core/animation/ObjectAnimator.java"
             line="632"
             column="47"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull V... values) {"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ObjectAnimator.java"
+            file="src/main/java/androidx/core/animation/ObjectAnimator.java"
             line="689"
             column="13"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.animator.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 4, &quot;evaluator&quot;, in androidx.core.animation.ObjectAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;V> evaluator, @NonNull V... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ObjectAnimator.java"
+            file="src/main/java/androidx/core/animation/ObjectAnimator.java"
             line="725"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;V> evaluator, @NonNull V... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="247"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofMultiInt) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull Keyframe... values) {"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="272"
             column="13"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;V> evaluator, @NonNull V... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="378"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofMultiFloat) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull Keyframe... values) {"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="404"
             column="13"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 2, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 2, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator evaluator, @NonNull Object... values) {"
         errorLine2="                                              ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="428"
             column="47"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 2, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 2, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull TypeEvaluator&lt;V> evaluator, @NonNull V... values) {"
         errorLine2="                                                 ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="481"
             column="50"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.animator.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 3, &quot;evaluator&quot;, in androidx.core.animation.PropertyValuesHolder.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull T... values) {"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/PropertyValuesHolder.java"
+            file="src/main/java/androidx/core/animation/PropertyValuesHolder.java"
             line="516"
             column="13"/>
     </issue>
 
     <issue
         id="LambdaLast"
-        message="Functional interface parameters (such as parameter 1, &quot;evaluator&quot;, in androidx.animator.ValueAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
+        message="Functional interface parameters (such as parameter 1, &quot;evaluator&quot;, in androidx.core.animation.ValueAnimator.ofObject) should be last to improve Kotlin interoperability; see https://kotlinlang.org/docs/reference/java-interop.html#sam-conversions"
         errorLine1="            @NonNull Object... values) {"
         errorLine2="            ~~~~~~~~~~~~~~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ValueAnimator.java"
+            file="src/main/java/androidx/core/animation/ValueAnimator.java"
             line="384"
             column="13"/>
     </issue>
@@ -165,7 +165,7 @@
         errorLine1="    public AccelerateInterpolator(Context context, AttributeSet attrs) {"
         errorLine2="                                  ~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/AccelerateInterpolator.java"
+            file="src/main/java/androidx/core/animation/AccelerateInterpolator.java"
             line="53"
             column="35"/>
     </issue>
@@ -176,7 +176,7 @@
         errorLine1="    public AccelerateInterpolator(Context context, AttributeSet attrs) {"
         errorLine2="                                                   ~~~~~~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/AccelerateInterpolator.java"
+            file="src/main/java/androidx/core/animation/AccelerateInterpolator.java"
             line="53"
             column="52"/>
     </issue>
@@ -187,7 +187,7 @@
         errorLine1="    public final void set(T object, Integer value) {"
         errorLine2="                          ~">
         <location
-            file="src/main/java/androidx/animator/IntProperty.java"
+            file="src/main/java/androidx/core/animation/IntProperty.java"
             line="63"
             column="27"/>
     </issue>
@@ -198,7 +198,7 @@
         errorLine1="    public final void set(T object, Integer value) {"
         errorLine2="                                    ~~~~~~~">
         <location
-            file="src/main/java/androidx/animator/IntProperty.java"
+            file="src/main/java/androidx/core/animation/IntProperty.java"
             line="63"
             column="37"/>
     </issue>
@@ -209,7 +209,7 @@
         errorLine1="    public Object getAnimatedValue(String propertyName) {"
         errorLine2="           ~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ValueAnimator.java"
+            file="src/main/java/androidx/core/animation/ValueAnimator.java"
             line="834"
             column="12"/>
     </issue>
@@ -220,7 +220,7 @@
         errorLine1="    public Object getAnimatedValue(String propertyName) {"
         errorLine2="                                   ~~~~~~">
         <location
-            file="src/main/java/androidx/animator/ValueAnimator.java"
+            file="src/main/java/androidx/core/animation/ValueAnimator.java"
             line="834"
             column="36"/>
     </issue>
diff --git a/animator/animator/src/main/AndroidManifest.xml b/core/core-animation/src/main/AndroidManifest.xml
similarity index 93%
rename from animator/animator/src/main/AndroidManifest.xml
rename to core/core-animation/src/main/AndroidManifest.xml
index 9412023..54c01ff 100644
--- a/animator/animator/src/main/AndroidManifest.xml
+++ b/core/core-animation/src/main/AndroidManifest.xml
@@ -13,4 +13,4 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<manifest package="androidx.animator" />
+<manifest package="androidx.core.animation" />
diff --git a/animator/animator/src/main/java/androidx/animator/AccelerateDecelerateInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/AccelerateDecelerateInterpolator.java
similarity index 96%
rename from animator/animator/src/main/java/androidx/animator/AccelerateDecelerateInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/AccelerateDecelerateInterpolator.java
index ee019a2..452f4ef 100644
--- a/animator/animator/src/main/java/androidx/animator/AccelerateDecelerateInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AccelerateDecelerateInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.FloatRange;
 
diff --git a/animator/animator/src/main/java/androidx/animator/AccelerateInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/AccelerateInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/AccelerateInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/AccelerateInterpolator.java
index 809fbb9..bb2b79f 100644
--- a/animator/animator/src/main/java/androidx/animator/AccelerateInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AccelerateInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/AndroidResources.java b/core/core-animation/src/main/java/androidx/core/animation/AndroidResources.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/AndroidResources.java
rename to core/core-animation/src/main/java/androidx/core/animation/AndroidResources.java
index a6095b5..01899e9 100644
--- a/animator/animator/src/main/java/androidx/animator/AndroidResources.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AndroidResources.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.StyleableRes;
 
diff --git a/animator/animator/src/main/java/androidx/animator/AnimationHandler.java b/core/core-animation/src/main/java/androidx/core/animation/AnimationHandler.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/AnimationHandler.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnimationHandler.java
index 1af97ff..ea852ca 100644
--- a/animator/animator/src/main/java/androidx/animator/AnimationHandler.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnimationHandler.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.os.Build;
 import android.os.Handler;
diff --git a/animator/animator/src/main/java/androidx/animator/Animator.java b/core/core-animation/src/main/java/androidx/core/animation/Animator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/Animator.java
rename to core/core-animation/src/main/java/androidx/core/animation/Animator.java
index 336f30d..b4c7171 100644
--- a/animator/animator/src/main/java/androidx/animator/Animator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/Animator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 
@@ -220,7 +220,7 @@
      * The interpolator used in calculating the elapsed fraction of the
      * animation. The interpolator determines whether the animation runs with
      * linear or non-linear motion, such as acceleration and deceleration. The
-     * default value is {@link androidx.animator.AccelerateDecelerateInterpolator}.
+     * default value is {@link androidx.core.animation.AccelerateDecelerateInterpolator}.
      *
      * @param value the interpolator to be used by this animation, or {@code null} to use the
      *              default one.
diff --git a/animator/animator/src/main/java/androidx/animator/AnimatorInflater.java b/core/core-animation/src/main/java/androidx/core/animation/AnimatorInflater.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/AnimatorInflater.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnimatorInflater.java
index e6961d0..6185835 100644
--- a/animator/animator/src/main/java/androidx/animator/AnimatorInflater.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnimatorInflater.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/AnimatorListenerAdapter.java b/core/core-animation/src/main/java/androidx/core/animation/AnimatorListenerAdapter.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/AnimatorListenerAdapter.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnimatorListenerAdapter.java
index 6ee1112..1d660d7 100644
--- a/animator/animator/src/main/java/androidx/animator/AnimatorListenerAdapter.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnimatorListenerAdapter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 
diff --git a/animator/animator/src/main/java/androidx/animator/AnimatorSet.java b/core/core-animation/src/main/java/androidx/core/animation/AnimatorSet.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/AnimatorSet.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnimatorSet.java
index e890a38..6388a13 100644
--- a/animator/animator/src/main/java/androidx/animator/AnimatorSet.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnimatorSet.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.os.Looper;
diff --git a/animator/animator/src/main/java/androidx/animator/AnticipateInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/AnticipateInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/AnticipateInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnticipateInterpolator.java
index b03760d..d9ba3c8 100644
--- a/animator/animator/src/main/java/androidx/animator/AnticipateInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnticipateInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/AnticipateOvershootInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/AnticipateOvershootInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/AnticipateOvershootInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/AnticipateOvershootInterpolator.java
index 174f502..b31716e 100644
--- a/animator/animator/src/main/java/androidx/animator/AnticipateOvershootInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/AnticipateOvershootInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/ArgbEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/ArgbEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/ArgbEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/ArgbEvaluator.java
index db23407..0d87507 100644
--- a/animator/animator/src/main/java/androidx/animator/ArgbEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/ArgbEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 
diff --git a/animator/animator/src/main/java/androidx/animator/BidirectionalTypeConverter.java b/core/core-animation/src/main/java/androidx/core/animation/BidirectionalTypeConverter.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/BidirectionalTypeConverter.java
rename to core/core-animation/src/main/java/androidx/core/animation/BidirectionalTypeConverter.java
index e9d1d81..c8f7a73 100644
--- a/animator/animator/src/main/java/androidx/animator/BidirectionalTypeConverter.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/BidirectionalTypeConverter.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 
diff --git a/animator/animator/src/main/java/androidx/animator/BounceInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/BounceInterpolator.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/BounceInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/BounceInterpolator.java
index 5beba04..c71a373 100644
--- a/animator/animator/src/main/java/androidx/animator/BounceInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/BounceInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.FloatRange;
 
diff --git a/animator/animator/src/main/java/androidx/animator/CycleInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/CycleInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/CycleInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/CycleInterpolator.java
index d526a37..437b465 100644
--- a/animator/animator/src/main/java/androidx/animator/CycleInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/CycleInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/DecelerateInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/DecelerateInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/DecelerateInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/DecelerateInterpolator.java
index 47c7e9c..7ee1d90 100644
--- a/animator/animator/src/main/java/androidx/animator/DecelerateInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/DecelerateInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/FloatArrayEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/FloatArrayEvaluator.java
similarity index 95%
rename from animator/animator/src/main/java/androidx/animator/FloatArrayEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/FloatArrayEvaluator.java
index 644ee91..b89e5d0 100644
--- a/animator/animator/src/main/java/androidx/animator/FloatArrayEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/FloatArrayEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 
 import androidx.annotation.NonNull;
@@ -43,7 +43,7 @@
     /**
      * Create a FloatArrayEvaluator that reuses <code>reuseArray</code> for every evaluate() call.
      * Caution must be taken to ensure that the value returned from
-     * {@link androidx.animator.ValueAnimator#getAnimatedValue()} is not cached, modified, or
+     * {@link androidx.core.animation.ValueAnimator#getAnimatedValue()} is not cached, modified, or
      * used across threads. The value will be modified on each <code>evaluate()</code> call.
      *
      * @param reuseArray The array to modify and return from <code>evaluate</code>.
diff --git a/animator/animator/src/main/java/androidx/animator/FloatEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/FloatEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/FloatEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/FloatEvaluator.java
index 5046f37..3797d5c 100644
--- a/animator/animator/src/main/java/androidx/animator/FloatEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/FloatEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 
diff --git a/animator/animator/src/main/java/androidx/animator/FloatKeyframeSet.java b/core/core-animation/src/main/java/androidx/core/animation/FloatKeyframeSet.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/FloatKeyframeSet.java
rename to core/core-animation/src/main/java/androidx/core/animation/FloatKeyframeSet.java
index a87a4c8..3eeb3b6 100644
--- a/animator/animator/src/main/java/androidx/animator/FloatKeyframeSet.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/FloatKeyframeSet.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
-import androidx.animator.Keyframe.FloatKeyframe;
 import androidx.annotation.NonNull;
+import androidx.core.animation.Keyframe.FloatKeyframe;
 
 import java.util.List;
 
diff --git a/animator/animator/src/main/java/androidx/animator/FloatProperty.java b/core/core-animation/src/main/java/androidx/core/animation/FloatProperty.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/FloatProperty.java
rename to core/core-animation/src/main/java/androidx/core/animation/FloatProperty.java
index 4f476e8..d967a5e3 100644
--- a/animator/animator/src/main/java/androidx/animator/FloatProperty.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/FloatProperty.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.util.Property;
diff --git a/animator/animator/src/main/java/androidx/animator/IntArrayEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/IntArrayEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/IntArrayEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/IntArrayEvaluator.java
index 3fe9d66..d3d4edb 100644
--- a/animator/animator/src/main/java/androidx/animator/IntArrayEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/IntArrayEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
diff --git a/animator/animator/src/main/java/androidx/animator/IntEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/IntEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/IntEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/IntEvaluator.java
index ca5bea2..f09fa14 100644
--- a/animator/animator/src/main/java/androidx/animator/IntEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/IntEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 
diff --git a/animator/animator/src/main/java/androidx/animator/IntKeyframeSet.java b/core/core-animation/src/main/java/androidx/core/animation/IntKeyframeSet.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/IntKeyframeSet.java
rename to core/core-animation/src/main/java/androidx/core/animation/IntKeyframeSet.java
index 324b4181..a43a19b7 100644
--- a/animator/animator/src/main/java/androidx/animator/IntKeyframeSet.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/IntKeyframeSet.java
@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
-import androidx.animator.Keyframe.IntKeyframe;
 import androidx.annotation.NonNull;
+import androidx.core.animation.Keyframe.IntKeyframe;
 
 import java.util.List;
 
diff --git a/animator/animator/src/main/java/androidx/animator/IntProperty.java b/core/core-animation/src/main/java/androidx/core/animation/IntProperty.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/IntProperty.java
rename to core/core-animation/src/main/java/androidx/core/animation/IntProperty.java
index 5c6cc72..78c0d3a 100644
--- a/animator/animator/src/main/java/androidx/animator/IntProperty.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/IntProperty.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.util.Property;
diff --git a/animator/animator/src/main/java/androidx/animator/Interpolator.java b/core/core-animation/src/main/java/androidx/core/animation/Interpolator.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/Interpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/Interpolator.java
index 79ef06d..a73c875 100644
--- a/animator/animator/src/main/java/androidx/animator/Interpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/Interpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.FloatRange;
 
diff --git a/animator/animator/src/main/java/androidx/animator/Keyframe.java b/core/core-animation/src/main/java/androidx/core/animation/Keyframe.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/Keyframe.java
rename to core/core-animation/src/main/java/androidx/core/animation/Keyframe.java
index 30474c3..ca2a121 100644
--- a/animator/animator/src/main/java/androidx/animator/Keyframe.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/Keyframe.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 
diff --git a/animator/animator/src/main/java/androidx/animator/KeyframeSet.java b/core/core-animation/src/main/java/androidx/core/animation/KeyframeSet.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/KeyframeSet.java
rename to core/core-animation/src/main/java/androidx/core/animation/KeyframeSet.java
index ff01d53..518c889 100644
--- a/animator/animator/src/main/java/androidx/animator/KeyframeSet.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/KeyframeSet.java
@@ -14,14 +14,14 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.graphics.Path;
 import android.util.Log;
 
-import androidx.animator.Keyframe.FloatKeyframe;
-import androidx.animator.Keyframe.IntKeyframe;
 import androidx.annotation.NonNull;
+import androidx.core.animation.Keyframe.FloatKeyframe;
+import androidx.core.animation.Keyframe.IntKeyframe;
 
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/animator/animator/src/main/java/androidx/animator/Keyframes.java b/core/core-animation/src/main/java/androidx/core/animation/Keyframes.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/Keyframes.java
rename to core/core-animation/src/main/java/androidx/core/animation/Keyframes.java
index 5353283..a552de5 100644
--- a/animator/animator/src/main/java/androidx/animator/Keyframes.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/Keyframes.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 
diff --git a/animator/animator/src/main/java/androidx/animator/LinearInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/LinearInterpolator.java
similarity index 96%
rename from animator/animator/src/main/java/androidx/animator/LinearInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/LinearInterpolator.java
index 68480b1..8ae8373 100644
--- a/animator/animator/src/main/java/androidx/animator/LinearInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/LinearInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.util.AttributeSet;
diff --git a/animator/animator/src/main/java/androidx/animator/ObjectAnimator.java b/core/core-animation/src/main/java/androidx/core/animation/ObjectAnimator.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/ObjectAnimator.java
rename to core/core-animation/src/main/java/androidx/core/animation/ObjectAnimator.java
index fa4947c..77d68d2 100644
--- a/animator/animator/src/main/java/androidx/animator/ObjectAnimator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/ObjectAnimator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.graphics.Path;
diff --git a/animator/animator/src/main/java/androidx/animator/OvershootInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/OvershootInterpolator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/OvershootInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/OvershootInterpolator.java
index 7df5b1fd..56aa680 100644
--- a/animator/animator/src/main/java/androidx/animator/OvershootInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/OvershootInterpolator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/PathInterpolator.java b/core/core-animation/src/main/java/androidx/core/animation/PathInterpolator.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/PathInterpolator.java
rename to core/core-animation/src/main/java/androidx/core/animation/PathInterpolator.java
index 5e1734a..73d53cc 100644
--- a/animator/animator/src/main/java/androidx/animator/PathInterpolator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/PathInterpolator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.content.Context;
 import android.content.res.Resources;
diff --git a/animator/animator/src/main/java/androidx/animator/PathKeyframes.java b/core/core-animation/src/main/java/androidx/core/animation/PathKeyframes.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/PathKeyframes.java
rename to core/core-animation/src/main/java/androidx/core/animation/PathKeyframes.java
index d1585b2..e1fe40a 100644
--- a/animator/animator/src/main/java/androidx/animator/PathKeyframes.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/PathKeyframes.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.graphics.Path;
 import android.graphics.PointF;
diff --git a/animator/animator/src/main/java/androidx/animator/PathUtils.java b/core/core-animation/src/main/java/androidx/core/animation/PathUtils.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/PathUtils.java
rename to core/core-animation/src/main/java/androidx/core/animation/PathUtils.java
index 8fa3fa1..730fc21 100644
--- a/animator/animator/src/main/java/androidx/animator/PathUtils.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/PathUtils.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.graphics.Path;
 import android.graphics.PathMeasure;
diff --git a/animator/animator/src/main/java/androidx/animator/PointFEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/PointFEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/PointFEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/PointFEvaluator.java
index 5ff4959..201cde0 100644
--- a/animator/animator/src/main/java/androidx/animator/PointFEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/PointFEvaluator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.graphics.PointF;
 
diff --git a/animator/animator/src/main/java/androidx/animator/PropertyValuesHolder.java b/core/core-animation/src/main/java/androidx/core/animation/PropertyValuesHolder.java
similarity index 99%
rename from animator/animator/src/main/java/androidx/animator/PropertyValuesHolder.java
rename to core/core-animation/src/main/java/androidx/core/animation/PropertyValuesHolder.java
index 32eeb12..85f5860 100644
--- a/animator/animator/src/main/java/androidx/animator/PropertyValuesHolder.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/PropertyValuesHolder.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.graphics.Path;
@@ -576,7 +576,7 @@
     /**
      * Constructs and returns a PropertyValuesHolder object with the specified property and set
      * of values. These values can be of any type, but the type should be consistent so that
-     * an appropriate {@link androidx.animator.TypeEvaluator} can be found that matches
+     * an appropriate {@link androidx.core.animation.TypeEvaluator} can be found that matches
      * the common type.
      * <p>If there is only one value, it is assumed to be the end value of an animation,
      * and an initial value will be derived, if possible, by calling the property's
diff --git a/animator/animator/src/main/java/androidx/animator/RectEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/RectEvaluator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/RectEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/RectEvaluator.java
index b6cf2f7..9f5e54f 100644
--- a/animator/animator/src/main/java/androidx/animator/RectEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/RectEvaluator.java
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package androidx.animator;
+package androidx.core.animation;
 
 import android.graphics.Rect;
 
diff --git a/animator/animator/src/main/java/androidx/animator/TimeAnimator.java b/core/core-animation/src/main/java/androidx/core/animation/TimeAnimator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/TimeAnimator.java
rename to core/core-animation/src/main/java/androidx/core/animation/TimeAnimator.java
index 27a9749..f484716 100644
--- a/animator/animator/src/main/java/androidx/animator/TimeAnimator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/TimeAnimator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.view.animation.AnimationUtils;
 
diff --git a/animator/animator/src/main/java/androidx/animator/TypeConverter.java b/core/core-animation/src/main/java/androidx/core/animation/TypeConverter.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/TypeConverter.java
rename to core/core-animation/src/main/java/androidx/core/animation/TypeConverter.java
index 7883288..7cf4e3f 100644
--- a/animator/animator/src/main/java/androidx/animator/TypeConverter.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/TypeConverter.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 
diff --git a/animator/animator/src/main/java/androidx/animator/TypeEvaluator.java b/core/core-animation/src/main/java/androidx/core/animation/TypeEvaluator.java
similarity index 97%
rename from animator/animator/src/main/java/androidx/animator/TypeEvaluator.java
rename to core/core-animation/src/main/java/androidx/core/animation/TypeEvaluator.java
index b2f378e..75b0c6e 100644
--- a/animator/animator/src/main/java/androidx/animator/TypeEvaluator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/TypeEvaluator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import androidx.annotation.NonNull;
 
diff --git a/animator/animator/src/main/java/androidx/animator/ValueAnimator.java b/core/core-animation/src/main/java/androidx/core/animation/ValueAnimator.java
similarity index 98%
rename from animator/animator/src/main/java/androidx/animator/ValueAnimator.java
rename to core/core-animation/src/main/java/androidx/core/animation/ValueAnimator.java
index 666ff8a..35db26b 100644
--- a/animator/animator/src/main/java/androidx/animator/ValueAnimator.java
+++ b/core/core-animation/src/main/java/androidx/core/animation/ValueAnimator.java
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-package androidx.animator;
+package androidx.core.animation;
 
 import android.annotation.SuppressLint;
 import android.os.Looper;
@@ -618,9 +618,9 @@
      * set to this fraction; it will simply set the fraction to this value and perform any
      * appropriate actions based on that fraction. If the animation is already running, then
      * setCurrentFraction() will set the current fraction to this value and continue
-     * playing from that point. {@link androidx.animator.Animator.AnimatorListener} events are not
-     * called due to changing the fraction; those events are only processed while the animation
-     * is running.
+     * playing from that point. {@link androidx.core.animation.Animator.AnimatorListener} events
+     * are not called due to changing the fraction; those events are only processed while the
+     * animation is running.
      *
      * @param fraction The fraction to which the animation is advanced or rewound. Values
      * outside the range of 0 to the maximum fraction for the animator will be clamped to
@@ -806,8 +806,8 @@
      * property being animated. This value is only sensible while the animation is running. The main
      * purpose for this read-only property is to retrieve the value from the
      * <code>ValueAnimator</code> during a call to
-     * {@link androidx.animator.Animator.AnimatorUpdateListener#onAnimationUpdate(Animator)}, which
-     * is called during each animation frame, immediately after the value is calculated.
+     * {@link androidx.core.animation.Animator.AnimatorUpdateListener#onAnimationUpdate(Animator)},
+     * which is called during each animation frame, immediately after the value is calculated.
      *
      * @return animatedValue The value most recently calculated by this <code>ValueAnimator</code>
      * for the single property being animated. If there are several properties being animated
@@ -827,8 +827,8 @@
      * The most recent value calculated by this <code>ValueAnimator</code> for
      * <code>propertyName</code>. The main purpose for this read-only property is to retrieve the
      * value from the <code>ValueAnimator</code> during a call to
-     * {@link androidx.animator.Animator.AnimatorUpdateListener#onAnimationUpdate(Animator)}, which
-     * is called during each animation frame, immediately after the value is calculated.
+     * {@link androidx.core.animation.Animator.AnimatorUpdateListener#onAnimationUpdate(Animator)},
+     * which is called during each animation frame, immediately after the value is calculated.
      *
      * @return animatedValue The value most recently calculated for the named property
      * by this <code>ValueAnimator</code>.
diff --git a/settings.gradle b/settings.gradle
index 05af43f..fe01e31 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -61,9 +61,6 @@
 includeProject(":annotation:annotation-experimental", "annotation/annotation-experimental")
 includeProject(":annotation:annotation-experimental-lint", "annotation/annotation-experimental-lint")
 includeProject(":annotation:annotation-experimental-lint-integration-tests", "annotation/annotation-experimental-lint/integration-tests")
-includeProject(":animator:animator", "animator/animator")
-includeProject(":animator:animator-testing", "animator/animator-testing")
-includeProject(":animator:integration-tests:testapp", "animator/integration-tests/testapp")
 includeProject(":appcompat:appcompat", "appcompat/appcompat")
 includeProject(":appcompat:appcompat-benchmark", "appcompat/appcompat-benchmark")
 includeProject(":appcompat:appcompat-lint", "appcompat/appcompat-lint")
@@ -107,6 +104,9 @@
 includeProject(":contentpager:contentpager", "contentpager/contentpager")
 includeProject(":coordinatorlayout:coordinatorlayout", "coordinatorlayout/coordinatorlayout")
 includeProject(":core:core", "core/core")
+includeProject(":core:core-animation", "core/core-animation")
+includeProject(":core:core-animation-testing", "core/core-animation-testing")
+includeProject(":core:core-animation-integration-tests:testapp", "core/core-animation-integration-tests/testapp")
 includeProject(":core:core-ktx", "core/core-ktx")
 includeProject(":core-role", "core/core-role")
 includeProject(":cursoradapter:cursoradapter", "cursoradapter/cursoradapter")
diff --git a/vectordrawable/vectordrawable-seekable/build.gradle b/vectordrawable/vectordrawable-seekable/build.gradle
index 90e6f82..afe6653 100644
--- a/vectordrawable/vectordrawable-seekable/build.gradle
+++ b/vectordrawable/vectordrawable-seekable/build.gradle
@@ -10,7 +10,7 @@
 
 dependencies {
     api(project(":vectordrawable:vectordrawable"))
-    api(project(":animator:animator"))
+    api(project(":core:core-animation"))
     implementation("androidx.interpolator:interpolator:1.0.0")
     implementation("androidx.collection:collection:1.1.0")
 
@@ -20,7 +20,7 @@
     androidTestImplementation(ANDROIDX_TEST_RULES)
     androidTestImplementation(TRUTH)
     androidTestImplementation(ESPRESSO_CORE, libs.exclude_for_espresso)
-    androidTestImplementation(project(":animator:animator-testing"))
+    androidTestImplementation(project(":core:core-animation-testing"))
 }
 
 android {
diff --git a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
index 90d75ce..73e3bd7 100644
--- a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
+++ b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/PathInterpolatorParameterizedTest.java
@@ -24,8 +24,8 @@
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 
-import androidx.animator.AnimatorTestRule;
 import androidx.annotation.NonNull;
+import androidx.core.animation.AnimatorTestRule;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.filters.MediumTest;
 import androidx.test.platform.app.InstrumentationRegistry;
diff --git a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
index c2649a9..491298b 100644
--- a/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
+++ b/vectordrawable/vectordrawable-seekable/src/androidTest/java/androidx/vectordrawable/graphics/drawable/tests/SeekableAnimatedVectorDrawableTest.java
@@ -30,9 +30,9 @@
 import android.util.Xml;
 import android.view.InflateException;
 
-import androidx.animator.AnimatorTestRule;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.NonNull;
+import androidx.core.animation.AnimatorTestRule;
 import androidx.test.annotation.UiThreadTest;
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
diff --git a/vectordrawable/vectordrawable-seekable/src/main/java/androidx/vectordrawable/graphics/drawable/SeekableAnimatedVectorDrawable.java b/vectordrawable/vectordrawable-seekable/src/main/java/androidx/vectordrawable/graphics/drawable/SeekableAnimatedVectorDrawable.java
index f5a09fe..e2f77c1 100644
--- a/vectordrawable/vectordrawable-seekable/src/main/java/androidx/vectordrawable/graphics/drawable/SeekableAnimatedVectorDrawable.java
+++ b/vectordrawable/vectordrawable-seekable/src/main/java/androidx/vectordrawable/graphics/drawable/SeekableAnimatedVectorDrawable.java
@@ -31,17 +31,17 @@
 import android.util.Log;
 import android.util.Xml;
 
-import androidx.animator.Animator;
-import androidx.animator.AnimatorInflater;
-import androidx.animator.AnimatorListenerAdapter;
-import androidx.animator.AnimatorSet;
-import androidx.animator.ObjectAnimator;
 import androidx.annotation.ColorInt;
 import androidx.annotation.DrawableRes;
 import androidx.annotation.IntRange;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.collection.SimpleArrayMap;
+import androidx.core.animation.Animator;
+import androidx.core.animation.AnimatorInflater;
+import androidx.core.animation.AnimatorListenerAdapter;
+import androidx.core.animation.AnimatorSet;
+import androidx.core.animation.ObjectAnimator;
 import androidx.core.content.res.TypedArrayUtils;
 
 import org.xmlpull.v1.XmlPullParser;