mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2025-01-09 13:43:22 +00:00
160 lines
6.7 KiB
Java
160 lines
6.7 KiB
Java
package androidx.appcompat.widget;
|
|
|
|
import android.content.res.ColorStateList;
|
|
import android.graphics.PorterDuff;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import androidx.appcompat.R;
|
|
import androidx.core.view.ViewCompat;
|
|
|
|
/* loaded from: classes.dex */
|
|
class AppCompatBackgroundHelper {
|
|
private TintInfo mBackgroundTint;
|
|
private TintInfo mInternalBackgroundTint;
|
|
private TintInfo mTmpInfo;
|
|
private final View mView;
|
|
private int mBackgroundResId = -1;
|
|
private final AppCompatDrawableManager mDrawableManager = AppCompatDrawableManager.get();
|
|
|
|
private boolean shouldApplyFrameworkTintUsingColorFilter() {
|
|
return this.mInternalBackgroundTint != null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public AppCompatBackgroundHelper(View view) {
|
|
this.mView = view;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void loadFromAttributes(AttributeSet attributeSet, int i) {
|
|
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(this.mView.getContext(), attributeSet, R.styleable.ViewBackgroundHelper, i, 0);
|
|
View view = this.mView;
|
|
ViewCompat.saveAttributeDataForStyleable(view, view.getContext(), R.styleable.ViewBackgroundHelper, attributeSet, obtainStyledAttributes.getWrappedTypeArray(), i, 0);
|
|
try {
|
|
if (obtainStyledAttributes.hasValue(R.styleable.ViewBackgroundHelper_android_background)) {
|
|
this.mBackgroundResId = obtainStyledAttributes.getResourceId(R.styleable.ViewBackgroundHelper_android_background, -1);
|
|
ColorStateList tintList = this.mDrawableManager.getTintList(this.mView.getContext(), this.mBackgroundResId);
|
|
if (tintList != null) {
|
|
setInternalBackgroundTint(tintList);
|
|
}
|
|
}
|
|
if (obtainStyledAttributes.hasValue(R.styleable.ViewBackgroundHelper_backgroundTint)) {
|
|
ViewCompat.setBackgroundTintList(this.mView, obtainStyledAttributes.getColorStateList(R.styleable.ViewBackgroundHelper_backgroundTint));
|
|
}
|
|
if (obtainStyledAttributes.hasValue(R.styleable.ViewBackgroundHelper_backgroundTintMode)) {
|
|
ViewCompat.setBackgroundTintMode(this.mView, DrawableUtils.parseTintMode(obtainStyledAttributes.getInt(R.styleable.ViewBackgroundHelper_backgroundTintMode, -1), null));
|
|
}
|
|
} finally {
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void onSetBackgroundResource(int i) {
|
|
this.mBackgroundResId = i;
|
|
AppCompatDrawableManager appCompatDrawableManager = this.mDrawableManager;
|
|
setInternalBackgroundTint(appCompatDrawableManager != null ? appCompatDrawableManager.getTintList(this.mView.getContext(), i) : null);
|
|
applySupportBackgroundTint();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void onSetBackgroundDrawable(Drawable drawable) {
|
|
this.mBackgroundResId = -1;
|
|
setInternalBackgroundTint(null);
|
|
applySupportBackgroundTint();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setSupportBackgroundTintList(ColorStateList colorStateList) {
|
|
if (this.mBackgroundTint == null) {
|
|
this.mBackgroundTint = new TintInfo();
|
|
}
|
|
this.mBackgroundTint.mTintList = colorStateList;
|
|
this.mBackgroundTint.mHasTintList = true;
|
|
applySupportBackgroundTint();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getSupportBackgroundTintList() {
|
|
TintInfo tintInfo = this.mBackgroundTint;
|
|
if (tintInfo != null) {
|
|
return tintInfo.mTintList;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setSupportBackgroundTintMode(PorterDuff.Mode mode) {
|
|
if (this.mBackgroundTint == null) {
|
|
this.mBackgroundTint = new TintInfo();
|
|
}
|
|
this.mBackgroundTint.mTintMode = mode;
|
|
this.mBackgroundTint.mHasTintMode = true;
|
|
applySupportBackgroundTint();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public PorterDuff.Mode getSupportBackgroundTintMode() {
|
|
TintInfo tintInfo = this.mBackgroundTint;
|
|
if (tintInfo != null) {
|
|
return tintInfo.mTintMode;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void applySupportBackgroundTint() {
|
|
Drawable background = this.mView.getBackground();
|
|
if (background != null) {
|
|
if (shouldApplyFrameworkTintUsingColorFilter() && applyFrameworkTintUsingColorFilter(background)) {
|
|
return;
|
|
}
|
|
TintInfo tintInfo = this.mBackgroundTint;
|
|
if (tintInfo != null) {
|
|
AppCompatDrawableManager.tintDrawable(background, tintInfo, this.mView.getDrawableState());
|
|
return;
|
|
}
|
|
TintInfo tintInfo2 = this.mInternalBackgroundTint;
|
|
if (tintInfo2 != null) {
|
|
AppCompatDrawableManager.tintDrawable(background, tintInfo2, this.mView.getDrawableState());
|
|
}
|
|
}
|
|
}
|
|
|
|
void setInternalBackgroundTint(ColorStateList colorStateList) {
|
|
if (colorStateList != null) {
|
|
if (this.mInternalBackgroundTint == null) {
|
|
this.mInternalBackgroundTint = new TintInfo();
|
|
}
|
|
this.mInternalBackgroundTint.mTintList = colorStateList;
|
|
this.mInternalBackgroundTint.mHasTintList = true;
|
|
} else {
|
|
this.mInternalBackgroundTint = null;
|
|
}
|
|
applySupportBackgroundTint();
|
|
}
|
|
|
|
private boolean applyFrameworkTintUsingColorFilter(Drawable drawable) {
|
|
if (this.mTmpInfo == null) {
|
|
this.mTmpInfo = new TintInfo();
|
|
}
|
|
TintInfo tintInfo = this.mTmpInfo;
|
|
tintInfo.clear();
|
|
ColorStateList backgroundTintList = ViewCompat.getBackgroundTintList(this.mView);
|
|
if (backgroundTintList != null) {
|
|
tintInfo.mHasTintList = true;
|
|
tintInfo.mTintList = backgroundTintList;
|
|
}
|
|
PorterDuff.Mode backgroundTintMode = ViewCompat.getBackgroundTintMode(this.mView);
|
|
if (backgroundTintMode != null) {
|
|
tintInfo.mHasTintMode = true;
|
|
tintInfo.mTintMode = backgroundTintMode;
|
|
}
|
|
if (!tintInfo.mHasTintList && !tintInfo.mHasTintMode) {
|
|
return false;
|
|
}
|
|
AppCompatDrawableManager.tintDrawable(drawable, tintInfo, this.mView.getDrawableState());
|
|
return true;
|
|
}
|
|
}
|