Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2794eb3b authored by Chet Haase's avatar Chet Haase
Browse files

Remove generics from Animator APIs

Change the manner of constructing Animator-related objects from constructors
via generics to factory methods with type-specific method names. Should
improve the proliferation of warnings due to generics issues and make the
code more readable (less irrelevant angle brackets Floating around).

Change-Id: Ib59a7dd72a95d438022e409ddeac48853082b943
parent bf5b247f
Loading
Loading
Loading
Loading
+396 −69
Original line number Diff line number Diff line
@@ -20416,7 +20416,7 @@
</parameter>
</method>
<method name="setDuration"
 return="void"
 return="android.animation.Animator"
 abstract="true"
 native="false"
 synchronized="false"
@@ -20766,7 +20766,7 @@
</parameter>
</method>
<method name="setDuration"
 return="void"
 return="android.animation.AnimatorSet"
 abstract="false"
 native="false"
 synchronized="false"
@@ -21536,57 +21536,129 @@
 visibility="public"
>
</constructor>
<constructor name="ObjectAnimator"
 type="android.animation.ObjectAnimator"
<method name="getPropertyName"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="duration" type="long">
</method>
<method name="getTarget"
 return="java.lang.Object"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="ofDouble"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="ofFloat"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="T...">
<parameter name="values" type="float...">
</parameter>
</constructor>
<constructor name="ObjectAnimator"
 type="android.animation.ObjectAnimator"
 static="false"
</method>
<method name="ofInt"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="duration" type="long">
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="int...">
</parameter>
</method>
<method name="ofLong"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="values" type="android.animation.PropertyValuesHolder...">
<parameter name="propertyName" type="java.lang.String">
</parameter>
</constructor>
<method name="getPropertyName"
 return="java.lang.String"
<parameter name="values" type="long...">
</parameter>
</method>
<method name="ofObject"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="evaluator" type="android.animation.TypeEvaluator">
</parameter>
<parameter name="values" type="java.lang.Object...">
</parameter>
</method>
<method name="getTarget"
 return="java.lang.Object"
<method name="ofPropertyValuesHolder"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="target" type="java.lang.Object">
</parameter>
<parameter name="values" type="android.animation.PropertyValuesHolder...">
</parameter>
</method>
<method name="setPropertyName"
 return="void"
@@ -21612,63 +21684,144 @@
>
<implements name="java.lang.Cloneable">
</implements>
<constructor name="PropertyValuesHolder"
 type="android.animation.PropertyValuesHolder"
<method name="clone"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="T...">
</parameter>
</constructor>
<constructor name="PropertyValuesHolder"
 type="android.animation.PropertyValuesHolder"
</method>
<method name="getGetter"
 return="java.lang.reflect.Method"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getPropertyName"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getSetter"
 return="java.lang.reflect.Method"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="ofDouble"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="T...">
<parameter name="values" type="double...">
</parameter>
</constructor>
<method name="clone"
</method>
<method name="ofFloat"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="float...">
</parameter>
</method>
<method name="ofInt"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="int...">
</parameter>
</method>
<method name="getGetter"
 return="java.lang.reflect.Method"
<method name="ofKeyframe"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="android.animation.Keyframe...">
</parameter>
</method>
<method name="getPropertyName"
 return="java.lang.String"
<method name="ofLong"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="long...">
</parameter>
</method>
<method name="getSetter"
 return="java.lang.reflect.Method"
<method name="ofObject"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="evaluator" type="android.animation.TypeEvaluator">
</parameter>
<parameter name="values" type="java.lang.Object...">
</parameter>
</method>
<method name="setDoubleValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
@@ -21677,6 +21830,8 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="setEvaluator"
 return="void"
@@ -21691,6 +21846,19 @@
<parameter name="evaluator" type="android.animation.TypeEvaluator">
</parameter>
</method>
<method name="setFloatValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="float...">
</parameter>
</method>
<method name="setGetter"
 return="void"
 abstract="false"
