322 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			322 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package androidx.appcompat.widget;
 | |
| 
 | |
| import android.content.Context;
 | |
| import android.content.res.ColorStateList;
 | |
| import android.graphics.PorterDuff;
 | |
| import android.graphics.drawable.Drawable;
 | |
| import android.text.InputFilter;
 | |
| import android.util.AttributeSet;
 | |
| import android.view.ActionMode;
 | |
| import android.view.accessibility.AccessibilityEvent;
 | |
| import android.view.accessibility.AccessibilityNodeInfo;
 | |
| import android.widget.Button;
 | |
| import androidx.appcompat.R;
 | |
| import androidx.core.view.TintableBackgroundView;
 | |
| import androidx.core.widget.AutoSizeableTextView;
 | |
| import androidx.core.widget.TextViewCompat;
 | |
| import androidx.core.widget.TintableCompoundDrawablesView;
 | |
| 
 | |
| /* loaded from: classes.dex */
 | |
| public class AppCompatButton extends Button implements TintableBackgroundView, AutoSizeableTextView, TintableCompoundDrawablesView, EmojiCompatConfigurationView {
 | |
|     private AppCompatEmojiTextHelper mAppCompatEmojiTextHelper;
 | |
|     private final AppCompatBackgroundHelper mBackgroundTintHelper;
 | |
|     private final AppCompatTextHelper mTextHelper;
 | |
| 
 | |
|     public AppCompatButton(Context context) {
 | |
|         this(context, null);
 | |
|     }
 | |
| 
 | |
|     public AppCompatButton(Context context, AttributeSet attributeSet) {
 | |
|         this(context, attributeSet, R.attr.buttonStyle);
 | |
|     }
 | |
| 
 | |
|     public AppCompatButton(Context context, 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);
 | |
|         AppCompatTextHelper appCompatTextHelper = new AppCompatTextHelper(this);
 | |
|         this.mTextHelper = appCompatTextHelper;
 | |
|         appCompatTextHelper.loadFromAttributes(attributeSet, i);
 | |
|         appCompatTextHelper.applyCompoundDrawablesTints();
 | |
|         getEmojiTextViewHelper().loadFromAttributes(attributeSet, i);
 | |
|     }
 | |
| 
 | |
|     @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 // android.widget.TextView, android.view.View
 | |
