138 lines
6.0 KiB
Java
138 lines
6.0 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.util.AttributeSet;
|
|
import android.view.inputmethod.EditorInfo;
|
|
import android.view.inputmethod.InputConnection;
|
|
import android.widget.MultiAutoCompleteTextView;
|
|
import androidx.annotation.DrawableRes;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.Nullable;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.appcompat.R;
|
|
import androidx.appcompat.content.res.AppCompatResources;
|
|
import androidx.core.view.TintableBackgroundView;
|
|
public class AppCompatMultiAutoCompleteTextView extends MultiAutoCompleteTextView implements TintableBackgroundView {
|
|
private static final int[] TINT_ATTRS = {16843126};
|
|
private final AppCompatBackgroundHelper mBackgroundTintHelper;
|
|
private final AppCompatTextHelper mTextHelper;
|
|
|
|
public AppCompatMultiAutoCompleteTextView(@NonNull Context context) {
|
|
this(context, null);
|
|
}
|
|
|
|
public AppCompatMultiAutoCompleteTextView(@NonNull Context context, @Nullable AttributeSet attributeSet) {
|
|
this(context, attributeSet, R.attr.autoCompleteTextViewStyle);
|
|
}
|
|
|
|
public AppCompatMultiAutoCompleteTextView(@NonNull Context context, @Nullable AttributeSet attributeSet, int i) {
|
|
super(TintContextWrapper.wrap(context), attributeSet, i);
|
|
ThemeUtils.checkAppCompatTheme(this, getContext());
|
|
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(getContext(), attributeSet, TINT_ATTRS, i, 0);
|
|
if (obtainStyledAttributes.hasValue(0)) {
|
|
setDropDownBackgroundDrawable(obtainStyledAttributes.getDrawable(0));
|
|
}
|
|
obtainStyledAttributes.recycle();
|
|
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();
|
|
}
|
|
|
|
@Override // android.widget.TextView, android.view.View
|
|
public void drawableStateChanged() {
|
|
super.drawableStateChanged();
|
|
AppCompatBackgroundHelper appCompatBackgroundHelper = this.mBackgroundTintHelper;
|
|
if (appCompatBackgroundHelper != null) {
|
|
appCompatBackgroundHelper.applySupportBackgroundTint();
|
|
}
|
|
AppCompatTextHelper appCompatTextHelper = this.mTextHelper;
|
|
if (appCompatTextHelper != null) {
|
|
appCompatTextHelper.applyCompoundDrawablesTints();
|
|
}
|
|
}
|
|
|
|
@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 // android.widget.TextView, android.view.View
|
|
public InputConnection onCreateInputConnection(EditorInfo editorInfo) {
|
|
return AppCompatHintHelper.onCreateInputConnection(super.onCreateInputConnection(editorInfo), editorInfo, this);
|
|
}
|
|
|
|
@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.AutoCompleteTextView
|
|
public void setDropDownBackgroundResource(@DrawableRes int i) {
|
|
setDropDownBackgroundDrawable(AppCompatResources.getDrawable(getContext(), i));
|
|
}
|
|
|
|
@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 // 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);
|
|
}
|
|
}
|
|
}
|