Rabbit-R1/android (non root)/java/sources/com/google/android/material/chip/ChipDrawable.java
2024-05-21 17:08:36 -04:00

1599 lines
61 KiB
Java

package com.google.android.material.chip;
import android.R;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Outline;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
import android.graphics.drawable.ShapeDrawable;
import android.graphics.drawable.shapes.OvalShape;
import android.text.TextUtils;
import android.util.AttributeSet;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.core.graphics.ColorUtils;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.graphics.drawable.TintAwareDrawable;
import androidx.core.internal.view.SupportMenu;
import androidx.core.text.BidiFormatter;
import androidx.core.view.ViewCompat;
import com.google.android.material.animation.MotionSpec;
import com.google.android.material.canvas.CanvasCompat;
import com.google.android.material.color.MaterialColors;
import com.google.android.material.drawable.DrawableUtils;
import com.google.android.material.internal.TextDrawableHelper;
import com.google.android.material.internal.ThemeEnforcement;
import com.google.android.material.internal.ViewUtils;
import com.google.android.material.resources.MaterialResources;
import com.google.android.material.resources.TextAppearance;
import com.google.android.material.ripple.RippleUtils;
import com.google.android.material.shape.MaterialShapeDrawable;
import java.lang.ref.WeakReference;
import java.util.Arrays;
/* loaded from: classes2.dex */
public class ChipDrawable extends MaterialShapeDrawable implements TintAwareDrawable, Drawable.Callback, TextDrawableHelper.TextDrawableDelegate {
private static final boolean DEBUG = false;
private static final int MAX_CHIP_ICON_HEIGHT = 24;
private static final String NAMESPACE_APP = "http://schemas.android.com/apk/res-auto";
private int alpha;
private boolean checkable;
private Drawable checkedIcon;
private ColorStateList checkedIconTint;
private boolean checkedIconVisible;
private ColorStateList chipBackgroundColor;
private float chipCornerRadius;
private float chipEndPadding;
private Drawable chipIcon;
private float chipIconSize;
private ColorStateList chipIconTint;
private boolean chipIconVisible;
private float chipMinHeight;
private final Paint chipPaint;
private float chipStartPadding;
private ColorStateList chipStrokeColor;
private float chipStrokeWidth;
private ColorStateList chipSurfaceColor;
private Drawable closeIcon;
private CharSequence closeIconContentDescription;
private float closeIconEndPadding;
private Drawable closeIconRipple;
private float closeIconSize;
private float closeIconStartPadding;
private int[] closeIconStateSet;
private ColorStateList closeIconTint;
private boolean closeIconVisible;
private ColorFilter colorFilter;
private ColorStateList compatRippleColor;
private final Context context;
private boolean currentChecked;
private int currentChipBackgroundColor;
private int currentChipStrokeColor;
private int currentChipSurfaceColor;
private int currentCompatRippleColor;
private int currentCompositeSurfaceBackgroundColor;
private int currentTextColor;
private int currentTint;
private final Paint debugPaint;
private WeakReference<Delegate> delegate;
private final Paint.FontMetrics fontMetrics;
private boolean hasChipIconTint;
private MotionSpec hideMotionSpec;
private float iconEndPadding;
private float iconStartPadding;
private boolean isShapeThemingEnabled;
private int maxWidth;
private final PointF pointF;
private final RectF rectF;
private ColorStateList rippleColor;
private final Path shapePath;
private boolean shouldDrawText;
private MotionSpec showMotionSpec;
private CharSequence text;
private final TextDrawableHelper textDrawableHelper;
private float textEndPadding;
private float textStartPadding;
private ColorStateList tint;
private PorterDuffColorFilter tintFilter;
private PorterDuff.Mode tintMode;
private TextUtils.TruncateAt truncateAt;
private boolean useCompatRipple;
private static final int[] DEFAULT_STATE = {R.attr.state_enabled};
private static final ShapeDrawable closeIconRippleMask = new ShapeDrawable(new OvalShape());
/* loaded from: classes2.dex */
public interface Delegate {
void onChipDrawableSizeChange();
}
private boolean canShowCheckedIcon() {
return this.checkedIconVisible && this.checkedIcon != null && this.checkable;
}
private ColorFilter getTintColorFilter() {
ColorFilter colorFilter = this.colorFilter;
return colorFilter != null ? colorFilter : this.tintFilter;
}
private boolean showsCheckedIcon() {
return this.checkedIconVisible && this.checkedIcon != null && this.currentChecked;
}
private boolean showsChipIcon() {
return this.chipIconVisible && this.chipIcon != null;
}
private boolean showsCloseIcon() {
return this.closeIconVisible && this.closeIcon != null;
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public int getAlpha() {
return this.alpha;
}
public Drawable getCheckedIcon() {
return this.checkedIcon;
}
public ColorStateList getCheckedIconTint() {
return this.checkedIconTint;
}
public ColorStateList getChipBackgroundColor() {
return this.chipBackgroundColor;
}
public float getChipEndPadding() {
return this.chipEndPadding;
}
public float getChipIconSize() {
return this.chipIconSize;
}
public ColorStateList getChipIconTint() {
return this.chipIconTint;
}
public float getChipMinHeight() {
return this.chipMinHeight;
}
public float getChipStartPadding() {
return this.chipStartPadding;
}
public ColorStateList getChipStrokeColor() {
return this.chipStrokeColor;
}
public float getChipStrokeWidth() {
return this.chipStrokeWidth;
}
public CharSequence getCloseIconContentDescription() {
return this.closeIconContentDescription;
}
public float getCloseIconEndPadding() {
return this.closeIconEndPadding;
}
public float getCloseIconSize() {
return this.closeIconSize;
}
public float getCloseIconStartPadding() {
return this.closeIconStartPadding;
}
public int[] getCloseIconState() {
return this.closeIconStateSet;
}
public ColorStateList getCloseIconTint() {
return this.closeIconTint;
}
@Override // android.graphics.drawable.Drawable
public ColorFilter getColorFilter() {
return this.colorFilter;
}
public TextUtils.TruncateAt getEllipsize() {
return this.truncateAt;
}
public MotionSpec getHideMotionSpec() {
return this.hideMotionSpec;
}
public float getIconEndPadding() {
return this.iconEndPadding;
}
public float getIconStartPadding() {
return this.iconStartPadding;
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicHeight() {
return (int) this.chipMinHeight;
}
public int getMaxWidth() {
return this.maxWidth;
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public int getOpacity() {
return -3;
}
public ColorStateList getRippleColor() {
return this.rippleColor;
}
public MotionSpec getShowMotionSpec() {
return this.showMotionSpec;
}
public CharSequence getText() {
return this.text;
}
public float getTextEndPadding() {
return this.textEndPadding;
}
public float getTextStartPadding() {
return this.textStartPadding;
}
public boolean getUseCompatRipple() {
return this.useCompatRipple;
}
public boolean isCheckable() {
return this.checkable;
}
public boolean isCheckedIconVisible() {
return this.checkedIconVisible;
}
public boolean isChipIconVisible() {
return this.chipIconVisible;
}
public boolean isCloseIconVisible() {
return this.closeIconVisible;
}
boolean isShapeThemingEnabled() {
return this.isShapeThemingEnabled;
}
public void setEllipsize(TextUtils.TruncateAt truncateAt) {
this.truncateAt = truncateAt;
}
public void setHideMotionSpec(MotionSpec motionSpec) {
this.hideMotionSpec = motionSpec;
}
public void setMaxWidth(int i) {
this.maxWidth = i;
}
/* JADX INFO: Access modifiers changed from: package-private */
public void setShouldDrawText(boolean z) {
this.shouldDrawText = z;
}
public void setShowMotionSpec(MotionSpec motionSpec) {
this.showMotionSpec = motionSpec;
}
/* JADX INFO: Access modifiers changed from: package-private */
public boolean shouldDrawText() {
return this.shouldDrawText;
}
public static ChipDrawable createFromAttributes(Context context, AttributeSet attributeSet, int i, int i2) {
ChipDrawable chipDrawable = new ChipDrawable(context, attributeSet, i, i2);
chipDrawable.loadFromAttributes(attributeSet, i, i2);
return chipDrawable;
}
public static ChipDrawable createFromResource(Context context, int i) {
AttributeSet parseDrawableXml = DrawableUtils.parseDrawableXml(context, i, "chip");
int styleAttribute = parseDrawableXml.getStyleAttribute();
if (styleAttribute == 0) {
styleAttribute = com.google.android.material.R.style.Widget_MaterialComponents_Chip_Entry;
}
return createFromAttributes(context, parseDrawableXml, com.google.android.material.R.attr.chipStandaloneStyle, styleAttribute);
}
private ChipDrawable(Context context, AttributeSet attributeSet, int i, int i2) {
super(context, attributeSet, i, i2);
this.chipCornerRadius = -1.0f;
this.chipPaint = new Paint(1);
this.fontMetrics = new Paint.FontMetrics();
this.rectF = new RectF();
this.pointF = new PointF();
this.shapePath = new Path();
this.alpha = 255;
this.tintMode = PorterDuff.Mode.SRC_IN;
this.delegate = new WeakReference<>(null);
initializeElevationOverlay(context);
this.context = context;
TextDrawableHelper textDrawableHelper = new TextDrawableHelper(this);
this.textDrawableHelper = textDrawableHelper;
this.text = "";
textDrawableHelper.getTextPaint().density = context.getResources().getDisplayMetrics().density;
this.debugPaint = null;
int[] iArr = DEFAULT_STATE;
setState(iArr);
setCloseIconState(iArr);
this.shouldDrawText = true;
if (RippleUtils.USE_FRAMEWORK_RIPPLE) {
closeIconRippleMask.setTint(-1);
}
}
private void loadFromAttributes(AttributeSet attributeSet, int i, int i2) {
TypedArray obtainStyledAttributes = ThemeEnforcement.obtainStyledAttributes(this.context, attributeSet, com.google.android.material.R.styleable.Chip, i, i2, new int[0]);
this.isShapeThemingEnabled = obtainStyledAttributes.hasValue(com.google.android.material.R.styleable.Chip_shapeAppearance);
setChipSurfaceColor(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_chipSurfaceColor));
setChipBackgroundColor(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_chipBackgroundColor));
setChipMinHeight(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipMinHeight, 0.0f));
if (obtainStyledAttributes.hasValue(com.google.android.material.R.styleable.Chip_chipCornerRadius)) {
setChipCornerRadius(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipCornerRadius, 0.0f));
}
setChipStrokeColor(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_chipStrokeColor));
setChipStrokeWidth(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipStrokeWidth, 0.0f));
setRippleColor(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_rippleColor));
setText(obtainStyledAttributes.getText(com.google.android.material.R.styleable.Chip_android_text));
TextAppearance textAppearance = MaterialResources.getTextAppearance(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_android_textAppearance);
textAppearance.setTextSize(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_android_textSize, textAppearance.getTextSize()));
setTextAppearance(textAppearance);
int i3 = obtainStyledAttributes.getInt(com.google.android.material.R.styleable.Chip_android_ellipsize, 0);
if (i3 == 1) {
setEllipsize(TextUtils.TruncateAt.START);
} else if (i3 == 2) {
setEllipsize(TextUtils.TruncateAt.MIDDLE);
} else if (i3 == 3) {
setEllipsize(TextUtils.TruncateAt.END);
}
setChipIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_chipIconVisible, false));
if (attributeSet != null && attributeSet.getAttributeValue(NAMESPACE_APP, "chipIconEnabled") != null && attributeSet.getAttributeValue(NAMESPACE_APP, "chipIconVisible") == null) {
setChipIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_chipIconEnabled, false));
}
setChipIcon(MaterialResources.getDrawable(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_chipIcon));
if (obtainStyledAttributes.hasValue(com.google.android.material.R.styleable.Chip_chipIconTint)) {
setChipIconTint(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_chipIconTint));
}
setChipIconSize(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipIconSize, -1.0f));
setCloseIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_closeIconVisible, false));
if (attributeSet != null && attributeSet.getAttributeValue(NAMESPACE_APP, "closeIconEnabled") != null && attributeSet.getAttributeValue(NAMESPACE_APP, "closeIconVisible") == null) {
setCloseIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_closeIconEnabled, false));
}
setCloseIcon(MaterialResources.getDrawable(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_closeIcon));
setCloseIconTint(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_closeIconTint));
setCloseIconSize(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_closeIconSize, 0.0f));
setCheckable(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_android_checkable, false));
setCheckedIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_checkedIconVisible, false));
if (attributeSet != null && attributeSet.getAttributeValue(NAMESPACE_APP, "checkedIconEnabled") != null && attributeSet.getAttributeValue(NAMESPACE_APP, "checkedIconVisible") == null) {
setCheckedIconVisible(obtainStyledAttributes.getBoolean(com.google.android.material.R.styleable.Chip_checkedIconEnabled, false));
}
setCheckedIcon(MaterialResources.getDrawable(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_checkedIcon));
if (obtainStyledAttributes.hasValue(com.google.android.material.R.styleable.Chip_checkedIconTint)) {
setCheckedIconTint(MaterialResources.getColorStateList(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_checkedIconTint));
}
setShowMotionSpec(MotionSpec.createFromAttribute(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_showMotionSpec));
setHideMotionSpec(MotionSpec.createFromAttribute(this.context, obtainStyledAttributes, com.google.android.material.R.styleable.Chip_hideMotionSpec));
setChipStartPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipStartPadding, 0.0f));
setIconStartPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_iconStartPadding, 0.0f));
setIconEndPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_iconEndPadding, 0.0f));
setTextStartPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_textStartPadding, 0.0f));
setTextEndPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_textEndPadding, 0.0f));
setCloseIconStartPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_closeIconStartPadding, 0.0f));
setCloseIconEndPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_closeIconEndPadding, 0.0f));
setChipEndPadding(obtainStyledAttributes.getDimension(com.google.android.material.R.styleable.Chip_chipEndPadding, 0.0f));
setMaxWidth(obtainStyledAttributes.getDimensionPixelSize(com.google.android.material.R.styleable.Chip_android_maxWidth, Integer.MAX_VALUE));
obtainStyledAttributes.recycle();
}
public void setUseCompatRipple(boolean z) {
if (this.useCompatRipple != z) {
this.useCompatRipple = z;
updateCompatRippleColor();
onStateChange(getState());
}
}
public void setDelegate(Delegate delegate) {
this.delegate = new WeakReference<>(delegate);
}
protected void onSizeChange() {
Delegate delegate = this.delegate.get();
if (delegate != null) {
delegate.onChipDrawableSizeChange();
}
}
public void getChipTouchBounds(RectF rectF) {
calculateChipTouchBounds(getBounds(), rectF);
}
public void getCloseIconTouchBounds(RectF rectF) {
calculateCloseIconTouchBounds(getBounds(), rectF);
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicWidth() {
return Math.min(Math.round(this.chipStartPadding + calculateChipIconWidth() + this.textStartPadding + this.textDrawableHelper.getTextWidth(getText().toString()) + this.textEndPadding + calculateCloseIconWidth() + this.chipEndPadding), this.maxWidth);
}
/* JADX INFO: Access modifiers changed from: package-private */
public float calculateChipIconWidth() {
if (showsChipIcon() || showsCheckedIcon()) {
return this.iconStartPadding + getCurrentChipIconWidth() + this.iconEndPadding;
}
return 0.0f;
}
private float getCurrentChipIconWidth() {
Drawable drawable = this.currentChecked ? this.checkedIcon : this.chipIcon;
float f = this.chipIconSize;
return (f > 0.0f || drawable == null) ? f : drawable.getIntrinsicWidth();
}
private float getCurrentChipIconHeight() {
Drawable drawable = this.currentChecked ? this.checkedIcon : this.chipIcon;
float f = this.chipIconSize;
if (f > 0.0f || drawable == null) {
return f;
}
float ceil = (float) Math.ceil(ViewUtils.dpToPx(this.context, 24));
return ((float) drawable.getIntrinsicHeight()) <= ceil ? drawable.getIntrinsicHeight() : ceil;
}
/* JADX INFO: Access modifiers changed from: package-private */
public float calculateCloseIconWidth() {
if (showsCloseIcon()) {
return this.closeIconStartPadding + this.closeIconSize + this.closeIconEndPadding;
}
return 0.0f;
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public void draw(Canvas canvas) {
Rect bounds = getBounds();
if (bounds.isEmpty() || getAlpha() == 0) {
return;
}
int saveLayerAlpha = this.alpha < 255 ? CanvasCompat.saveLayerAlpha(canvas, bounds.left, bounds.top, bounds.right, bounds.bottom, this.alpha) : 0;
drawChipSurface(canvas, bounds);
drawChipBackground(canvas, bounds);
if (this.isShapeThemingEnabled) {
super.draw(canvas);
}
drawChipStroke(canvas, bounds);
drawCompatRipple(canvas, bounds);
drawChipIcon(canvas, bounds);
drawCheckedIcon(canvas, bounds);
if (this.shouldDrawText) {
drawText(canvas, bounds);
}
drawCloseIcon(canvas, bounds);
drawDebug(canvas, bounds);
if (this.alpha < 255) {
canvas.restoreToCount(saveLayerAlpha);
}
}
private void drawChipSurface(Canvas canvas, Rect rect) {
if (this.isShapeThemingEnabled) {
return;
}
this.chipPaint.setColor(this.currentChipSurfaceColor);
this.chipPaint.setStyle(Paint.Style.FILL);
this.rectF.set(rect);
canvas.drawRoundRect(this.rectF, getChipCornerRadius(), getChipCornerRadius(), this.chipPaint);
}
private void drawChipBackground(Canvas canvas, Rect rect) {
if (this.isShapeThemingEnabled) {
return;
}
this.chipPaint.setColor(this.currentChipBackgroundColor);
this.chipPaint.setStyle(Paint.Style.FILL);
this.chipPaint.setColorFilter(getTintColorFilter());
this.rectF.set(rect);
canvas.drawRoundRect(this.rectF, getChipCornerRadius(), getChipCornerRadius(), this.chipPaint);
}
private void drawChipStroke(Canvas canvas, Rect rect) {
if (this.chipStrokeWidth <= 0.0f || this.isShapeThemingEnabled) {
return;
}
this.chipPaint.setColor(this.currentChipStrokeColor);
this.chipPaint.setStyle(Paint.Style.STROKE);
if (!this.isShapeThemingEnabled) {
this.chipPaint.setColorFilter(getTintColorFilter());
}
this.rectF.set(rect.left + (this.chipStrokeWidth / 2.0f), rect.top + (this.chipStrokeWidth / 2.0f), rect.right - (this.chipStrokeWidth / 2.0f), rect.bottom - (this.chipStrokeWidth / 2.0f));
float f = this.chipCornerRadius - (this.chipStrokeWidth / 2.0f);
canvas.drawRoundRect(this.rectF, f, f, this.chipPaint);
}
private void drawCompatRipple(Canvas canvas, Rect rect) {
this.chipPaint.setColor(this.currentCompatRippleColor);
this.chipPaint.setStyle(Paint.Style.FILL);
this.rectF.set(rect);
if (!this.isShapeThemingEnabled) {
canvas.drawRoundRect(this.rectF, getChipCornerRadius(), getChipCornerRadius(), this.chipPaint);
} else {
calculatePathForSize(new RectF(rect), this.shapePath);
super.drawShape(canvas, this.chipPaint, this.shapePath, getBoundsAsRectF());
}
}
private void drawChipIcon(Canvas canvas, Rect rect) {
if (showsChipIcon()) {
calculateChipIconBounds(rect, this.rectF);
float f = this.rectF.left;
float f2 = this.rectF.top;
canvas.translate(f, f2);
this.chipIcon.setBounds(0, 0, (int) this.rectF.width(), (int) this.rectF.height());
this.chipIcon.draw(canvas);
canvas.translate(-f, -f2);
}
}
private void drawCheckedIcon(Canvas canvas, Rect rect) {
if (showsCheckedIcon()) {
calculateChipIconBounds(rect, this.rectF);
float f = this.rectF.left;
float f2 = this.rectF.top;
canvas.translate(f, f2);
this.checkedIcon.setBounds(0, 0, (int) this.rectF.width(), (int) this.rectF.height());
this.checkedIcon.draw(canvas);
canvas.translate(-f, -f2);
}
}
private void drawText(Canvas canvas, Rect rect) {
if (this.text != null) {
Paint.Align calculateTextOriginAndAlignment = calculateTextOriginAndAlignment(rect, this.pointF);
calculateTextBounds(rect, this.rectF);
if (this.textDrawableHelper.getTextAppearance() != null) {
this.textDrawableHelper.getTextPaint().drawableState = getState();
this.textDrawableHelper.updateTextPaintDrawState(this.context);
}
this.textDrawableHelper.getTextPaint().setTextAlign(calculateTextOriginAndAlignment);
int i = 0;
boolean z = Math.round(this.textDrawableHelper.getTextWidth(getText().toString())) > Math.round(this.rectF.width());
if (z) {
i = canvas.save();
canvas.clipRect(this.rectF);
}
CharSequence charSequence = this.text;
if (z && this.truncateAt != null) {
charSequence = TextUtils.ellipsize(charSequence, this.textDrawableHelper.getTextPaint(), this.rectF.width(), this.truncateAt);
}
CharSequence charSequence2 = charSequence;
canvas.drawText(charSequence2, 0, charSequence2.length(), this.pointF.x, this.pointF.y, this.textDrawableHelper.getTextPaint());
if (z) {
canvas.restoreToCount(i);
}
}
}
private void drawCloseIcon(Canvas canvas, Rect rect) {
if (showsCloseIcon()) {
calculateCloseIconBounds(rect, this.rectF);
float f = this.rectF.left;
float f2 = this.rectF.top;
canvas.translate(f, f2);
this.closeIcon.setBounds(0, 0, (int) this.rectF.width(), (int) this.rectF.height());
if (RippleUtils.USE_FRAMEWORK_RIPPLE) {
this.closeIconRipple.setBounds(this.closeIcon.getBounds());
this.closeIconRipple.jumpToCurrentState();
this.closeIconRipple.draw(canvas);
} else {
this.closeIcon.draw(canvas);
}
canvas.translate(-f, -f2);
}
}
private void drawDebug(Canvas canvas, Rect rect) {
Paint paint = this.debugPaint;
if (paint != null) {
paint.setColor(ColorUtils.setAlphaComponent(ViewCompat.MEASURED_STATE_MASK, 127));
canvas.drawRect(rect, this.debugPaint);
if (showsChipIcon() || showsCheckedIcon()) {
calculateChipIconBounds(rect, this.rectF);
canvas.drawRect(this.rectF, this.debugPaint);
}
if (this.text != null) {
canvas.drawLine(rect.left, rect.exactCenterY(), rect.right, rect.exactCenterY(), this.debugPaint);
}
if (showsCloseIcon()) {
calculateCloseIconBounds(rect, this.rectF);
canvas.drawRect(this.rectF, this.debugPaint);
}
this.debugPaint.setColor(ColorUtils.setAlphaComponent(SupportMenu.CATEGORY_MASK, 127));
calculateChipTouchBounds(rect, this.rectF);
canvas.drawRect(this.rectF, this.debugPaint);
this.debugPaint.setColor(ColorUtils.setAlphaComponent(-16711936, 127));
calculateCloseIconTouchBounds(rect, this.rectF);
canvas.drawRect(this.rectF, this.debugPaint);
}
}
private void calculateChipIconBounds(Rect rect, RectF rectF) {
rectF.setEmpty();
if (showsChipIcon() || showsCheckedIcon()) {
float f = this.chipStartPadding + this.iconStartPadding;
float currentChipIconWidth = getCurrentChipIconWidth();
if (DrawableCompat.getLayoutDirection(this) == 0) {
rectF.left = rect.left + f;
rectF.right = rectF.left + currentChipIconWidth;
} else {
rectF.right = rect.right - f;
rectF.left = rectF.right - currentChipIconWidth;
}
float currentChipIconHeight = getCurrentChipIconHeight();
rectF.top = rect.exactCenterY() - (currentChipIconHeight / 2.0f);
rectF.bottom = rectF.top + currentChipIconHeight;
}
}
Paint.Align calculateTextOriginAndAlignment(Rect rect, PointF pointF) {
pointF.set(0.0f, 0.0f);
Paint.Align align = Paint.Align.LEFT;
if (this.text != null) {
float calculateChipIconWidth = this.chipStartPadding + calculateChipIconWidth() + this.textStartPadding;
if (DrawableCompat.getLayoutDirection(this) == 0) {
pointF.x = rect.left + calculateChipIconWidth;
align = Paint.Align.LEFT;
} else {
pointF.x = rect.right - calculateChipIconWidth;
align = Paint.Align.RIGHT;
}
pointF.y = rect.centerY() - calculateTextCenterFromBaseline();
}
return align;
}
private float calculateTextCenterFromBaseline() {
this.textDrawableHelper.getTextPaint().getFontMetrics(this.fontMetrics);
return (this.fontMetrics.descent + this.fontMetrics.ascent) / 2.0f;
}
private void calculateTextBounds(Rect rect, RectF rectF) {
rectF.setEmpty();
if (this.text != null) {
float calculateChipIconWidth = this.chipStartPadding + calculateChipIconWidth() + this.textStartPadding;
float calculateCloseIconWidth = this.chipEndPadding + calculateCloseIconWidth() + this.textEndPadding;
if (DrawableCompat.getLayoutDirection(this) == 0) {
rectF.left = rect.left + calculateChipIconWidth;
rectF.right = rect.right - calculateCloseIconWidth;
} else {
rectF.left = rect.left + calculateCloseIconWidth;
rectF.right = rect.right - calculateChipIconWidth;
}
rectF.top = rect.top;
rectF.bottom = rect.bottom;
}
}
private void calculateCloseIconBounds(Rect rect, RectF rectF) {
rectF.setEmpty();
if (showsCloseIcon()) {
float f = this.chipEndPadding + this.closeIconEndPadding;
if (DrawableCompat.getLayoutDirection(this) == 0) {
rectF.right = rect.right - f;
rectF.left = rectF.right - this.closeIconSize;
} else {
rectF.left = rect.left + f;
rectF.right = rectF.left + this.closeIconSize;
}
rectF.top = rect.exactCenterY() - (this.closeIconSize / 2.0f);
rectF.bottom = rectF.top + this.closeIconSize;
}
}
private void calculateChipTouchBounds(Rect rect, RectF rectF) {
rectF.set(rect);
if (showsCloseIcon()) {
float f = this.chipEndPadding + this.closeIconEndPadding + this.closeIconSize + this.closeIconStartPadding + this.textEndPadding;
if (DrawableCompat.getLayoutDirection(this) == 0) {
rectF.right = rect.right - f;
} else {
rectF.left = rect.left + f;
}
}
}
private void calculateCloseIconTouchBounds(Rect rect, RectF rectF) {
rectF.setEmpty();
if (showsCloseIcon()) {
float f = this.chipEndPadding + this.closeIconEndPadding + this.closeIconSize + this.closeIconStartPadding + this.textEndPadding;
if (DrawableCompat.getLayoutDirection(this) == 0) {
rectF.right = rect.right;
rectF.left = rectF.right - f;
} else {
rectF.left = rect.left;
rectF.right = rect.left + f;
}
rectF.top = rect.top;
rectF.bottom = rect.bottom;
}
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public boolean isStateful() {
return isStateful(this.chipSurfaceColor) || isStateful(this.chipBackgroundColor) || isStateful(this.chipStrokeColor) || (this.useCompatRipple && isStateful(this.compatRippleColor)) || isStateful(this.textDrawableHelper.getTextAppearance()) || canShowCheckedIcon() || isStateful(this.chipIcon) || isStateful(this.checkedIcon) || isStateful(this.tint);
}
public boolean isCloseIconStateful() {
return isStateful(this.closeIcon);
}
public boolean setCloseIconState(int[] iArr) {
if (Arrays.equals(this.closeIconStateSet, iArr)) {
return false;
}
this.closeIconStateSet = iArr;
if (showsCloseIcon()) {
return onStateChange(getState(), iArr);
}
return false;
}
@Override // com.google.android.material.internal.TextDrawableHelper.TextDrawableDelegate
public void onTextSizeChange() {
onSizeChange();
invalidateSelf();
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable, com.google.android.material.internal.TextDrawableHelper.TextDrawableDelegate
public boolean onStateChange(int[] iArr) {
if (this.isShapeThemingEnabled) {
super.onStateChange(iArr);
}
return onStateChange(iArr, getCloseIconState());
}
private boolean onStateChange(int[] iArr, int[] iArr2) {
boolean z;
boolean onStateChange = super.onStateChange(iArr);
ColorStateList colorStateList = this.chipSurfaceColor;
int compositeElevationOverlayIfNeeded = compositeElevationOverlayIfNeeded(colorStateList != null ? colorStateList.getColorForState(iArr, this.currentChipSurfaceColor) : 0);
boolean z2 = true;
if (this.currentChipSurfaceColor != compositeElevationOverlayIfNeeded) {
this.currentChipSurfaceColor = compositeElevationOverlayIfNeeded;
onStateChange = true;
}
ColorStateList colorStateList2 = this.chipBackgroundColor;
int compositeElevationOverlayIfNeeded2 = compositeElevationOverlayIfNeeded(colorStateList2 != null ? colorStateList2.getColorForState(iArr, this.currentChipBackgroundColor) : 0);
if (this.currentChipBackgroundColor != compositeElevationOverlayIfNeeded2) {
this.currentChipBackgroundColor = compositeElevationOverlayIfNeeded2;
onStateChange = true;
}
int layer = MaterialColors.layer(compositeElevationOverlayIfNeeded, compositeElevationOverlayIfNeeded2);
if ((this.currentCompositeSurfaceBackgroundColor != layer) | (getFillColor() == null)) {
this.currentCompositeSurfaceBackgroundColor = layer;
setFillColor(ColorStateList.valueOf(layer));
onStateChange = true;
}
ColorStateList colorStateList3 = this.chipStrokeColor;
int colorForState = colorStateList3 != null ? colorStateList3.getColorForState(iArr, this.currentChipStrokeColor) : 0;
if (this.currentChipStrokeColor != colorForState) {
this.currentChipStrokeColor = colorForState;
onStateChange = true;
}
int colorForState2 = (this.compatRippleColor == null || !RippleUtils.shouldDrawRippleCompat(iArr)) ? 0 : this.compatRippleColor.getColorForState(iArr, this.currentCompatRippleColor);
if (this.currentCompatRippleColor != colorForState2) {
this.currentCompatRippleColor = colorForState2;
if (this.useCompatRipple) {
onStateChange = true;
}
}
int colorForState3 = (this.textDrawableHelper.getTextAppearance() == null || this.textDrawableHelper.getTextAppearance().getTextColor() == null) ? 0 : this.textDrawableHelper.getTextAppearance().getTextColor().getColorForState(iArr, this.currentTextColor);
if (this.currentTextColor != colorForState3) {
this.currentTextColor = colorForState3;
onStateChange = true;
}
boolean z3 = hasState(getState(), R.attr.state_checked) && this.checkable;
if (this.currentChecked == z3 || this.checkedIcon == null) {
z = false;
} else {
float calculateChipIconWidth = calculateChipIconWidth();
this.currentChecked = z3;
if (calculateChipIconWidth != calculateChipIconWidth()) {
onStateChange = true;
z = true;
} else {
z = false;
onStateChange = true;
}
}
ColorStateList colorStateList4 = this.tint;
int colorForState4 = colorStateList4 != null ? colorStateList4.getColorForState(iArr, this.currentTint) : 0;
if (this.currentTint != colorForState4) {
this.currentTint = colorForState4;
this.tintFilter = DrawableUtils.updateTintFilter(this, this.tint, this.tintMode);
} else {
z2 = onStateChange;
}
if (isStateful(this.chipIcon)) {
z2 |= this.chipIcon.setState(iArr);
}
if (isStateful(this.checkedIcon)) {
z2 |= this.checkedIcon.setState(iArr);
}
if (isStateful(this.closeIcon)) {
int[] iArr3 = new int[iArr.length + iArr2.length];
System.arraycopy(iArr, 0, iArr3, 0, iArr.length);
System.arraycopy(iArr2, 0, iArr3, iArr.length, iArr2.length);
z2 |= this.closeIcon.setState(iArr3);
}
if (RippleUtils.USE_FRAMEWORK_RIPPLE && isStateful(this.closeIconRipple)) {
z2 |= this.closeIconRipple.setState(iArr2);
}
if (z2) {
invalidateSelf();
}
if (z) {
onSizeChange();
}
return z2;
}
private static boolean isStateful(ColorStateList colorStateList) {
return colorStateList != null && colorStateList.isStateful();
}
private static boolean isStateful(Drawable drawable) {
return drawable != null && drawable.isStateful();
}
private static boolean isStateful(TextAppearance textAppearance) {
return (textAppearance == null || textAppearance.getTextColor() == null || !textAppearance.getTextColor().isStateful()) ? false : true;
}
@Override // android.graphics.drawable.Drawable
public boolean onLayoutDirectionChanged(int i) {
boolean onLayoutDirectionChanged = super.onLayoutDirectionChanged(i);
if (showsChipIcon()) {
onLayoutDirectionChanged |= DrawableCompat.setLayoutDirection(this.chipIcon, i);
}
if (showsCheckedIcon()) {
onLayoutDirectionChanged |= DrawableCompat.setLayoutDirection(this.checkedIcon, i);
}
if (showsCloseIcon()) {
onLayoutDirectionChanged |= DrawableCompat.setLayoutDirection(this.closeIcon, i);
}
if (!onLayoutDirectionChanged) {
return true;
}
invalidateSelf();
return true;
}
@Override // android.graphics.drawable.Drawable
protected boolean onLevelChange(int i) {
boolean onLevelChange = super.onLevelChange(i);
if (showsChipIcon()) {
onLevelChange |= this.chipIcon.setLevel(i);
}
if (showsCheckedIcon()) {
onLevelChange |= this.checkedIcon.setLevel(i);
}
if (showsCloseIcon()) {
onLevelChange |= this.closeIcon.setLevel(i);
}
if (onLevelChange) {
invalidateSelf();
}
return onLevelChange;
}
@Override // android.graphics.drawable.Drawable
public boolean setVisible(boolean z, boolean z2) {
boolean visible = super.setVisible(z, z2);
if (showsChipIcon()) {
visible |= this.chipIcon.setVisible(z, z2);
}
if (showsCheckedIcon()) {
visible |= this.checkedIcon.setVisible(z, z2);
}
if (showsCloseIcon()) {
visible |= this.closeIcon.setVisible(z, z2);
}
if (visible) {
invalidateSelf();
}
return visible;
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public void setAlpha(int i) {
if (this.alpha != i) {
this.alpha = i;
invalidateSelf();
}
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public void setColorFilter(ColorFilter colorFilter) {
if (this.colorFilter != colorFilter) {
this.colorFilter = colorFilter;
invalidateSelf();
}
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintList(ColorStateList colorStateList) {
if (this.tint != colorStateList) {
this.tint = colorStateList;
onStateChange(getState());
}
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintMode(PorterDuff.Mode mode) {
if (this.tintMode != mode) {
this.tintMode = mode;
this.tintFilter = DrawableUtils.updateTintFilter(this, this.tint, mode);
invalidateSelf();
}
}
@Override // com.google.android.material.shape.MaterialShapeDrawable, android.graphics.drawable.Drawable
public void getOutline(Outline outline) {
if (this.isShapeThemingEnabled) {
super.getOutline(outline);
return;
}
Rect bounds = getBounds();
if (!bounds.isEmpty()) {
outline.setRoundRect(bounds, this.chipCornerRadius);
} else {
outline.setRoundRect(0, 0, getIntrinsicWidth(), getIntrinsicHeight(), this.chipCornerRadius);
}
outline.setAlpha(getAlpha() / 255.0f);
}
@Override // android.graphics.drawable.Drawable.Callback
public void invalidateDrawable(Drawable drawable) {
Drawable.Callback callback = getCallback();
if (callback != null) {
callback.invalidateDrawable(this);
}
}
@Override // android.graphics.drawable.Drawable.Callback
public void scheduleDrawable(Drawable drawable, Runnable runnable, long j) {
Drawable.Callback callback = getCallback();
if (callback != null) {
callback.scheduleDrawable(this, runnable, j);
}
}
@Override // android.graphics.drawable.Drawable.Callback
public void unscheduleDrawable(Drawable drawable, Runnable runnable) {
Drawable.Callback callback = getCallback();
if (callback != null) {
callback.unscheduleDrawable(this, runnable);
}
}
private void unapplyChildDrawable(Drawable drawable) {
if (drawable != null) {
drawable.setCallback(null);
}
}
private void applyChildDrawable(Drawable drawable) {
if (drawable == null) {
return;
}
drawable.setCallback(this);
DrawableCompat.setLayoutDirection(drawable, DrawableCompat.getLayoutDirection(this));
drawable.setLevel(getLevel());
drawable.setVisible(isVisible(), false);
if (drawable == this.closeIcon) {
if (drawable.isStateful()) {
drawable.setState(getCloseIconState());
}
DrawableCompat.setTintList(drawable, this.closeIconTint);
return;
}
Drawable drawable2 = this.chipIcon;
if (drawable == drawable2 && this.hasChipIconTint) {
DrawableCompat.setTintList(drawable2, this.chipIconTint);
}
if (drawable.isStateful()) {
drawable.setState(getState());
}
}
private void updateCompatRippleColor() {
this.compatRippleColor = this.useCompatRipple ? RippleUtils.sanitizeRippleDrawableColor(this.rippleColor) : null;
}
private void setChipSurfaceColor(ColorStateList colorStateList) {
if (this.chipSurfaceColor != colorStateList) {
this.chipSurfaceColor = colorStateList;
onStateChange(getState());
}
}
private static boolean hasState(int[] iArr, int i) {
if (iArr == null) {
return false;
}
for (int i2 : iArr) {
if (i2 == i) {
return true;
}
}
return false;
}
public void setTextSize(float f) {
TextAppearance textAppearance = getTextAppearance();
if (textAppearance != null) {
textAppearance.setTextSize(f);
this.textDrawableHelper.getTextPaint().setTextSize(f);
onTextSizeChange();
}
}
public void setTextColor(int i) {
setTextColor(ColorStateList.valueOf(i));
}
public void setTextColor(ColorStateList colorStateList) {
TextAppearance textAppearance = getTextAppearance();
if (textAppearance != null) {
textAppearance.setTextColor(colorStateList);
invalidateSelf();
}
}
public void setChipBackgroundColorResource(int i) {
setChipBackgroundColor(AppCompatResources.getColorStateList(this.context, i));
}
public void setChipBackgroundColor(ColorStateList colorStateList) {
if (this.chipBackgroundColor != colorStateList) {
this.chipBackgroundColor = colorStateList;
onStateChange(getState());
}
}
public void setChipMinHeightResource(int i) {
setChipMinHeight(this.context.getResources().getDimension(i));
}
public void setChipMinHeight(float f) {
if (this.chipMinHeight != f) {
this.chipMinHeight = f;
invalidateSelf();
onSizeChange();
}
}
public float getChipCornerRadius() {
return this.isShapeThemingEnabled ? getTopLeftCornerResolvedSize() : this.chipCornerRadius;
}
@Deprecated
public void setChipCornerRadiusResource(int i) {
setChipCornerRadius(this.context.getResources().getDimension(i));
}
@Deprecated
public void setChipCornerRadius(float f) {
if (this.chipCornerRadius != f) {
this.chipCornerRadius = f;
setShapeAppearanceModel(getShapeAppearanceModel().withCornerSize(f));
}
}
public void setChipStrokeColorResource(int i) {
setChipStrokeColor(AppCompatResources.getColorStateList(this.context, i));
}
public void setChipStrokeColor(ColorStateList colorStateList) {
if (this.chipStrokeColor != colorStateList) {
this.chipStrokeColor = colorStateList;
if (this.isShapeThemingEnabled) {
setStrokeColor(colorStateList);
}
onStateChange(getState());
}
}
public void setChipStrokeWidthResource(int i) {
setChipStrokeWidth(this.context.getResources().getDimension(i));
}
public void setChipStrokeWidth(float f) {
if (this.chipStrokeWidth != f) {
this.chipStrokeWidth = f;
this.chipPaint.setStrokeWidth(f);
if (this.isShapeThemingEnabled) {
super.setStrokeWidth(f);
}
invalidateSelf();
}
}
public void setRippleColorResource(int i) {
setRippleColor(AppCompatResources.getColorStateList(this.context, i));
}
public void setRippleColor(ColorStateList colorStateList) {
if (this.rippleColor != colorStateList) {
this.rippleColor = colorStateList;
updateCompatRippleColor();
onStateChange(getState());
}
}
public void setTextResource(int i) {
setText(this.context.getResources().getString(i));
}
public void setText(CharSequence charSequence) {
if (charSequence == null) {
charSequence = "";
}
if (TextUtils.equals(this.text, charSequence)) {
return;
}
this.text = charSequence;
this.textDrawableHelper.setTextWidthDirty(true);
invalidateSelf();
onSizeChange();
}
public TextAppearance getTextAppearance() {
return this.textDrawableHelper.getTextAppearance();
}
public void setTextAppearanceResource(int i) {
setTextAppearance(new TextAppearance(this.context, i));
}
public void setTextAppearance(TextAppearance textAppearance) {
this.textDrawableHelper.setTextAppearance(textAppearance, this.context);
}
@Deprecated
public boolean isChipIconEnabled() {
return isChipIconVisible();
}
public void setChipIconVisible(int i) {
setChipIconVisible(this.context.getResources().getBoolean(i));
}
public void setChipIconVisible(boolean z) {
if (this.chipIconVisible != z) {
boolean showsChipIcon = showsChipIcon();
this.chipIconVisible = z;
boolean showsChipIcon2 = showsChipIcon();
if (showsChipIcon != showsChipIcon2) {
if (showsChipIcon2) {
applyChildDrawable(this.chipIcon);
} else {
unapplyChildDrawable(this.chipIcon);
}
invalidateSelf();
onSizeChange();
}
}
}
@Deprecated
public void setChipIconEnabledResource(int i) {
setChipIconVisible(i);
}
@Deprecated
public void setChipIconEnabled(boolean z) {
setChipIconVisible(z);
}
public Drawable getChipIcon() {
Drawable drawable = this.chipIcon;
if (drawable != null) {
return DrawableCompat.unwrap(drawable);
}
return null;
}
public void setChipIconResource(int i) {
setChipIcon(AppCompatResources.getDrawable(this.context, i));
}
public void setChipIcon(Drawable drawable) {
Drawable chipIcon = getChipIcon();
if (chipIcon != drawable) {
float calculateChipIconWidth = calculateChipIconWidth();
this.chipIcon = drawable != null ? DrawableCompat.wrap(drawable).mutate() : null;
float calculateChipIconWidth2 = calculateChipIconWidth();
unapplyChildDrawable(chipIcon);
if (showsChipIcon()) {
applyChildDrawable(this.chipIcon);
}
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
public void setChipIconTintResource(int i) {
setChipIconTint(AppCompatResources.getColorStateList(this.context, i));
}
public void setChipIconTint(ColorStateList colorStateList) {
this.hasChipIconTint = true;
if (this.chipIconTint != colorStateList) {
this.chipIconTint = colorStateList;
if (showsChipIcon()) {
DrawableCompat.setTintList(this.chipIcon, colorStateList);
}
onStateChange(getState());
}
}
public void setChipIconSizeResource(int i) {
setChipIconSize(this.context.getResources().getDimension(i));
}
public void setChipIconSize(float f) {
if (this.chipIconSize != f) {
float calculateChipIconWidth = calculateChipIconWidth();
this.chipIconSize = f;
float calculateChipIconWidth2 = calculateChipIconWidth();
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
@Deprecated
public boolean isCloseIconEnabled() {
return isCloseIconVisible();
}
public void setCloseIconVisible(int i) {
setCloseIconVisible(this.context.getResources().getBoolean(i));
}
public void setCloseIconVisible(boolean z) {
if (this.closeIconVisible != z) {
boolean showsCloseIcon = showsCloseIcon();
this.closeIconVisible = z;
boolean showsCloseIcon2 = showsCloseIcon();
if (showsCloseIcon != showsCloseIcon2) {
if (showsCloseIcon2) {
applyChildDrawable(this.closeIcon);
} else {
unapplyChildDrawable(this.closeIcon);
}
invalidateSelf();
onSizeChange();
}
}
}
@Deprecated
public void setCloseIconEnabledResource(int i) {
setCloseIconVisible(i);
}
@Deprecated
public void setCloseIconEnabled(boolean z) {
setCloseIconVisible(z);
}
public Drawable getCloseIcon() {
Drawable drawable = this.closeIcon;
if (drawable != null) {
return DrawableCompat.unwrap(drawable);
}
return null;
}
public void setCloseIconResource(int i) {
setCloseIcon(AppCompatResources.getDrawable(this.context, i));
}
public void setCloseIcon(Drawable drawable) {
Drawable closeIcon = getCloseIcon();
if (closeIcon != drawable) {
float calculateCloseIconWidth = calculateCloseIconWidth();
this.closeIcon = drawable != null ? DrawableCompat.wrap(drawable).mutate() : null;
if (RippleUtils.USE_FRAMEWORK_RIPPLE) {
updateFrameworkCloseIconRipple();
}
float calculateCloseIconWidth2 = calculateCloseIconWidth();
unapplyChildDrawable(closeIcon);
if (showsCloseIcon()) {
applyChildDrawable(this.closeIcon);
}
invalidateSelf();
if (calculateCloseIconWidth != calculateCloseIconWidth2) {
onSizeChange();
}
}
}
private void updateFrameworkCloseIconRipple() {
this.closeIconRipple = new RippleDrawable(RippleUtils.sanitizeRippleDrawableColor(getRippleColor()), this.closeIcon, closeIconRippleMask);
}
public void setCloseIconTintResource(int i) {
setCloseIconTint(AppCompatResources.getColorStateList(this.context, i));
}
public void setCloseIconTint(ColorStateList colorStateList) {
if (this.closeIconTint != colorStateList) {
this.closeIconTint = colorStateList;
if (showsCloseIcon()) {
DrawableCompat.setTintList(this.closeIcon, colorStateList);
}
onStateChange(getState());
}
}
public void setCloseIconSizeResource(int i) {
setCloseIconSize(this.context.getResources().getDimension(i));
}
public void setCloseIconSize(float f) {
if (this.closeIconSize != f) {
this.closeIconSize = f;
invalidateSelf();
if (showsCloseIcon()) {
onSizeChange();
}
}
}
public void setCloseIconContentDescription(CharSequence charSequence) {
if (this.closeIconContentDescription != charSequence) {
this.closeIconContentDescription = BidiFormatter.getInstance().unicodeWrap(charSequence);
invalidateSelf();
}
}
public void setCheckableResource(int i) {
setCheckable(this.context.getResources().getBoolean(i));
}
public void setCheckable(boolean z) {
if (this.checkable != z) {
this.checkable = z;
float calculateChipIconWidth = calculateChipIconWidth();
if (!z && this.currentChecked) {
this.currentChecked = false;
}
float calculateChipIconWidth2 = calculateChipIconWidth();
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
@Deprecated
public boolean isCheckedIconEnabled() {
return isCheckedIconVisible();
}
public void setCheckedIconVisible(int i) {
setCheckedIconVisible(this.context.getResources().getBoolean(i));
}
public void setCheckedIconVisible(boolean z) {
if (this.checkedIconVisible != z) {
boolean showsCheckedIcon = showsCheckedIcon();
this.checkedIconVisible = z;
boolean showsCheckedIcon2 = showsCheckedIcon();
if (showsCheckedIcon != showsCheckedIcon2) {
if (showsCheckedIcon2) {
applyChildDrawable(this.checkedIcon);
} else {
unapplyChildDrawable(this.checkedIcon);
}
invalidateSelf();
onSizeChange();
}
}
}
@Deprecated
public void setCheckedIconEnabledResource(int i) {
setCheckedIconVisible(this.context.getResources().getBoolean(i));
}
@Deprecated
public void setCheckedIconEnabled(boolean z) {
setCheckedIconVisible(z);
}
public void setCheckedIconResource(int i) {
setCheckedIcon(AppCompatResources.getDrawable(this.context, i));
}
public void setCheckedIcon(Drawable drawable) {
if (this.checkedIcon != drawable) {
float calculateChipIconWidth = calculateChipIconWidth();
this.checkedIcon = drawable;
float calculateChipIconWidth2 = calculateChipIconWidth();
unapplyChildDrawable(this.checkedIcon);
applyChildDrawable(this.checkedIcon);
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
public void setCheckedIconTintResource(int i) {
setCheckedIconTint(AppCompatResources.getColorStateList(this.context, i));
}
public void setCheckedIconTint(ColorStateList colorStateList) {
if (this.checkedIconTint != colorStateList) {
this.checkedIconTint = colorStateList;
if (canShowCheckedIcon()) {
DrawableCompat.setTintList(this.checkedIcon, colorStateList);
}
onStateChange(getState());
}
}
public void setShowMotionSpecResource(int i) {
setShowMotionSpec(MotionSpec.createFromResource(this.context, i));
}
public void setHideMotionSpecResource(int i) {
setHideMotionSpec(MotionSpec.createFromResource(this.context, i));
}
public void setChipStartPaddingResource(int i) {
setChipStartPadding(this.context.getResources().getDimension(i));
}
public void setChipStartPadding(float f) {
if (this.chipStartPadding != f) {
this.chipStartPadding = f;
invalidateSelf();
onSizeChange();
}
}
public void setIconStartPaddingResource(int i) {
setIconStartPadding(this.context.getResources().getDimension(i));
}
public void setIconStartPadding(float f) {
if (this.iconStartPadding != f) {
float calculateChipIconWidth = calculateChipIconWidth();
this.iconStartPadding = f;
float calculateChipIconWidth2 = calculateChipIconWidth();
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
public void setIconEndPaddingResource(int i) {
setIconEndPadding(this.context.getResources().getDimension(i));
}
public void setIconEndPadding(float f) {
if (this.iconEndPadding != f) {
float calculateChipIconWidth = calculateChipIconWidth();
this.iconEndPadding = f;
float calculateChipIconWidth2 = calculateChipIconWidth();
invalidateSelf();
if (calculateChipIconWidth != calculateChipIconWidth2) {
onSizeChange();
}
}
}
public void setTextStartPaddingResource(int i) {
setTextStartPadding(this.context.getResources().getDimension(i));
}
public void setTextStartPadding(float f) {
if (this.textStartPadding != f) {
this.textStartPadding = f;
invalidateSelf();
onSizeChange();
}
}
public void setTextEndPaddingResource(int i) {
setTextEndPadding(this.context.getResources().getDimension(i));
}
public void setTextEndPadding(float f) {
if (this.textEndPadding != f) {
this.textEndPadding = f;
invalidateSelf();
onSizeChange();
}
}
public void setCloseIconStartPaddingResource(int i) {
setCloseIconStartPadding(this.context.getResources().getDimension(i));
}
public void setCloseIconStartPadding(float f) {
if (this.closeIconStartPadding != f) {
this.closeIconStartPadding = f;
invalidateSelf();
if (showsCloseIcon()) {
onSizeChange();
}
}
}
public void setCloseIconEndPaddingResource(int i) {
setCloseIconEndPadding(this.context.getResources().getDimension(i));
}
public void setCloseIconEndPadding(float f) {
if (this.closeIconEndPadding != f) {
this.closeIconEndPadding = f;
invalidateSelf();
if (showsCloseIcon()) {
onSizeChange();
}
}
}
public void setChipEndPaddingResource(int i) {
setChipEndPadding(this.context.getResources().getDimension(i));
}
public void setChipEndPadding(float f) {
if (this.chipEndPadding != f) {
this.chipEndPadding = f;
invalidateSelf();
onSizeChange();
}
}
}