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

Commit 15f7b193 authored by John Spurlock's avatar John Spurlock Committed by Android (Google) Code Review
Browse files

Merge "Fix logic problems in AnimationDrawable and View."

parents d487eb3c 180979f7
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -11325,11 +11325,10 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
                attachInfo.mHandler.removeCallbacks(action);
                attachInfo.mViewRootImpl.mChoreographer.removeCallbacks(
                        Choreographer.CALLBACK_ANIMATION, action, null);
            } else {
            }
            // Assume that post will succeed later
            ViewRootImpl.getRunQueue().removeCallbacks(action);
        }
        }
        return true;
    }
@@ -15103,9 +15102,8 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
            if (mAttachInfo != null) {
                mAttachInfo.mViewRootImpl.mChoreographer.removeCallbacks(
                        Choreographer.CALLBACK_ANIMATION, what, who);
            } else {
                ViewRootImpl.getRunQueue().removeCallbacks(what);
            }
            ViewRootImpl.getRunQueue().removeCallbacks(what);
        }
    }
+6 −3
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ import android.util.AttributeSet;
public class AnimationDrawable extends DrawableContainer implements Runnable, Animatable {
    private final AnimationState mAnimationState;
    private int mCurFrame = -1;
    private boolean mAnimating;
    private boolean mMutated;

    public AnimationDrawable() {
@@ -137,7 +138,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
     * @return true if the animation is running, false otherwise
     */
    public boolean isRunning() {
        return mCurFrame > -1;
        return mAnimating;
    }

    /**
@@ -153,6 +154,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
    @Override
    public void unscheduleSelf(Runnable what) {
        mCurFrame = -1;
        mAnimating = false;
        super.unscheduleSelf(what);
    }

@@ -222,12 +224,13 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
        }
        mCurFrame = frame;
        selectDrawable(frame);
        if (unschedule) {
        if (unschedule || animate) {
            unscheduleSelf(this);
        }
        if (animate) {
            // Unscheduling may have clobbered this value; restore it to record that we're animating
            // Unscheduling may have clobbered these values; restore them
            mCurFrame = frame;
            mAnimating = true;
            scheduleSelf(this, SystemClock.uptimeMillis() + mAnimationState.mDurations[frame]);
        }
    }
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ public class AnimatedImageView extends ImageView {
    }

    private void updateAnim() {
        Drawable drawable = mAttached ? getDrawable() : null;
        Drawable drawable = getDrawable();
        if (mAttached && mAnim != null) {
            mAnim.stop();
        }