discord-jadx/app/src/main/java/androidx/core/graphics/drawable/WrappedDrawableApi14.java

304 lines
10 KiB
Java

package androidx.core.graphics.drawable;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.Drawable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
public class WrappedDrawableApi14 extends Drawable implements Drawable.Callback, WrappedDrawable, TintAwareDrawable {
public static final PorterDuff.Mode DEFAULT_TINT_MODE = PorterDuff.Mode.SRC_IN;
private boolean mColorFilterSet;
private int mCurrentColor;
private PorterDuff.Mode mCurrentMode;
public Drawable mDrawable;
private boolean mMutated;
public WrappedDrawableState mState;
public WrappedDrawableApi14(@Nullable Drawable drawable) {
this.mState = mutateConstantState();
setWrappedDrawable(drawable);
}
public WrappedDrawableApi14(@NonNull WrappedDrawableState wrappedDrawableState, @Nullable Resources resources) {
this.mState = wrappedDrawableState;
updateLocalState(resources);
}
@NonNull
private WrappedDrawableState mutateConstantState() {
return new WrappedDrawableState(this.mState);
}
private void updateLocalState(@Nullable Resources resources) {
Drawable.ConstantState constantState;
WrappedDrawableState wrappedDrawableState = this.mState;
if (wrappedDrawableState != null && (constantState = wrappedDrawableState.mDrawableState) != null) {
setWrappedDrawable(constantState.newDrawable(resources));
}
}
private boolean updateTint(int[] iArr) {
if (!isCompatTintEnabled()) {
return false;
}
WrappedDrawableState wrappedDrawableState = this.mState;
ColorStateList colorStateList = wrappedDrawableState.mTint;
PorterDuff.Mode mode = wrappedDrawableState.mTintMode;
if (colorStateList == null || mode == null) {
this.mColorFilterSet = false;
clearColorFilter();
} else {
int colorForState = colorStateList.getColorForState(iArr, colorStateList.getDefaultColor());
if (!(this.mColorFilterSet && colorForState == this.mCurrentColor && mode == this.mCurrentMode)) {
setColorFilter(colorForState, mode);
this.mCurrentColor = colorForState;
this.mCurrentMode = mode;
this.mColorFilterSet = true;
return true;
}
}
return false;
}
@Override // android.graphics.drawable.Drawable
public void draw(@NonNull Canvas canvas) {
this.mDrawable.draw(canvas);
}
@Override // android.graphics.drawable.Drawable
public int getChangingConfigurations() {
int changingConfigurations = super.getChangingConfigurations();
WrappedDrawableState wrappedDrawableState = this.mState;
return changingConfigurations | (wrappedDrawableState != null ? wrappedDrawableState.getChangingConfigurations() : 0) | this.mDrawable.getChangingConfigurations();
}
@Override // android.graphics.drawable.Drawable
@Nullable
public Drawable.ConstantState getConstantState() {
WrappedDrawableState wrappedDrawableState = this.mState;
if (wrappedDrawableState == null || !wrappedDrawableState.canConstantState()) {
return null;
}
this.mState.mChangingConfigurations = getChangingConfigurations();
return this.mState;
}
@Override // android.graphics.drawable.Drawable
@NonNull
public Drawable getCurrent() {
return this.mDrawable.getCurrent();
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicHeight() {
return this.mDrawable.getIntrinsicHeight();
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicWidth() {
return this.mDrawable.getIntrinsicWidth();
}
@Override // android.graphics.drawable.Drawable
@RequiresApi(23)
public int getLayoutDirection() {
return DrawableCompat.getLayoutDirection(this.mDrawable);
}
@Override // android.graphics.drawable.Drawable
public int getMinimumHeight() {
return this.mDrawable.getMinimumHeight();
}
@Override // android.graphics.drawable.Drawable
public int getMinimumWidth() {
return this.mDrawable.getMinimumWidth();
}
@Override // android.graphics.drawable.Drawable
public int getOpacity() {
return this.mDrawable.getOpacity();
}
@Override // android.graphics.drawable.Drawable
public boolean getPadding(@NonNull Rect rect) {
return this.mDrawable.getPadding(rect);
}
@Override // android.graphics.drawable.Drawable
@NonNull
public int[] getState() {
return this.mDrawable.getState();
}
@Override // android.graphics.drawable.Drawable
public Region getTransparentRegion() {
return this.mDrawable.getTransparentRegion();
}
@Override // androidx.core.graphics.drawable.WrappedDrawable
public final Drawable getWrappedDrawable() {
return this.mDrawable;
}
@Override // android.graphics.drawable.Drawable.Callback
public void invalidateDrawable(@NonNull Drawable drawable) {
invalidateSelf();
}
@Override // android.graphics.drawable.Drawable
@RequiresApi(19)
public boolean isAutoMirrored() {
return DrawableCompat.isAutoMirrored(this.mDrawable);
}
public boolean isCompatTintEnabled() {
return true;
}
@Override // android.graphics.drawable.Drawable
public boolean isStateful() {
WrappedDrawableState wrappedDrawableState;
ColorStateList colorStateList = (!isCompatTintEnabled() || (wrappedDrawableState = this.mState) == null) ? null : wrappedDrawableState.mTint;
return (colorStateList != null && colorStateList.isStateful()) || this.mDrawable.isStateful();
}
@Override // android.graphics.drawable.Drawable
public void jumpToCurrentState() {
this.mDrawable.jumpToCurrentState();
}
@Override // android.graphics.drawable.Drawable
@NonNull
public Drawable mutate() {
if (!this.mMutated && super.mutate() == this) {
this.mState = mutateConstantState();
Drawable drawable = this.mDrawable;
if (drawable != null) {
drawable.mutate();
}
WrappedDrawableState wrappedDrawableState = this.mState;
if (wrappedDrawableState != null) {
Drawable drawable2 = this.mDrawable;
wrappedDrawableState.mDrawableState = drawable2 != null ? drawable2.getConstantState() : null;
}
this.mMutated = true;
}
return this;
}
@Override // android.graphics.drawable.Drawable
public void onBoundsChange(Rect rect) {
Drawable drawable = this.mDrawable;
if (drawable != null) {
drawable.setBounds(rect);
}
}
@Override // android.graphics.drawable.Drawable
@RequiresApi(23)
public boolean onLayoutDirectionChanged(int i) {
return DrawableCompat.setLayoutDirection(this.mDrawable, i);
}
@Override // android.graphics.drawable.Drawable
public boolean onLevelChange(int i) {
return this.mDrawable.setLevel(i);
}
@Override // android.graphics.drawable.Drawable.Callback
public void scheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable, long j) {
scheduleSelf(runnable, j);
}
@Override // android.graphics.drawable.Drawable
public void setAlpha(int i) {
this.mDrawable.setAlpha(i);
}
@Override // android.graphics.drawable.Drawable
@RequiresApi(19)
public void setAutoMirrored(boolean z2) {
DrawableCompat.setAutoMirrored(this.mDrawable, z2);
}
@Override // android.graphics.drawable.Drawable
public void setChangingConfigurations(int i) {
this.mDrawable.setChangingConfigurations(i);
}
@Override // android.graphics.drawable.Drawable
public void setColorFilter(ColorFilter colorFilter) {
this.mDrawable.setColorFilter(colorFilter);
}
@Override // android.graphics.drawable.Drawable
public void setDither(boolean z2) {
this.mDrawable.setDither(z2);
}
@Override // android.graphics.drawable.Drawable
public void setFilterBitmap(boolean z2) {
this.mDrawable.setFilterBitmap(z2);
}
@Override // android.graphics.drawable.Drawable
public boolean setState(@NonNull int[] iArr) {
return updateTint(iArr) || this.mDrawable.setState(iArr);
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTint(int i) {
setTintList(ColorStateList.valueOf(i));
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintList(ColorStateList colorStateList) {
this.mState.mTint = colorStateList;
updateTint(getState());
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintMode(@NonNull PorterDuff.Mode mode) {
this.mState.mTintMode = mode;
updateTint(getState());
}
@Override // android.graphics.drawable.Drawable
public boolean setVisible(boolean z2, boolean z3) {
return super.setVisible(z2, z3) || this.mDrawable.setVisible(z2, z3);
}
@Override // androidx.core.graphics.drawable.WrappedDrawable
public final void setWrappedDrawable(Drawable drawable) {
Drawable drawable2 = this.mDrawable;
if (drawable2 != null) {
drawable2.setCallback(null);
}
this.mDrawable = drawable;
if (drawable != null) {
drawable.setCallback(this);
setVisible(drawable.isVisible(), true);
setState(drawable.getState());
setLevel(drawable.getLevel());
setBounds(drawable.getBounds());
WrappedDrawableState wrappedDrawableState = this.mState;
if (wrappedDrawableState != null) {
wrappedDrawableState.mDrawableState = drawable.getConstantState();
}
}
invalidateSelf();
}
@Override // android.graphics.drawable.Drawable.Callback
public void unscheduleDrawable(@NonNull Drawable drawable, @NonNull Runnable runnable) {
unscheduleSelf(runnable);
}
}