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

Commit 120960e4 authored by Leon Scroggins III's avatar Leon Scroggins III
Browse files

Lazily create AnimatedImageDrawable's runnable

Test: manual

This is only necessary for the software case. No need to create it for
the more typical case of drawing in hardware.

Change-Id: I0f041d59445f874160eeea5b13a54fd89fa26df8
parent 34b58512
Loading
Loading
Loading
Loading
+4 −6
Original line number Diff line number Diff line
@@ -81,12 +81,7 @@ public class AnimatedImageDrawable extends Drawable implements Animatable2 {

    private State mState;

    private Runnable mRunnable = new Runnable() {
        @Override
        public void run() {
            invalidateSelf();
        }
    };
    private Runnable mRunnable;

    /**
     *  Pass this to {@link #setLoopCount} to loop infinitely.
@@ -242,6 +237,9 @@ public class AnimatedImageDrawable extends Drawable implements Animatable2 {
        // a value <= 0 indicates that the drawable is stopped or that renderThread
        // will manage the animation
        if (nextUpdate > 0) {
            if (mRunnable == null) {
                mRunnable = this::invalidateSelf;
            }
            scheduleSelf(mRunnable, nextUpdate);
        } else if (nextUpdate == FINISHED) {
            // This means the animation was drawn in software mode and ended.