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

Commit d40acfb8 authored by Cyril Mottier's avatar Cyril Mottier
Browse files

Return the actual interpolator of the ViewPropertyAnimator

The implementation of getInterpolator() was always returning null
(probably a quick copy-paste from the default Animator implementation).
This patch fixes the problem by returning the interpolator set by
setInterpolator(TimeInterpolator) or the default one if none has been
set yet.

This patch also avoid creating multiple instances of ValueAnimator in 
order to retrieve some default values.

Change-Id: I8880f419f021a8b980fb32bebe927915fde19bf7
parent dbc51de4
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -97,6 +97,12 @@ public class ViewPropertyAnimator {
     */
    private Animator.AnimatorListener mListener = null;

    /**
     * A lazily-created ValueAnimator used in order to get some default animator properties
     * (duration, start delay, interpolator, etc.).
     */
    private ValueAnimator mTempValueAnimator;

    /**
     * This listener is the mechanism by which the underlying Animator causes changes to the
     * properties currently being animated, as well as the cleanup after an animation is
@@ -268,7 +274,10 @@ public class ViewPropertyAnimator {
        } else {
            // Just return the default from ValueAnimator, since that's what we'd get if
            // the value has not been set otherwise
            return new ValueAnimator().getDuration();
            if (mTempValueAnimator == null) {
                mTempValueAnimator = new ValueAnimator();
            }
            return mTempValueAnimator.getDuration();
        }
    }

@@ -328,7 +337,16 @@ public class ViewPropertyAnimator {
     * @return The timing interpolator for this animation.
     */
    public TimeInterpolator getInterpolator() {
        return null;
        if (mInterpolatorSet) {
            return mInterpolator;
        } else {
            // Just return the default from ValueAnimator, since that's what we'd get if
            // the value has not been set otherwise
            if (mTempValueAnimator == null) {
                mTempValueAnimator = new ValueAnimator();
            }
            return mTempValueAnimator.getInterpolator();
        }
    }

    /**