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

Commit 83d6e821 authored by Romain Guy's avatar Romain Guy
Browse files

Revert "Remove generics from Animator APIs"

This reverts commit 41f041d9.
parent 70ea25fa
Loading
Loading
Loading
Loading
+69 −396
Original line number Diff line number Diff line
@@ -20416,7 +20416,7 @@
</parameter>
</method>
<method name="setDuration"
 return="android.animation.Animator"
 return="void"
 abstract="true"
 native="false"
 synchronized="false"
@@ -20766,7 +20766,7 @@
</parameter>
</method>
<method name="setDuration"
 return="android.animation.AnimatorSet"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
@@ -21536,129 +21536,57 @@
 visibility="public"
>
</constructor>
<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="getTarget"
 return="java.lang.Object"
 abstract="false"
 native="false"
 synchronized="false"
<constructor name="ObjectAnimator"
 type="android.animation.ObjectAnimator"
 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 name="duration" type="long">
</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="float...">
<parameter name="values" type="T...">
</parameter>
</method>
<method name="ofInt"
 return="android.animation.ObjectAnimator"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
</constructor>
<constructor name="ObjectAnimator"
 type="android.animation.ObjectAnimator"
 static="false"
 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="int...">
<parameter name="duration" type="long">
</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="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="long...">
<parameter name="values" type="android.animation.PropertyValuesHolder...">
</parameter>
</method>
<method name="ofObject"
 return="android.animation.ObjectAnimator"
</constructor>
<method name="getPropertyName"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 static="false"
 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="ofPropertyValuesHolder"
 return="android.animation.ObjectAnimator"
<method name="getTarget"
 return="java.lang.Object"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 static="false"
 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"
@@ -21684,144 +21612,63 @@
>
<implements name="java.lang.Cloneable">
</implements>
<method name="clone"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
<method name="getGetter"
 return="java.lang.reflect.Method"
 abstract="false"
 native="false"
 synchronized="false"
<constructor name="PropertyValuesHolder"
 type="android.animation.PropertyValuesHolder"
 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="double...">
</parameter>
</method>
<method name="ofFloat"
 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="float...">
<parameter name="values" type="T...">
</parameter>
</method>
<method name="ofInt"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
</constructor>
<constructor name="PropertyValuesHolder"
 type="android.animation.PropertyValuesHolder"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="int...">
<parameter name="values" type="T...">
</parameter>
</method>
<method name="ofKeyframe"
</constructor>
<method name="clone"
 return="android.animation.PropertyValuesHolder"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 static="false"
 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="ofLong"
 return="android.animation.PropertyValuesHolder"
<method name="getGetter"
 return="java.lang.reflect.Method"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
</parameter>
<parameter name="values" type="long...">
</parameter>
</method>
<method name="ofObject"
 return="android.animation.PropertyValuesHolder"
<method name="getPropertyName"
 return="java.lang.String"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 static="false"
 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"
<method name="getSetter"
 return="java.lang.reflect.Method"
 abstract="false"
 native="false"
 synchronized="false"
@@ -21830,8 +21677,6 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="setEvaluator"
 return="void"
@@ -21846,19 +21691,6 @@
<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"
@@ -21872,46 +21704,7 @@
<parameter name="getter" type="java.lang.reflect.Method">
</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="setKeyframes"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="android.animation.Keyframe...">
</parameter>
</method>
<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"
<method name="setPropertyName"
 return="void"
 abstract="false"
 native="false"
@@ -21921,10 +21714,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="java.lang.Object...">
<parameter name="propertyName" type="java.lang.String">
</parameter>
</method>
<method name="setPropertyName"
<method name="setSetter"
 return="void"
 abstract="false"
 native="false"
@@ -21934,10 +21727,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="propertyName" type="java.lang.String">
<parameter name="setter" type="java.lang.reflect.Method">
</parameter>
</method>
<method name="setSetter"
<method name="setValues"
 return="void"
 abstract="false"
 native="false"
@@ -21947,7 +21740,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="setter" type="java.lang.reflect.Method">
<parameter name="values" type="T...">
</parameter>
</method>
</class>
@@ -22049,6 +21842,18 @@
 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"
@@ -22185,86 +21990,6 @@
 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"
