package androidx.appcompat.widget; import android.content.Context; import android.content.res.ColorStateList; import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.drawable.Drawable; import android.net.Uri; import android.util.AttributeSet; import android.widget.ImageView; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RestrictTo; import androidx.core.view.TintableBackgroundView; import androidx.core.widget.TintableImageSourceView; public class AppCompatImageView extends ImageView implements TintableBackgroundView, TintableImageSourceView { private final AppCompatBackgroundHelper mBackgroundTintHelper; private final AppCompatImageHelper mImageHelper; public AppCompatImageView(@NonNull Context context) { this(context, null); } public AppCompatImageView(@NonNull Context context, @Nullable AttributeSet attributeSet) { this(context, attributeSet, 0); } public AppCompatImageView(@NonNull Context context, @Nullable AttributeSet attributeSet, int i) { super(TintContextWrapper.wrap(context), attributeSet, i); ThemeUtils.checkAppCompatTheme(this, getContext()); AppCompatBackgroundHelper appCompatBackgroundHelper = new AppCompatBackgroundHelper(this); this.mBackgroundTintHelper = appCompatBackgroundHelper; appCompatBackgroundHelper.loadFromAttributes(attributeSet, i); AppCompatImageHelper appCompatImageHelper = new AppCompatImageHelper(this); this.mImageHelper = appCompatImageHelper; appCompatImageHelper.loadFromAttributes(attributeSet, i); } @Override // android.widget.ImageView, android.view.View public void drawableStateChanged() { super.drawableStateChanged(); AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { appCompatBackgroundHelper.applySupportBackgroundTint(); } AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.applySupportImageTint(); } } @Override // androidx.core.view.TintableBackgroundView @Nullable @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public ColorStateList getSupportBackgroundTintList() { AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { return appCompatBackgroundHelper.getSupportBackgroundTintList(); } return null; } @Override // androidx.core.view.TintableBackgroundView @Nullable @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public PorterDuff.Mode getSupportBackgroundTintMode() { AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { return appCompatBackgroundHelper.getSupportBackgroundTintMode(); } return null; } @Override // androidx.core.widget.TintableImageSourceView @Nullable @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public ColorStateList getSupportImageTintList() { AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { return appCompatImageHelper.getSupportImageTintList(); } return null; } @Override // androidx.core.widget.TintableImageSourceView @Nullable @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public PorterDuff.Mode getSupportImageTintMode() { AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { return appCompatImageHelper.getSupportImageTintMode(); } return null; } @Override // android.widget.ImageView, android.view.View public boolean hasOverlappingRendering() { return this.mImageHelper.hasOverlappingRendering() && super.hasOverlappingRendering(); } @Override // android.view.View public void setBackgroundDrawable(Drawable drawable) { super.setBackgroundDrawable(drawable); AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { appCompatBackgroundHelper.onSetBackgroundDrawable(drawable); } } @Override // android.view.View public void setBackgroundResource(@DrawableRes int i) { super.setBackgroundResource(i); AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { appCompatBackgroundHelper.onSetBackgroundResource(i); } } @Override // android.widget.ImageView public void setImageBitmap(Bitmap bitmap) { super.setImageBitmap(bitmap); AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.applySupportImageTint(); } } @Override // android.widget.ImageView public void setImageDrawable(@Nullable Drawable drawable) { super.setImageDrawable(drawable); AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.applySupportImageTint(); } } @Override // android.widget.ImageView public void setImageResource(@DrawableRes int i) { AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.setImageResource(i); } } @Override // android.widget.ImageView public void setImageURI(@Nullable Uri uri) { super.setImageURI(uri); AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.applySupportImageTint(); } } @Override // androidx.core.view.TintableBackgroundView @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public void setSupportBackgroundTintList(@Nullable ColorStateList colorStateList) { AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { appCompatBackgroundHelper.setSupportBackgroundTintList(colorStateList); } } @Override // androidx.core.view.TintableBackgroundView @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public void setSupportBackgroundTintMode(@Nullable PorterDuff.Mode mode) { AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper; if (appCompatBackgroundHelper != null) { appCompatBackgroundHelper.setSupportBackgroundTintMode(mode); } } @Override // androidx.core.widget.TintableImageSourceView @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public void setSupportImageTintList(@Nullable ColorStateList colorStateList) { AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.setSupportImageTintList(colorStateList); } } @Override // androidx.core.widget.TintableImageSourceView @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP_PREFIX}) public void setSupportImageTintMode(@Nullable PorterDuff.Mode mode) { AppCompatImageHelper appCompatImageHelper = this.mImageHelper; if (appCompatImageHelper != null) { appCompatImageHelper.setSupportImageTintMode(mode); } } }