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

Commit 667ec63c authored by Alan Viverette's avatar Alan Viverette Committed by Android (Google) Code Review
Browse files

Merge "Don't propagate AnimatedStateListDrawable state change to super()" into lmp-mr1-dev

parents 70cb4f3e 2d91f63e
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -142,12 +142,18 @@ public class AnimatedStateListDrawable extends StateListDrawable {
        // If we're not already at the target index, either attempt to find a
        // valid transition to it or jump directly there.
        final int targetIndex = mState.indexOfKeyframe(stateSet);
        final boolean changedIndex = targetIndex != getCurrentIndex()
        boolean changed = targetIndex != getCurrentIndex()
                && (selectTransition(targetIndex) || selectDrawable(targetIndex));

        // Always call super.onStateChanged() to propagate the state change to
        // the current drawable.
        return super.onStateChange(stateSet) || changedIndex;
        // We need to propagate the state change to the current drawable, but
        // we can't call StateListDrawable.onStateChange() without changing the
        // current drawable.
        final Drawable current = getCurrent();
        if (current != null) {
            changed |= current.setState(stateSet);
        }

        return changed;
    }

    private boolean selectTransition(int toIndex) {
+4 −7
Original line number Diff line number Diff line
@@ -285,7 +285,6 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An

    private void inflateChildElements(Resources r, XmlPullParser parser, AttributeSet attrs,
            Theme theme) throws XmlPullParserException, IOException {
        TypedArray a;
        int type;

        final int innerDepth = parser.getDepth()+1;
@@ -300,7 +299,8 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
                continue;
            }

            a = obtainAttributes(r, theme, attrs, R.styleable.AnimationDrawableItem);
            final TypedArray a = obtainAttributes(r, theme, attrs,
                    R.styleable.AnimationDrawableItem);

            final int duration = a.getInt(R.styleable.AnimationDrawableItem_duration, -1);
            if (duration < 0) {
@@ -308,14 +308,11 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
                        + ": <item> tag requires a 'duration' attribute");
            }

            final int drawableRes = a.getResourceId(R.styleable.AnimationDrawableItem_drawable, 0);
            Drawable dr = a.getDrawable(R.styleable.AnimationDrawableItem_drawable);

            a.recycle();

            Drawable dr;
            if (drawableRes != 0) {
                dr = r.getDrawable(drawableRes, theme);
            } else {
            if (dr == null) {
                while ((type=parser.next()) == XmlPullParser.TEXT) {
                    // Empty
                }