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

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

Merge "Propagate state changes even when we don't change drawable index" into lmp-mr1-dev

parents a9a550dd f81c6af1
Loading
Loading
Loading
Loading
+9 −21
Original line number Diff line number Diff line
@@ -139,27 +139,15 @@ public class AnimatedStateListDrawable extends StateListDrawable {

    @Override
    protected boolean onStateChange(int[] stateSet) {
        final int keyframeIndex = mState.indexOfKeyframe(stateSet);
        if (keyframeIndex == getCurrentIndex()) {
            // Propagate state change to current keyframe.
            final Drawable current = getCurrent();
            if (current != null) {
                return current.setState(stateSet);
            }
            return false;
        }

        // Attempt to find a valid transition to the keyframe.
        if (selectTransition(keyframeIndex)) {
            return true;
        }

        // No valid transition, attempt to jump directly to the keyframe.
        if (selectDrawable(keyframeIndex)) {
            return true;
        }

        return super.onStateChange(stateSet);
        // 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()
                && (selectTransition(targetIndex) || selectDrawable(targetIndex));

        // Always call super.onStateChanged() to propagate the state change to
        // the current drawable.
        return super.onStateChange(stateSet) || changedIndex;
    }

    private boolean selectTransition(int toIndex) {