@@ -22313,21 +22038,8 @@
<parameter name="playTime" type="long">
</parameter>
</method>
<method name="setDoubleValues"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
 static="false"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="double...">
</parameter>
</method>
<method name="setDuration"
 return="android.animation.ValueAnimator"
 return="void"
 abstract="false"
 native="false"
 synchronized="false"
@@ -22352,19 +22064,6 @@
<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"
@@ -22378,19 +22077,6 @@
<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"
@@ -22404,20 +22090,7 @@
<parameter name="value" type="android.animation.TimeInterpolator">
</parameter>
</method>
<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"
<method name="setRepeatCount"
 return="void"
 abstract="false"
 native="false"
@@ -22427,10 +22100,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="java.lang.Object...">
<parameter name="value" type="int">
</parameter>
</method>
<method name="setRepeatCount"
<method name="setRepeatMode"
 return="void"
 abstract="false"
 native="false"
@@ -22443,7 +22116,7 @@
<parameter name="value" type="int">
</parameter>
</method>
<method name="setRepeatMode"
<method name="setStartDelay"
 return="void"
 abstract="false"
 native="false"
@@ -22453,10 +22126,10 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="value" type="int">
<parameter name="startDelay" type="long">
</parameter>
</method>
<method name="setStartDelay"
<method name="setValues"
 return="void"
 abstract="false"
 native="false"
@@ -22466,7 +22139,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="startDelay" type="long">
<parameter name="values" type="android.animation.PropertyValuesHolder...">
</parameter>
</method>
<method name="setValues"
@@ -22479,7 +22152,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="values" type="android.animation.PropertyValuesHolder...">
<parameter name="values" type="T...">
</parameter>
</method>
<field name="INFINITE"
@@ -227292,7 +226965,7 @@
>
</method>
<method name="getInAnimation"
 return="android.animation.ObjectAnimator"
 return="android.animation.ObjectAnimator&lt;?&gt;"
 abstract="false"
 native="false"
 synchronized="false"
@@ -227303,7 +226976,7 @@
>
</method>
<method name="getOutAnimation"
 return="android.animation.ObjectAnimator"
 return="android.animation.ObjectAnimator&lt;?&gt;"
 abstract="false"
 native="false"
 synchronized="false"
@@ -227419,7 +227092,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="inAnimation" type="android.animation.ObjectAnimator">
<parameter name="inAnimation" type="android.animation.ObjectAnimator&lt;?&gt;">
</parameter>
</method>
<method name="setInAnimation"
@@ -227447,7 +227120,7 @@
 deprecated="not deprecated"
 visibility="public"
>
<parameter name="outAnimation" type="android.animation.ObjectAnimator">
<parameter name="outAnimation" type="android.animation.ObjectAnimator&lt;?&gt;">
</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 Animator setDuration(long duration);
    public abstract void setDuration(long duration);

    /**
     * Gets the length of the animation.
+31 −89
Original line number Diff line number Diff line
@@ -52,9 +52,8 @@ 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_LONG        = 3;
    private static final int VALUE_TYPE_COLOR       = 4;
    private static final int VALUE_TYPE_CUSTOM      = 5;
    private static final int VALUE_TYPE_COLOR       = 3;
    private static final int VALUE_TYPE_CUSTOM      = 4;

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

        if (anim == null) {
            anim = new ValueAnimator();
        }
        Object valueFrom = null;
        Object valueTo = null;
        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: {
                float valueFrom;
                float valueTo;
                if (hasFrom) {
            case VALUE_TYPE_FLOAT:
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
                    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);
                }
                } else {
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                    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: {
                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) {
            case VALUE_TYPE_INT:
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
                    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);
                }
                } else {
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                    valueTo = a.getInteger(com.android.internal.R.styleable.Animator_valueTo, 0);
                    anim.setLongValues(valueTo);
                }
                }
                break;

            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);
            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();
                }
                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?
                float valueFrom;
                float valueTo;
                if (hasFrom) {
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueFrom)) {
                    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);
                }
                } else {
                if (a.hasValue(com.android.internal.R.styleable.Animator_valueTo)) {
                    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.setStartDelay(startDelay);

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

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

    }
+3 −77

File changed.

Preview size limit exceeded, changes collapsed.

Loading