ADD week 5
This commit is contained in:
		| @@ -0,0 +1,301 @@ | ||||
| package androidx.appcompat.widget; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.content.res.ColorStateList; | ||||
| import android.graphics.PorterDuff; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.os.Build; | ||||
| import android.text.Editable; | ||||
| import android.text.method.KeyListener; | ||||
| import android.util.AttributeSet; | ||||
| import android.view.ActionMode; | ||||
| import android.view.DragEvent; | ||||
| import android.view.inputmethod.EditorInfo; | ||||
| import android.view.inputmethod.InputConnection; | ||||
| import android.view.textclassifier.TextClassifier; | ||||
| import android.widget.EditText; | ||||
| import androidx.appcompat.R; | ||||
| import androidx.core.view.ContentInfoCompat; | ||||
| import androidx.core.view.OnReceiveContentViewBehavior; | ||||
| import androidx.core.view.TintableBackgroundView; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import androidx.core.view.inputmethod.EditorInfoCompat; | ||||
| import androidx.core.view.inputmethod.InputConnectionCompat; | ||||
| import androidx.core.widget.TextViewCompat; | ||||
| import androidx.core.widget.TextViewOnReceiveContentListener; | ||||
| import androidx.core.widget.TintableCompoundDrawablesView; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class AppCompatEditText extends EditText implements TintableBackgroundView, OnReceiveContentViewBehavior, EmojiCompatConfigurationView, TintableCompoundDrawablesView { | ||||
|     private final AppCompatEmojiEditTextHelper mAppCompatEmojiEditTextHelper; | ||||
|     private final AppCompatBackgroundHelper mBackgroundTintHelper; | ||||
|     private final TextViewOnReceiveContentListener mDefaultOnReceiveContentListener; | ||||
|     private SuperCaller mSuperCaller; | ||||
|     private final AppCompatTextClassifierHelper mTextClassifierHelper; | ||||
|     private final AppCompatTextHelper mTextHelper; | ||||
|  | ||||
|     public AppCompatEditText(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public AppCompatEditText(Context context, AttributeSet attributeSet) { | ||||
|         this(context, attributeSet, R.attr.editTextStyle); | ||||
|     } | ||||
|  | ||||
|     public AppCompatEditText(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(); | ||||
|         this.mTextClassifierHelper = new AppCompatTextClassifierHelper(this); | ||||
|         this.mDefaultOnReceiveContentListener = new TextViewOnReceiveContentListener(); | ||||
|         AppCompatEmojiEditTextHelper appCompatEmojiEditTextHelper = new AppCompatEmojiEditTextHelper(this); | ||||
|         this.mAppCompatEmojiEditTextHelper = appCompatEmojiEditTextHelper; | ||||
|         appCompatEmojiEditTextHelper.loadFromAttributes(attributeSet, i); | ||||
|         initEmojiKeyListener(appCompatEmojiEditTextHelper); | ||||
|     } | ||||
|  | ||||
|     void initEmojiKeyListener(AppCompatEmojiEditTextHelper appCompatEmojiEditTextHelper) { | ||||
|         KeyListener keyListener = getKeyListener(); | ||||
|         if (appCompatEmojiEditTextHelper.isEmojiCapableKeyListener(keyListener)) { | ||||
|             boolean isFocusable = super.isFocusable(); | ||||
|             boolean isClickable = super.isClickable(); | ||||
|             boolean isLongClickable = super.isLongClickable(); | ||||
|             int inputType = super.getInputType(); | ||||
|             KeyListener keyListener2 = appCompatEmojiEditTextHelper.getKeyListener(keyListener); | ||||
|             if (keyListener2 == keyListener) { | ||||
|                 return; | ||||
|             } | ||||
|             super.setKeyListener(keyListener2); | ||||
|             super.setRawInputType(inputType); | ||||
|             super.setFocusable(isFocusable); | ||||
|             super.setClickable(isClickable); | ||||
|             super.setLongClickable(isLongClickable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.EditText, android.widget.TextView | ||||
|     public Editable getText() { | ||||
|         if (Build.VERSION.SDK_INT >= 28) { | ||||
|             return super.getText(); | ||||
|         } | ||||
|         return super.getEditableText(); | ||||
|     } | ||||
|  | ||||
|     @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.widget.TextView, android.view.View | ||||
|     public InputConnection onCreateInputConnection(EditorInfo editorInfo) { | ||||
|         String[] onReceiveContentMimeTypes; | ||||
|         InputConnection onCreateInputConnection = super.onCreateInputConnection(editorInfo); | ||||
|         this.mTextHelper.populateSurroundingTextIfNeeded(this, onCreateInputConnection, editorInfo); | ||||
|         InputConnection onCreateInputConnection2 = AppCompatHintHelper.onCreateInputConnection(onCreateInputConnection, editorInfo, this); | ||||
|         if (onCreateInputConnection2 != null && Build.VERSION.SDK_INT <= 30 && (onReceiveContentMimeTypes = ViewCompat.getOnReceiveContentMimeTypes(this)) != null) { | ||||
|             EditorInfoCompat.setContentMimeTypes(editorInfo, onReceiveContentMimeTypes); | ||||
|             onCreateInputConnection2 = InputConnectionCompat.createWrapper(this, onCreateInputConnection2, editorInfo); | ||||
|         } | ||||
|         return this.mAppCompatEmojiEditTextHelper.onCreateInputConnection(onCreateInputConnection2, editorInfo); | ||||
|     } | ||||
|  | ||||
|     @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()); | ||||
|     } | ||||
|  | ||||
|     private SuperCaller getSuperCaller() { | ||||
|         if (this.mSuperCaller == null) { | ||||
|             this.mSuperCaller = new SuperCaller(); | ||||
|         } | ||||
|         return this.mSuperCaller; | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView | ||||
|     public void setTextClassifier(TextClassifier textClassifier) { | ||||
|         AppCompatTextClassifierHelper appCompatTextClassifierHelper; | ||||
|         if (Build.VERSION.SDK_INT >= 28 || (appCompatTextClassifierHelper = this.mTextClassifierHelper) == null) { | ||||
|             getSuperCaller().setTextClassifier(textClassifier); | ||||
|         } else { | ||||
|             appCompatTextClassifierHelper.setTextClassifier(textClassifier); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView | ||||
|     public TextClassifier getTextClassifier() { | ||||
|         AppCompatTextClassifierHelper appCompatTextClassifierHelper; | ||||
|         if (Build.VERSION.SDK_INT >= 28 || (appCompatTextClassifierHelper = this.mTextClassifierHelper) == null) { | ||||
|             return getSuperCaller().getTextClassifier(); | ||||
|         } | ||||
|         return appCompatTextClassifierHelper.getTextClassifier(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView, android.view.View | ||||
|     public boolean onDragEvent(DragEvent dragEvent) { | ||||
|         if (AppCompatReceiveContentHelper.maybeHandleDragEventViaPerformReceiveContent(this, dragEvent)) { | ||||
|             return true; | ||||
|         } | ||||
|         return super.onDragEvent(dragEvent); | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.EditText, android.widget.TextView | ||||
|     public boolean onTextContextMenuItem(int i) { | ||||
|         if (AppCompatReceiveContentHelper.maybeHandleMenuActionViaPerformReceiveContent(this, i)) { | ||||
|             return true; | ||||
|         } | ||||
|         return super.onTextContextMenuItem(i); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.view.OnReceiveContentViewBehavior | ||||
|     public ContentInfoCompat onReceiveContent(ContentInfoCompat contentInfoCompat) { | ||||
|         return this.mDefaultOnReceiveContentListener.onReceiveContent(this, contentInfoCompat); | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView | ||||
|     public void setKeyListener(KeyListener keyListener) { | ||||
|         super.setKeyListener(this.mAppCompatEmojiEditTextHelper.getKeyListener(keyListener)); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.EmojiCompatConfigurationView | ||||
|     public void setEmojiCompatEnabled(boolean z) { | ||||
|         this.mAppCompatEmojiEditTextHelper.setEnabled(z); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.EmojiCompatConfigurationView | ||||
|     public boolean isEmojiCompatEnabled() { | ||||
|         return this.mAppCompatEmojiEditTextHelper.isEnabled(); | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView | ||||
|     public void setCompoundDrawables(Drawable drawable, Drawable drawable2, Drawable drawable3, Drawable drawable4) { | ||||
|         super.setCompoundDrawables(drawable, drawable2, drawable3, drawable4); | ||||
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper; | ||||
|         if (appCompatTextHelper != null) { | ||||
|             appCompatTextHelper.onSetCompoundDrawables(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // android.widget.TextView | ||||
|     public void setCompoundDrawablesRelative(Drawable drawable, Drawable drawable2, Drawable drawable3, Drawable drawable4) { | ||||
|         super.setCompoundDrawablesRelative(drawable, drawable2, drawable3, drawable4); | ||||
|         AppCompatTextHelper appCompatTextHelper = this.mTextHelper; | ||||
|         if (appCompatTextHelper != null) { | ||||
|             appCompatTextHelper.onSetCompoundDrawables(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.widget.TintableCompoundDrawablesView | ||||
|     public ColorStateList getSupportCompoundDrawablesTintList() { | ||||
|         return this.mTextHelper.getCompoundDrawableTintList(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.widget.TintableCompoundDrawablesView | ||||
|     public void setSupportCompoundDrawablesTintList(ColorStateList colorStateList) { | ||||
|         this.mTextHelper.setCompoundDrawableTintList(colorStateList); | ||||
|         this.mTextHelper.applyCompoundDrawablesTints(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.widget.TintableCompoundDrawablesView | ||||
|     public PorterDuff.Mode getSupportCompoundDrawablesTintMode() { | ||||
|         return this.mTextHelper.getCompoundDrawableTintMode(); | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.core.widget.TintableCompoundDrawablesView | ||||
|     public void setSupportCompoundDrawablesTintMode(PorterDuff.Mode mode) { | ||||
|         this.mTextHelper.setCompoundDrawableTintMode(mode); | ||||
|         this.mTextHelper.applyCompoundDrawablesTints(); | ||||
|     } | ||||
|  | ||||
|     class SuperCaller { | ||||
|         SuperCaller() { | ||||
|         } | ||||
|  | ||||
|         public TextClassifier getTextClassifier() { | ||||
|             return AppCompatEditText.super.getTextClassifier(); | ||||
|         } | ||||
|  | ||||
|         public void setTextClassifier(TextClassifier textClassifier) { | ||||
|             AppCompatEditText.super.setTextClassifier(textClassifier); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user