@@ -21704,7 +21872,7 @@
<parameter name="getter" type="java.lang.reflect.Method">
</parameter>
</method>
<method name="setPropertyName"
<method name="setIntValues"
 return="void"
 abstract="false"
 native="false"
@@ -21714,10 +21882,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
<parameter name="values" type="int...">
</parameter>
</method>
<method name="setSetter"
<method name="setKeyframes"
 return="void"
 abstract="false"
 native="false"
@@ -21727,10 +21895,49 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="setter" type="java.lang.reflect.Method">
<parameter name="values" type="android.animation.Keyframe...">
</parameter>
</method>
<method name="setValues"
<method name="setLongValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="long...">
</parameter>
</method>
<method name="setObjectValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="java.lang.Object...">
</parameter>
</method>
<method name="setPropertyName"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
</method>
<method name="setSetter"
 return="void"
 abstract="false"
 native="false"
@@ -21740,7 +21947,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="T...">
<parameter name="setter" type="java.lang.reflect.Method">
</parameter>
</method>
</class>
@@ -21842,18 +22049,6 @@
 visibility="public"
>
</constructor>
<constructor name="ValueAnimator"
 type="android.animation.ValueAnimator"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="duration" type="long">
</parameter>
<parameter name="values" type="T...">
</parameter>
</constructor>
<method name="addUpdateListener"
 return="void"
 abstract="false"
@@ -21990,6 +22185,86 @@
 visibility="public"
>
</method>
<method name="ofDouble"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="ofFloat"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="float...">
</parameter>
</method>
<method name="ofInt"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="int...">
</parameter>
</method>
<method name="ofLong"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="long...">
</parameter>
</method>
<method name="ofObject"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="evaluator" type="android.animation.TypeEvaluator">
</parameter>
<parameter name="values" type="java.lang.Object...">
</parameter>
</method>
<method name="ofPropertyValuesHolder"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="android.animation.PropertyValuesHolder...">
</parameter>
</method>
<method name="removeAllUpdateListeners"
 return="void"
 abstract="false"
@@ -22038,7 +22313,7 @@
<parameter name="playTime" type="long">
</parameter>
</method>
<method name="setDuration"
<method name="setDoubleValues"
 return="void"
 abstract="false"
 native="false"
@@ -22048,6 +22323,19 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="setDuration"
 return="android.animation.ValueAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="duration" type="long">
</parameter>
</method>
@@ -22064,6 +22352,19 @@
<parameter name="value" type="android.animation.TypeEvaluator">
</parameter>
</method>
<method name="setFloatValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="float...">
</parameter>
</method>
<method name="setFrameDelay"
 return="void"
 abstract="false"
@@ -22077,6 +22378,19 @@
<parameter name="frameDelay" type="long">
</parameter>
</method>
<method name="setIntValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="int...">
</parameter>
</method>
<method name="setInterpolator"
 return="void"
 abstract="false"
@@ -22090,7 +22404,7 @@
<parameter name="value" type="android.animation.TimeInterpolator">
</parameter>
</method>
<method name="setRepeatCount"
<method name="setLongValues"
 return="void"
 abstract="false"
 native="false"
@@ -22100,10 +22414,23 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="value" type="int">
<parameter name="values" type="long...">
</parameter>
</method>
<method name="setRepeatMode"
<method name="setObjectValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="java.lang.Object...">
</parameter>
</method>
<method name="setRepeatCount"
 return="void"
 abstract="false"
 native="false"
@@ -22116,7 +22443,7 @@
<parameter name="value" type="int">
</parameter>
</method>
<method name="setStartDelay"
<method name="setRepeatMode"
 return="void"
 abstract="false"
 native="false"
@@ -22126,10 +22453,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="startDelay" type="long">
<parameter name="value" type="int">
</parameter>
</method>
<method name="setValues"
<method name="setStartDelay"
 return="void"
 abstract="false"
 native="false"
