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

Commit 14aedd1f authored by ztenghui's avatar ztenghui
Browse files

Fixing AVD animation with startOffset

b/17160751

Change-Id: If030ca04f5a7dd7e732dcc5dfb18d51faa7e7b79
parent 730e9bce
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -152,7 +152,7 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable {
    @Override
    public void draw(Canvas canvas) {
        mAnimatedVectorState.mVectorDrawable.draw(canvas);
        if (isRunning()) {
        if (isStarted()) {
            invalidateSelf();
        }
    }
@@ -306,13 +306,25 @@ public class AnimatedVectorDrawable extends Drawable implements Animatable {
        return false;
    }

    private boolean isStarted() {
        final ArrayList<Animator> animators = mAnimatedVectorState.mAnimators;
        final int size = animators.size();
        for (int i = 0; i < size; i++) {
            final Animator animator = animators.get(i);
            if (animator.isStarted()) {
                return true;
            }
        }
        return false;
    }

    @Override
    public void start() {
        final ArrayList<Animator> animators = mAnimatedVectorState.mAnimators;
        final int size = animators.size();
        for (int i = 0; i < size; i++) {
            final Animator animator = animators.get(i);
            if (!animator.isRunning()) {
            if (!animator.isStarted()) {
                animator.start();
            }
        }