package androidx.appcompat.graphics.drawable; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; import android.annotation.SuppressLint; import android.content.Context; import android.content.res.ColorStateList; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; import android.graphics.Canvas; import android.graphics.ColorFilter; import android.graphics.Outline; import android.graphics.PorterDuff; import android.graphics.Rect; import android.graphics.drawable.Animatable; import android.graphics.drawable.AnimationDrawable; import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Log; import android.util.StateSet; import android.util.Xml; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RequiresApi; import androidx.appcompat.graphics.drawable.DrawableContainer; import androidx.appcompat.graphics.drawable.StateListDrawable; import androidx.appcompat.resources.R; import androidx.appcompat.widget.ResourceManagerInternal; import androidx.collection.LongSparseArray; import androidx.collection.SparseArrayCompat; import androidx.core.content.res.TypedArrayUtils; import androidx.core.graphics.drawable.TintAwareDrawable; import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat; import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat; import java.io.IOException; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; @SuppressLint({"RestrictedAPI"}) public class AnimatedStateListDrawableCompat extends StateListDrawable implements TintAwareDrawable { private static final String ELEMENT_ITEM = "item"; private static final String ELEMENT_TRANSITION = "transition"; private static final String ITEM_MISSING_DRAWABLE_ERROR = ": tag requires a 'drawable' attribute or child tag defining a drawable"; private static final String LOGTAG = AnimatedStateListDrawableCompat.class.getSimpleName(); private static final String TRANSITION_MISSING_DRAWABLE_ERROR = ": tag requires a 'drawable' attribute or child tag defining a drawable"; private static final String TRANSITION_MISSING_FROM_TO_ID = ": tag requires 'fromId' & 'toId' attributes"; private boolean mMutated; private AnimatedStateListState mState; private Transition mTransition; private int mTransitionFromIndex; private int mTransitionToIndex; public static class AnimatableTransition extends Transition { private final Animatable mA; public AnimatableTransition(Animatable animatable) { super(); this.mA = animatable; } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void start() { this.mA.start(); } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void stop() { this.mA.stop(); } } public static class AnimatedStateListState extends StateListDrawable.StateListState { private static final long REVERSED_BIT = 4294967296L; private static final long REVERSIBLE_FLAG_BIT = 8589934592L; public SparseArrayCompat mStateIds; public LongSparseArray mTransitions; public AnimatedStateListState(@Nullable AnimatedStateListState animatedStateListState, @NonNull AnimatedStateListDrawableCompat animatedStateListDrawableCompat, @Nullable Resources resources) { super(animatedStateListState, animatedStateListDrawableCompat, resources); if (animatedStateListState != null) { this.mTransitions = animatedStateListState.mTransitions; this.mStateIds = animatedStateListState.mStateIds; return; } this.mTransitions = new LongSparseArray<>(); this.mStateIds = new SparseArrayCompat<>(); } private static long generateTransitionKey(int i, int i2) { return ((long) i2) | (((long) i) << 32); } public int addStateSet(@NonNull int[] iArr, @NonNull Drawable drawable, int i) { int addStateSet = super.addStateSet(iArr, drawable); this.mStateIds.put(addStateSet, Integer.valueOf(i)); return addStateSet; } public int addTransition(int i, int i2, @NonNull Drawable drawable, boolean z2) { int addChild = super.addChild(drawable); long generateTransitionKey = generateTransitionKey(i, i2); long j = z2 ? 8589934592L : 0; long j2 = (long) addChild; this.mTransitions.append(generateTransitionKey, Long.valueOf(j2 | j)); if (z2) { this.mTransitions.append(generateTransitionKey(i2, i), Long.valueOf(4294967296L | j2 | j)); } return addChild; } public int getKeyframeIdAt(int i) { if (i < 0) { return 0; } return this.mStateIds.get(i, 0).intValue(); } public int indexOfKeyframe(@NonNull int[] iArr) { int indexOfStateSet = super.indexOfStateSet(iArr); return indexOfStateSet >= 0 ? indexOfStateSet : super.indexOfStateSet(StateSet.WILD_CARD); } public int indexOfTransition(int i, int i2) { return (int) this.mTransitions.get(generateTransitionKey(i, i2), -1L).longValue(); } public boolean isTransitionReversed(int i, int i2) { return (this.mTransitions.get(generateTransitionKey(i, i2), -1L).longValue() & 4294967296L) != 0; } @Override // androidx.appcompat.graphics.drawable.StateListDrawable.StateListState, androidx.appcompat.graphics.drawable.DrawableContainer.DrawableContainerState public void mutate() { this.mTransitions = this.mTransitions.clone(); this.mStateIds = this.mStateIds.clone(); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable.StateListState, android.graphics.drawable.Drawable.ConstantState @NonNull public Drawable newDrawable() { return new AnimatedStateListDrawableCompat(this, null); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable.StateListState, android.graphics.drawable.Drawable.ConstantState @NonNull public Drawable newDrawable(Resources resources) { return new AnimatedStateListDrawableCompat(this, resources); } public boolean transitionHasReversibleFlag(int i, int i2) { return (this.mTransitions.get(generateTransitionKey(i, i2), -1L).longValue() & 8589934592L) != 0; } } public static class AnimatedVectorDrawableTransition extends Transition { private final AnimatedVectorDrawableCompat mAvd; public AnimatedVectorDrawableTransition(AnimatedVectorDrawableCompat animatedVectorDrawableCompat) { super(); this.mAvd = animatedVectorDrawableCompat; } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void start() { this.mAvd.start(); } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void stop() { this.mAvd.stop(); } } public static class AnimationDrawableTransition extends Transition { private final ObjectAnimator mAnim; private final boolean mHasReversibleFlag; public AnimationDrawableTransition(AnimationDrawable animationDrawable, boolean z2, boolean z3) { super(); int numberOfFrames = animationDrawable.getNumberOfFrames(); int i = z2 ? numberOfFrames - 1 : 0; int i2 = z2 ? 0 : numberOfFrames - 1; FrameInterpolator frameInterpolator = new FrameInterpolator(animationDrawable, z2); ObjectAnimator ofInt = ObjectAnimator.ofInt(animationDrawable, "currentIndex", i, i2); ofInt.setAutoCancel(true); ofInt.setDuration((long) frameInterpolator.getTotalDuration()); ofInt.setInterpolator(frameInterpolator); this.mHasReversibleFlag = z3; this.mAnim = ofInt; } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public boolean canReverse() { return this.mHasReversibleFlag; } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void reverse() { this.mAnim.reverse(); } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void start() { this.mAnim.start(); } @Override // androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat.Transition public void stop() { this.mAnim.cancel(); } } public static class FrameInterpolator implements TimeInterpolator { private int[] mFrameTimes; private int mFrames; private int mTotalDuration; public FrameInterpolator(AnimationDrawable animationDrawable, boolean z2) { updateFrames(animationDrawable, z2); } @Override // android.animation.TimeInterpolator public float getInterpolation(float f) { int i = (int) ((f * ((float) this.mTotalDuration)) + 0.5f); int i2 = this.mFrames; int[] iArr = this.mFrameTimes; int i3 = 0; while (i3 < i2 && i >= iArr[i3]) { i -= iArr[i3]; i3++; } return (((float) i3) / ((float) i2)) + (i3 < i2 ? ((float) i) / ((float) this.mTotalDuration) : 0.0f); } public int getTotalDuration() { return this.mTotalDuration; } public int updateFrames(AnimationDrawable animationDrawable, boolean z2) { int numberOfFrames = animationDrawable.getNumberOfFrames(); this.mFrames = numberOfFrames; int[] iArr = this.mFrameTimes; if (iArr == null || iArr.length < numberOfFrames) { this.mFrameTimes = new int[numberOfFrames]; } int[] iArr2 = this.mFrameTimes; int i = 0; for (int i2 = 0; i2 < numberOfFrames; i2++) { int duration = animationDrawable.getDuration(z2 ? (numberOfFrames - i2) - 1 : i2); iArr2[i2] = duration; i += duration; } this.mTotalDuration = i; return i; } } public static abstract class Transition { private Transition() { } public boolean canReverse() { return false; } public void reverse() { } public abstract void start(); public abstract void stop(); } public AnimatedStateListDrawableCompat() { this(null, null); } public AnimatedStateListDrawableCompat(@Nullable AnimatedStateListState animatedStateListState, @Nullable Resources resources) { super(null); this.mTransitionToIndex = -1; this.mTransitionFromIndex = -1; setConstantState(new AnimatedStateListState(animatedStateListState, this, resources)); onStateChange(getState()); jumpToCurrentState(); } @Nullable public static AnimatedStateListDrawableCompat create(@NonNull Context context, @DrawableRes int i, @Nullable Resources.Theme theme) { XmlResourceParser xml; int next; try { Resources resources = context.getResources(); xml = resources.getXml(i); AttributeSet asAttributeSet = Xml.asAttributeSet(xml); if (next == 2) { return createFromXmlInner(context, resources, xml, asAttributeSet, theme); } throw new XmlPullParserException("No start tag found"); } catch (XmlPullParserException e) { Log.e(LOGTAG, "parser error", e); return null; } catch (IOException e2) { Log.e(LOGTAG, "parser error", e2); return null; } while (true) { next = xml.next(); if (next == 2 || next == 1) { break; } } } public static AnimatedStateListDrawableCompat createFromXmlInner(@NonNull Context context, @NonNull Resources resources, @NonNull XmlPullParser xmlPullParser, @NonNull AttributeSet attributeSet, @Nullable Resources.Theme theme) throws IOException, XmlPullParserException { String name = xmlPullParser.getName(); if (name.equals("animated-selector")) { AnimatedStateListDrawableCompat animatedStateListDrawableCompat = new AnimatedStateListDrawableCompat(); animatedStateListDrawableCompat.inflate(context, resources, xmlPullParser, attributeSet, theme); return animatedStateListDrawableCompat; } throw new XmlPullParserException(xmlPullParser.getPositionDescription() + ": invalid animated-selector tag " + name); } private void inflateChildElements(@NonNull Context context, @NonNull Resources resources, @NonNull XmlPullParser xmlPullParser, @NonNull AttributeSet attributeSet, @Nullable Resources.Theme theme) throws XmlPullParserException, IOException { int depth = xmlPullParser.getDepth() + 1; while (true) { int next = xmlPullParser.next(); if (next != 1) { int depth2 = xmlPullParser.getDepth(); if (depth2 < depth && next == 3) { return; } if (next == 2 && depth2 <= depth) { if (xmlPullParser.getName().equals(ELEMENT_ITEM)) { parseItem(context, resources, xmlPullParser, attributeSet, theme); } else if (xmlPullParser.getName().equals(ELEMENT_TRANSITION)) { parseTransition(context, resources, xmlPullParser, attributeSet, theme); } } } else { return; } } } private void init() { onStateChange(getState()); } private int parseItem(@NonNull Context context, @NonNull Resources resources, @NonNull XmlPullParser xmlPullParser, @NonNull AttributeSet attributeSet, @Nullable Resources.Theme theme) throws XmlPullParserException, IOException { int next; TypedArray obtainAttributes = TypedArrayUtils.obtainAttributes(resources, theme, attributeSet, R.styleable.AnimatedStateListDrawableItem); int resourceId = obtainAttributes.getResourceId(R.styleable.AnimatedStateListDrawableItem_android_id, 0); int resourceId2 = obtainAttributes.getResourceId(R.styleable.AnimatedStateListDrawableItem_android_drawable, -1); Drawable drawable = resourceId2 > 0 ? ResourceManagerInternal.get().getDrawable(context, resourceId2) : null; obtainAttributes.recycle(); int[] extractStateSet = extractStateSet(attributeSet); if (drawable == null) { do { next = xmlPullParser.next(); } while (next == 4); if (next == 2) { drawable = xmlPullParser.getName().equals("vector") ? VectorDrawableCompat.createFromXmlInner(resources, xmlPullParser, attributeSet, theme) : Drawable.createFromXmlInner(resources, xmlPullParser, attributeSet, theme); } else { throw new XmlPullParserException(xmlPullParser.getPositionDescription() + ITEM_MISSING_DRAWABLE_ERROR); } } if (drawable != null) { return this.mState.addStateSet(extractStateSet, drawable, resourceId); } throw new XmlPullParserException(xmlPullParser.getPositionDescription() + ITEM_MISSING_DRAWABLE_ERROR); } private int parseTransition(@NonNull Context context, @NonNull Resources resources, @NonNull XmlPullParser xmlPullParser, @NonNull AttributeSet attributeSet, @Nullable Resources.Theme theme) throws XmlPullParserException, IOException { int next; TypedArray obtainAttributes = TypedArrayUtils.obtainAttributes(resources, theme, attributeSet, R.styleable.AnimatedStateListDrawableTransition); int resourceId = obtainAttributes.getResourceId(R.styleable.AnimatedStateListDrawableTransition_android_fromId, -1); int resourceId2 = obtainAttributes.getResourceId(R.styleable.AnimatedStateListDrawableTransition_android_toId, -1); int resourceId3 = obtainAttributes.getResourceId(R.styleable.AnimatedStateListDrawableTransition_android_drawable, -1); Drawable drawable = resourceId3 > 0 ? ResourceManagerInternal.get().getDrawable(context, resourceId3) : null; boolean z2 = obtainAttributes.getBoolean(R.styleable.AnimatedStateListDrawableTransition_android_reversible, false); obtainAttributes.recycle(); if (drawable == null) { do { next = xmlPullParser.next(); } while (next == 4); if (next == 2) { drawable = xmlPullParser.getName().equals("animated-vector") ? AnimatedVectorDrawableCompat.createFromXmlInner(context, resources, xmlPullParser, attributeSet, theme) : Drawable.createFromXmlInner(resources, xmlPullParser, attributeSet, theme); } else { throw new XmlPullParserException(xmlPullParser.getPositionDescription() + TRANSITION_MISSING_DRAWABLE_ERROR); } } if (drawable == null) { throw new XmlPullParserException(xmlPullParser.getPositionDescription() + TRANSITION_MISSING_DRAWABLE_ERROR); } else if (resourceId != -1 && resourceId2 != -1) { return this.mState.addTransition(resourceId, resourceId2, drawable, z2); } else { throw new XmlPullParserException(xmlPullParser.getPositionDescription() + TRANSITION_MISSING_FROM_TO_ID); } } private boolean selectTransition(int i) { int i2; int indexOfTransition; Transition transition; Transition transition2 = this.mTransition; if (transition2 == null) { i2 = getCurrentIndex(); } else if (i == this.mTransitionToIndex) { return true; } else { if (i != this.mTransitionFromIndex || !transition2.canReverse()) { i2 = this.mTransitionToIndex; transition2.stop(); } else { transition2.reverse(); this.mTransitionToIndex = this.mTransitionFromIndex; this.mTransitionFromIndex = i; return true; } } this.mTransition = null; this.mTransitionFromIndex = -1; this.mTransitionToIndex = -1; AnimatedStateListState animatedStateListState = this.mState; int keyframeIdAt = animatedStateListState.getKeyframeIdAt(i2); int keyframeIdAt2 = animatedStateListState.getKeyframeIdAt(i); if (keyframeIdAt2 == 0 || keyframeIdAt == 0 || (indexOfTransition = animatedStateListState.indexOfTransition(keyframeIdAt, keyframeIdAt2)) < 0) { return false; } boolean transitionHasReversibleFlag = animatedStateListState.transitionHasReversibleFlag(keyframeIdAt, keyframeIdAt2); selectDrawable(indexOfTransition); Drawable current = getCurrent(); if (current instanceof AnimationDrawable) { transition = new AnimationDrawableTransition((AnimationDrawable) current, animatedStateListState.isTransitionReversed(keyframeIdAt, keyframeIdAt2), transitionHasReversibleFlag); } else if (current instanceof AnimatedVectorDrawableCompat) { transition = new AnimatedVectorDrawableTransition((AnimatedVectorDrawableCompat) current); } else { if (current instanceof Animatable) { transition = new AnimatableTransition((Animatable) current); } return false; } transition.start(); this.mTransition = transition; this.mTransitionFromIndex = i2; this.mTransitionToIndex = i; return true; } private void updateStateFromTypedArray(TypedArray typedArray) { AnimatedStateListState animatedStateListState = this.mState; animatedStateListState.mChangingConfigurations |= typedArray.getChangingConfigurations(); animatedStateListState.setVariablePadding(typedArray.getBoolean(R.styleable.AnimatedStateListDrawableCompat_android_variablePadding, animatedStateListState.mVariablePadding)); animatedStateListState.setConstantSize(typedArray.getBoolean(R.styleable.AnimatedStateListDrawableCompat_android_constantSize, animatedStateListState.mConstantSize)); animatedStateListState.setEnterFadeDuration(typedArray.getInt(R.styleable.AnimatedStateListDrawableCompat_android_enterFadeDuration, animatedStateListState.mEnterFadeDuration)); animatedStateListState.setExitFadeDuration(typedArray.getInt(R.styleable.AnimatedStateListDrawableCompat_android_exitFadeDuration, animatedStateListState.mExitFadeDuration)); setDither(typedArray.getBoolean(R.styleable.AnimatedStateListDrawableCompat_android_dither, animatedStateListState.mDither)); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable public /* bridge */ /* synthetic */ void addState(int[] iArr, Drawable drawable) { super.addState(iArr, drawable); } public void addState(@NonNull int[] iArr, @NonNull Drawable drawable, int i) { if (drawable != null) { this.mState.addStateSet(iArr, drawable, i); onStateChange(getState()); return; } throw new IllegalArgumentException("Drawable must not be null"); } public void addTransition(int i, int i2, @NonNull T t, boolean z2) { if (t != null) { this.mState.addTransition(i, i2, t, z2); return; } throw new IllegalArgumentException("Transition drawable must not be null"); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable @RequiresApi(21) public /* bridge */ /* synthetic */ void applyTheme(@NonNull Resources.Theme theme) { super.applyTheme(theme); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable @RequiresApi(21) public /* bridge */ /* synthetic */ boolean canApplyTheme() { return super.canApplyTheme(); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer public void clearMutated() { super.clearMutated(); this.mMutated = false; } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer public AnimatedStateListState cloneConstantState() { return new AnimatedStateListState(this.mState, this, null); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void draw(@NonNull Canvas canvas) { super.draw(canvas); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getAlpha() { return super.getAlpha(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getChangingConfigurations() { return super.getChangingConfigurations(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable @NonNull public /* bridge */ /* synthetic */ Drawable getCurrent() { return super.getCurrent(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void getHotspotBounds(@NonNull Rect rect) { super.getHotspotBounds(rect); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getIntrinsicHeight() { return super.getIntrinsicHeight(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getIntrinsicWidth() { return super.getIntrinsicWidth(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getMinimumHeight() { return super.getMinimumHeight(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getMinimumWidth() { return super.getMinimumWidth(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ int getOpacity() { return super.getOpacity(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable @RequiresApi(21) public /* bridge */ /* synthetic */ void getOutline(@NonNull Outline outline) { super.getOutline(outline); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ boolean getPadding(@NonNull Rect rect) { return super.getPadding(rect); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable public void inflate(@NonNull Context context, @NonNull Resources resources, @NonNull XmlPullParser xmlPullParser, @NonNull AttributeSet attributeSet, @Nullable Resources.Theme theme) throws XmlPullParserException, IOException { TypedArray obtainAttributes = TypedArrayUtils.obtainAttributes(resources, theme, attributeSet, R.styleable.AnimatedStateListDrawableCompat); setVisible(obtainAttributes.getBoolean(R.styleable.AnimatedStateListDrawableCompat_android_visible, true), true); updateStateFromTypedArray(obtainAttributes); updateDensity(resources); obtainAttributes.recycle(); inflateChildElements(context, resources, xmlPullParser, attributeSet, theme); init(); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable.Callback public /* bridge */ /* synthetic */ void invalidateDrawable(@NonNull Drawable drawable) { super.invalidateDrawable(drawable); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ boolean isAutoMirrored() { return super.isAutoMirrored(); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public boolean isStateful() { return true; } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public void jumpToCurrentState() { super.jumpToCurrentState(); Transition transition = this.mTransition; if (transition != null) { transition.stop(); this.mTransition = null; selectDrawable(this.mTransitionToIndex); this.mTransitionToIndex = -1; this.mTransitionFromIndex = -1; } } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public Drawable mutate() { if (!this.mMutated && super.mutate() == this) { this.mState.mutate(); this.mMutated = true; } return this; } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ boolean onLayoutDirectionChanged(int i) { return super.onLayoutDirectionChanged(i); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public boolean onStateChange(int[] iArr) { int indexOfKeyframe = this.mState.indexOfKeyframe(iArr); boolean z2 = indexOfKeyframe != getCurrentIndex() && (selectTransition(indexOfKeyframe) || selectDrawable(indexOfKeyframe)); Drawable current = getCurrent(); return current != null ? z2 | current.setState(iArr) : z2; } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable.Callback public /* bridge */ /* synthetic */ void scheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable, long j) { super.scheduleDrawable(drawable, runnable, j); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setAlpha(int i) { super.setAlpha(i); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setAutoMirrored(boolean z2) { super.setAutoMirrored(z2); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setColorFilter(ColorFilter colorFilter) { super.setColorFilter(colorFilter); } @Override // androidx.appcompat.graphics.drawable.StateListDrawable, androidx.appcompat.graphics.drawable.DrawableContainer public void setConstantState(@NonNull DrawableContainer.DrawableContainerState drawableContainerState) { super.setConstantState(drawableContainerState); if (drawableContainerState instanceof AnimatedStateListState) { this.mState = (AnimatedStateListState) drawableContainerState; } } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setDither(boolean z2) { super.setDither(z2); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer public /* bridge */ /* synthetic */ void setEnterFadeDuration(int i) { super.setEnterFadeDuration(i); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer public /* bridge */ /* synthetic */ void setExitFadeDuration(int i) { super.setExitFadeDuration(i); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setHotspot(float f, float f2) { super.setHotspot(f, f2); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public /* bridge */ /* synthetic */ void setHotspotBounds(int i, int i2, int i3, int i4) { super.setHotspotBounds(i, i2, i3, i4); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable public /* bridge */ /* synthetic */ void setTintList(ColorStateList colorStateList) { super.setTintList(colorStateList); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable public /* bridge */ /* synthetic */ void setTintMode(@NonNull PorterDuff.Mode mode) { super.setTintMode(mode); } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable public boolean setVisible(boolean z2, boolean z3) { boolean visible = super.setVisible(z2, z3); Transition transition = this.mTransition; if (transition != null && (visible || z3)) { if (z2) { transition.start(); } else { jumpToCurrentState(); } } return visible; } @Override // androidx.appcompat.graphics.drawable.DrawableContainer, android.graphics.drawable.Drawable.Callback public /* bridge */ /* synthetic */ void unscheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable) { super.unscheduleDrawable(drawable, runnable); } }