|     protected void drawableStateChanged() {
 | |
|         super.drawableStateChanged();
 | |
|         AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
 | |
|         if (appCompatBackgroundHelper != null) {
 | |
|             appCompatBackgroundHelper.applySupportBackgroundTint();
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.applyCompoundDrawablesTints();
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public void setTextAppearance(Context context, int i) {
 | |
|         super.setTextAppearance(context, i);
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.onSetTextAppearance(context, i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void onInitializeAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
 | |
|         super.onInitializeAccessibilityEvent(accessibilityEvent);
 | |
|         accessibilityEvent.setClassName(Button.class.getName());
 | |
|     }
 | |
| 
 | |
|     @Override // android.view.View
 | |
|     public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo accessibilityNodeInfo) {
 | |
|         super.onInitializeAccessibilityNodeInfo(accessibilityNodeInfo);
 | |
|         accessibilityNodeInfo.setClassName(Button.class.getName());
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, android.view.View
 | |
|     protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
 | |
|         super.onLayout(z, i, i2, i3, i4);
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.onLayout(z, i, i2, i3, i4);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public void setTextSize(int i, float f) {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             super.setTextSize(i, f);
 | |
|             return;
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.setTextSize(i, f);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     protected void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
 | |
|         super.onTextChanged(charSequence, i, i2, i3);
 | |
|         if (this.mTextHelper == null || ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE || !this.mTextHelper.isAutoSizeEnabled()) {
 | |
|             return;
 | |
|         }
 | |
|         this.mTextHelper.autoSizeText();
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public void setAutoSizeTextTypeWithDefaults(int i) {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             super.setAutoSizeTextTypeWithDefaults(i);
 | |
|             return;
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.setAutoSizeTextTypeWithDefaults(i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public void setAutoSizeTextTypeUniformWithConfiguration(int i, int i2, int i3, int i4) throws IllegalArgumentException {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             super.setAutoSizeTextTypeUniformWithConfiguration(i, i2, i3, i4);
 | |
|             return;
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.setAutoSizeTextTypeUniformWithConfiguration(i, i2, i3, i4);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public void setAutoSizeTextTypeUniformWithPresetSizes(int[] iArr, int i) throws IllegalArgumentException {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             super.setAutoSizeTextTypeUniformWithPresetSizes(iArr, i);
 | |
|             return;
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.setAutoSizeTextTypeUniformWithPresetSizes(iArr, i);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public int getAutoSizeTextType() {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             return super.getAutoSizeTextType() == 1 ? 1 : 0;
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             return appCompatTextHelper.getAutoSizeTextType();
 | |
|         }
 | |
|         return 0;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public int getAutoSizeStepGranularity() {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             return super.getAutoSizeStepGranularity();
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             return appCompatTextHelper.getAutoSizeStepGranularity();
 | |
|         }
 | |
|         return -1;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public int getAutoSizeMinTextSize() {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             return super.getAutoSizeMinTextSize();
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             return appCompatTextHelper.getAutoSizeMinTextSize();
 | |
|         }
 | |
|         return -1;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public int getAutoSizeMaxTextSize() {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             return super.getAutoSizeMaxTextSize();
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             return appCompatTextHelper.getAutoSizeMaxTextSize();
 | |
|         }
 | |
|         return -1;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView, androidx.core.widget.AutoSizeableTextView
 | |
|     public int[] getAutoSizeTextAvailableSizes() {
 | |
|         if (ViewUtils.SDK_LEVEL_SUPPORTS_AUTOSIZE) {
 | |
|             return super.getAutoSizeTextAvailableSizes();
 | |
|         }
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         return appCompatTextHelper != null ? appCompatTextHelper.getAutoSizeTextAvailableSizes() : new int[0];
 | |
|     }
 | |
| 
 | |
|     public void setSupportAllCaps(boolean z) {
 | |
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
 | |
|         if (appCompatTextHelper != null) {
 | |
|             appCompatTextHelper.setAllCaps(z);
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public void setCustomSelectionActionModeCallback(ActionMode.Callback callback) {
 | |
|         super.setCustomSelectionActionModeCallback(TextViewCompat.wrapCustomSelectionActionModeCallback(this, callback));
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public ActionMode.Callback getCustomSelectionActionModeCallback() {
 | |
|         return TextViewCompat.unwrapCustomSelectionActionModeCallback(super.getCustomSelectionActionModeCallback());
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableCompoundDrawablesView
 | |
|     public void setSupportCompoundDrawablesTintList(ColorStateList colorStateList) {
 | |
|         this.mTextHelper.setCompoundDrawableTintList(colorStateList);
 | |
|         this.mTextHelper.applyCompoundDrawablesTints();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableCompoundDrawablesView
 | |
|     public ColorStateList getSupportCompoundDrawablesTintList() {
 | |
|         return this.mTextHelper.getCompoundDrawableTintList();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableCompoundDrawablesView
 | |
|     public void setSupportCompoundDrawablesTintMode(PorterDuff.Mode mode) {
 | |
|         this.mTextHelper.setCompoundDrawableTintMode(mode);
 | |
|         this.mTextHelper.applyCompoundDrawablesTints();
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.core.widget.TintableCompoundDrawablesView
 | |
|     public PorterDuff.Mode getSupportCompoundDrawablesTintMode() {
 | |
|         return this.mTextHelper.getCompoundDrawableTintMode();
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public void setFilters(InputFilter[] inputFilterArr) {
 | |
|         super.setFilters(getEmojiTextViewHelper().getFilters(inputFilterArr));
 | |
|     }
 | |
| 
 | |
|     private AppCompatEmojiTextHelper getEmojiTextViewHelper() {
 | |
|         if (this.mAppCompatEmojiTextHelper == null) {
 | |
|             this.mAppCompatEmojiTextHelper = new AppCompatEmojiTextHelper(this);
 | |
|         }
 | |
|         return this.mAppCompatEmojiTextHelper;
 | |
|     }
 | |
| 
 | |
|     @Override // android.widget.TextView
 | |
|     public void setAllCaps(boolean z) {
 | |
|         super.setAllCaps(z);
 | |
|         getEmojiTextViewHelper().setAllCaps(z);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.appcompat.widget.EmojiCompatConfigurationView
 | |
|     public void setEmojiCompatEnabled(boolean z) {
 | |
|         getEmojiTextViewHelper().setEnabled(z);
 | |
|     }
 | |
| 
 | |
|     @Override // androidx.appcompat.widget.EmojiCompatConfigurationView
 | |
|     public boolean isEmojiCompatEnabled() {
 | |
|         return getEmojiTextViewHelper().isEnabled();
 | |
|     }
 | |
| }
 |