@@ -22139,7 +22466,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="android.animation.PropertyValuesHolder...">
<parameter name="startDelay" type="long">
</parameter>
</method>
<method name="setValues"
@@ -22152,7 +22479,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="T...">
<parameter name="values" type="android.animation.PropertyValuesHolder...">
</parameter>
</method>
<field name="INFINITE"
@@ -226965,7 +227292,7 @@
>
</method>
<method name="getInAnimation"
 return="android.animation.ObjectAnimator&lt;?&gt;"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
@@ -226976,7 +227303,7 @@
>
</method>
<method name="getOutAnimation"
 return="android.animation.ObjectAnimator&lt;?&gt;"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
@@ -227092,7 +227419,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="inAnimation" type="android.animation.ObjectAnimator&lt;?&gt;">
<parameter name="inAnimation" type="android.animation.ObjectAnimator">
</parameter>
</method>
<method name="setInAnimation"
@@ -227120,7 +227447,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="outAnimation" type="android.animation.ObjectAnimator&lt;?&gt;">
<parameter name="outAnimation" type="android.animation.ObjectAnimator">
</parameter>
</method>
<method name="setOutAnimation"
+1 −1
Original line number Diff line number Diff line
@@ -78,7 +78,7 @@ public abstract class Animator implements Cloneable {
     *
     * @param duration The length of the animation, in milliseconds.
     */
    public abstract void setDuration(long duration);
    public abstract Animator setDuration(long duration);

    /**
     * Gets the length of the animation.
+89 −31
Original line number Diff line number Diff line
@@ -52,8 +52,9 @@ public class AnimatorInflater {
    private static final int VALUE_TYPE_FLOAT       = 0;
    private static final int VALUE_TYPE_INT         = 1;
    private static final int VALUE_TYPE_DOUBLE      = 2;
    private static final int VALUE_TYPE_COLOR       = 3;
    private static final int VALUE_TYPE_CUSTOM      = 4;
    private static final int VALUE_TYPE_LONG        = 3;
    private static final int VALUE_TYPE_COLOR       = 4;
    private static final int VALUE_TYPE_CUSTOM      = 5;

    /**
     * Loads an {@link Animator} object from a resource
@@ -192,56 +193,113 @@ public class AnimatorInflater {
        int valueType = a.getInt(com.android.internal.R.styleable.Animator_valueType,
                VALUE_TYPE_FLOAT);

        Object valueFrom = null;
        Object valueTo = null;
        if (anim == null) {
            anim = new ValueAnimator();
        }
        TypeEvaluator evaluator = null;
        boolean hasFrom = a.hasValue(com.android.internal.R.styleable.Animator_valueFrom);
        boolean hasTo = a.hasValue(com.android.internal.R.styleable.Animator_valueTo);

        switch (valueType) {
            case VALUE_TYPE_FLOAT:
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {

            case VALUE_TYPE_FLOAT: {
                float valueFrom;
                float valueTo;
                if (hasFrom) {
                    valueFrom = a.getFloat(com.android.internal.R.styleable.Animator_valueFrom, 0f);
                    if (hasTo) {
                        valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                        anim.setFloatValues(valueFrom, valueTo);
                    } else {
                        anim.setFloatValues(valueFrom);
                    }
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                } else {
                    valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                    anim.setFloatValues(valueTo);
                }
            }
            break;

            case VALUE_TYPE_COLOR:
                evaluator = new RGBEvaluator();
                anim.setEvaluator(evaluator);
                // fall through to pick up values
            case VALUE_TYPE_INT:
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
            case VALUE_TYPE_INT: {
                int valueFrom;
                int valueTo;
                if (hasFrom) {
                    valueFrom = a.getInteger(com.android.internal.R.styleable.Animator_valueFrom, 0);
                    if (hasTo) {
                        valueTo = a.getInteger(com.android.internal.R.styleable.Animator_valueTo, 0);
                        anim.setIntValues(valueFrom, valueTo);
                    } else {
                        anim.setIntValues(valueFrom);
                    }
                } else {
                    valueTo = a.getInteger(com.android.internal.R.styleable.Animator_valueTo, 0);
                    anim.setIntValues(valueTo);
                }
            }
            break;

            case VALUE_TYPE_LONG: {
                int valueFrom;
                int valueTo;
                if (hasFrom) {
                    valueFrom = a.getInteger(com.android.internal.R.styleable.Animator_valueFrom, 0);
                    if (hasTo) {
                        valueTo = a.getInteger(com.android.internal.R.styleable.Animator_valueTo, 0);
                        anim.setLongValues(valueFrom, valueTo);
                    } else {
                        anim.setLongValues(valueFrom);
                    }
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                } else {
                    valueTo = a.getInteger(com.android.internal.R.styleable.Animator_valueTo, 0);
                    anim.setLongValues(valueTo);
                }
            }
            break;
            case VALUE_TYPE_DOUBLE:
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
                    valueFrom = (Double)((Float)(a.getFloat(com.android.internal.R.styleable.Animator_valueFrom, 0f))).doubleValue();

            case VALUE_TYPE_DOUBLE: {
                double valueFrom;
                double valueTo;
                if (hasFrom) {
                    valueFrom = a.getFloat(com.android.internal.R.styleable.Animator_valueFrom, 0f);
                    if (hasTo) {
                        valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                        anim.setDoubleValues(valueFrom, valueTo);
                    } else {
                        anim.setDoubleValues(valueFrom);
                    }
                } else {
                    valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                    anim.setDoubleValues(valueTo);
                }
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                    valueTo = (Double)((Float)a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f)).doubleValue();
            }
            break;
            case VALUE_TYPE_CUSTOM:

            case VALUE_TYPE_CUSTOM: {
                // TODO: How to get an 'Object' value?
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
                float valueFrom;
                float valueTo;
                if (hasFrom) {
                    valueFrom = a.getFloat(com.android.internal.R.styleable.Animator_valueFrom, 0f);
                    if (hasTo) {
                        valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                        anim.setFloatValues(valueFrom, valueTo);
                    } else {
                        anim.setFloatValues(valueFrom);
                    }
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                } else {
                    valueTo = a.getFloat(com.android.internal.R.styleable.Animator_valueTo, 0f);
                    anim.setFloatValues(valueTo);
                }
            }
            break;
        }

        if (anim == null) {
            anim = new ValueAnimator(duration, valueFrom, valueTo);
        } else {
            anim.setDuration(duration);
            anim.setValues(valueFrom, valueTo);
        }

        anim.setDuration(duration);
        anim.setStartDelay(startDelay);

        if (a.hasValue(com.android.internal.R.styleable.Animator_repeatCount)) {
+7 −3
Original line number Diff line number Diff line
@@ -328,7 +328,7 @@ public final class AnimatorSet extends Animator {
     * animations of this AnimatorSet.
     */
    @Override
    public void setDuration(long duration) {
    public AnimatorSet setDuration(long duration) {
        if (duration < 0) {
            throw new IllegalArgumentException("duration must be a value of zero or greater");
        }
@@ -338,6 +338,7 @@ public final class AnimatorSet extends Animator {
            node.animation.setDuration(duration);
        }
        mDuration = duration;
        return this;
    }

    /**
@@ -384,7 +385,8 @@ public final class AnimatorSet extends Animator {
            }
        } else {
            // TODO: Need to cancel out of the delay appropriately
            ValueAnimator delayAnim = new ValueAnimator(mStartDelay, 0f, 1f);
            ValueAnimator delayAnim = ValueAnimator.ofFloat(0f, 1f);
            delayAnim.setDuration(mStartDelay);
            delayAnim.addListener(new AnimatorListenerAdapter() {
                public void onAnimationEnd(Animator anim) {
                    for (Node node : nodesToStart) {
@@ -929,7 +931,9 @@ public final class AnimatorSet extends Animator {
         */
        public void after(long delay) {
            // setup dummy ValueAnimator just to run the clock
            after(new ValueAnimator(delay, 0f, 1f));
            ValueAnimator anim = ValueAnimator.ofFloat(0f, 1f);
            anim.setDuration(delay);
            after(anim);
        }

    }
+77 −3

File changed.

Preview size limit exceeded, changes collapsed.

Loading