193 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			193 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| 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.core.view.TintableBackgroundView;
 | |
| import androidx.core.widget.TintableImageSourceView;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class AppCompatImageView extends ImageView implements TintableBackgroundView, TintableImageSourceView {
 | |
|     private final AppCompatBackgroundHelper mBackgroundTintHelper;
 | |
|     private boolean mHasLevel;
 | |
|     private final AppCompatImageHelper mImageHelper;
 | |
| 
 | |
|     public AppCompatImageView(Context context) {
 | |
|         this(context, null);
 | |
|     }
 | |
| 
 | |
|     public AppCompatImageView(Context context, AttributeSet attributeSet) {
 | |
|         this(context, attributeSet, 0);
 | |
|     }
 | |
| 
 | |
|     public AppCompatImageView(Context context, AttributeSet attributeSet, int i) {
 | |
|         super(TintContextWrapper.wrap(context), attributeSet, i);
 | |
|         this.mHasLevel = false;
 | |
|         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
 | |
|     public void setImageResource(int i) {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             appCompatImageHelper.setImageResource(i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.ImageView
 | |
|     public void setImageDrawable(Drawable drawable) {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null && drawable != null && !this.mHasLevel) {
 | |
|             appCompatImageHelper.obtainLevelFromDrawable(drawable);
 | |
|         }
 | |
|         super.setImageDrawable(drawable);
 | |
|         AppCompatImageHelper appCompatImageHelper2 = this.mImageHelper;
 | |
|         if (appCompatImageHelper2 != null) {
 | |
|             appCompatImageHelper2.applySupportImageTint();
 | |
|             if (this.mHasLevel) {
 | |
|                 return;
 | |
|             }
 | |
|             this.mImageHelper.applyImageLevel();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @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 setImageURI(Uri uri) {
 | |
|         super.setImageURI(uri);
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             appCompatImageHelper.applySupportImageTint();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void setBackgroundResource(int i) {
 | |
|         super.setBackgroundResource(i);
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.onSetBackgroundResource(i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void setBackgroundDrawable(Drawable drawable) {
 | |
|         super.setBackgroundDrawable(drawable);
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.onSetBackgroundDrawable(drawable);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.TintableBackgroundView
 | |
|     public void setSupportBackgroundTintList(ColorStateList colorStateList) {
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.setSupportBackgroundTintList(colorStateList);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.TintableBackgroundView
 | |
|     public ColorStateList getSupportBackgroundTintList() {
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             return appCompatBackgroundHelper.getSupportBackgroundTintList();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.TintableBackgroundView
 | |
|     public void setSupportBackgroundTintMode(PorterDuff.Mode mode) {
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.setSupportBackgroundTintMode(mode);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.view.TintableBackgroundView
 | |
|     public PorterDuff.Mode getSupportBackgroundTintMode() {
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             return appCompatBackgroundHelper.getSupportBackgroundTintMode();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableImageSourceView
 | |
|     public void setSupportImageTintList(ColorStateList colorStateList) {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             appCompatImageHelper.setSupportImageTintList(colorStateList);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableImageSourceView
 | |
|     public ColorStateList getSupportImageTintList() {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             return appCompatImageHelper.getSupportImageTintList();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableImageSourceView
 | |
|     public void setSupportImageTintMode(PorterDuff.Mode mode) {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             appCompatImageHelper.setSupportImageTintMode(mode);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableImageSourceView
 | |
|     public PorterDuff.Mode getSupportImageTintMode() {
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             return appCompatImageHelper.getSupportImageTintMode();
 | |
|         }
 | |
|         return null;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.ImageView, android.view.View
 | |
|     protected void drawableStateChanged() {
 | |
|         super.drawableStateChanged();
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.applySupportBackgroundTint();
 | |
|         }
 | |
|         AppCompatImageHelper appCompatImageHelper = this.mImageHelper;
 | |
|         if (appCompatImageHelper != null) {
 | |
|             appCompatImageHelper.applySupportImageTint();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.ImageView, android.view.View
 | |
|     public boolean hasOverlappingRendering() {
 | |
|         return this.mImageHelper.hasOverlappingRendering() && super.hasOverlappingRendering();
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.ImageView
 | |
|     public void setImageLevel(int i) {
 | |
|         super.setImageLevel(i);
 | |
|         this.mHasLevel = true;
 | |
|     }
 | |
| }
 |