mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-26 17:12:31 -06:00
606 lines
27 KiB
Java
606 lines
27 KiB
Java
package com.google.android.material.card;
|
|
|
|
import android.animation.TimeInterpolator;
|
|
import android.animation.ValueAnimator;
|
|
import android.content.res.ColorStateList;
|
|
import android.content.res.TypedArray;
|
|
import android.graphics.Rect;
|
|
import android.graphics.drawable.Drawable;
|
|
import android.graphics.drawable.InsetDrawable;
|
|
import android.graphics.drawable.LayerDrawable;
|
|
import android.graphics.drawable.RippleDrawable;
|
|
import android.graphics.drawable.StateListDrawable;
|
|
import android.util.AttributeSet;
|
|
import android.view.View;
|
|
import androidx.core.graphics.drawable.DrawableCompat;
|
|
import androidx.core.view.GravityCompat;
|
|
import androidx.core.view.ViewCompat;
|
|
import com.google.android.material.R;
|
|
import com.google.android.material.animation.AnimationUtils;
|
|
import com.google.android.material.color.MaterialColors;
|
|
import com.google.android.material.motion.MotionUtils;
|
|
import com.google.android.material.resources.MaterialResources;
|
|
import com.google.android.material.ripple.RippleUtils;
|
|
import com.google.android.material.shape.CornerTreatment;
|
|
import com.google.android.material.shape.CutCornerTreatment;
|
|
import com.google.android.material.shape.MaterialShapeDrawable;
|
|
import com.google.android.material.shape.RoundedCornerTreatment;
|
|
import com.google.android.material.shape.ShapeAppearanceModel;
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* loaded from: classes2.dex */
|
|
public class MaterialCardViewHelper {
|
|
private static final float CARD_VIEW_SHADOW_MULTIPLIER = 1.5f;
|
|
private static final int CHECKED_ICON_LAYER_INDEX = 2;
|
|
public static final int DEFAULT_FADE_ANIM_DURATION = 300;
|
|
private static final int DEFAULT_STROKE_VALUE = -1;
|
|
private final MaterialShapeDrawable bgDrawable;
|
|
private boolean checkable;
|
|
private Drawable checkedIcon;
|
|
private int checkedIconGravity;
|
|
private int checkedIconMargin;
|
|
private int checkedIconSize;
|
|
private ColorStateList checkedIconTint;
|
|
private LayerDrawable clickableForegroundDrawable;
|
|
private MaterialShapeDrawable compatRippleDrawable;
|
|
private Drawable fgDrawable;
|
|
private final MaterialShapeDrawable foregroundContentDrawable;
|
|
private MaterialShapeDrawable foregroundShapeDrawable;
|
|
private ValueAnimator iconAnimator;
|
|
private final TimeInterpolator iconFadeAnimInterpolator;
|
|
private final int iconFadeInAnimDuration;
|
|
private final int iconFadeOutAnimDuration;
|
|
private final MaterialCardView materialCardView;
|
|
private ColorStateList rippleColor;
|
|
private Drawable rippleDrawable;
|
|
private ShapeAppearanceModel shapeAppearanceModel;
|
|
private ColorStateList strokeColor;
|
|
private int strokeWidth;
|
|
private static final double COS_45 = Math.cos(Math.toRadians(45.0d));
|
|
private static final Drawable CHECKED_ICON_NONE = null;
|
|
private final Rect userContentPadding = new Rect();
|
|
private boolean isBackgroundOverwritten = false;
|
|
private float checkedAnimationProgress = 0.0f;
|
|
|
|
private boolean isCheckedIconBottom() {
|
|
return (this.checkedIconGravity & 80) == 80;
|
|
}
|
|
|
|
private boolean isCheckedIconEnd() {
|
|
return (this.checkedIconGravity & GravityCompat.END) == 8388613;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public MaterialShapeDrawable getBackground() {
|
|
return this.bgDrawable;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Drawable getCheckedIcon() {
|
|
return this.checkedIcon;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getCheckedIconGravity() {
|
|
return this.checkedIconGravity;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getCheckedIconMargin() {
|
|
return this.checkedIconMargin;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getCheckedIconSize() {
|
|
return this.checkedIconSize;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getCheckedIconTint() {
|
|
return this.checkedIconTint;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getRippleColor() {
|
|
return this.rippleColor;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ShapeAppearanceModel getShapeAppearanceModel() {
|
|
return this.shapeAppearanceModel;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getStrokeColorStateList() {
|
|
return this.strokeColor;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getStrokeWidth() {
|
|
return this.strokeWidth;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public Rect getUserContentPadding() {
|
|
return this.userContentPadding;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public boolean isBackgroundOverwritten() {
|
|
return this.isBackgroundOverwritten;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public boolean isCheckable() {
|
|
return this.checkable;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setBackgroundOverwritten(boolean z) {
|
|
this.isBackgroundOverwritten = z;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckable(boolean z) {
|
|
this.checkable = z;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckedIconMargin(int i) {
|
|
this.checkedIconMargin = i;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckedIconSize(int i) {
|
|
this.checkedIconSize = i;
|
|
}
|
|
|
|
public MaterialCardViewHelper(MaterialCardView materialCardView, AttributeSet attributeSet, int i, int i2) {
|
|
this.materialCardView = materialCardView;
|
|
MaterialShapeDrawable materialShapeDrawable = new MaterialShapeDrawable(materialCardView.getContext(), attributeSet, i, i2);
|
|
this.bgDrawable = materialShapeDrawable;
|
|
materialShapeDrawable.initializeElevationOverlay(materialCardView.getContext());
|
|
materialShapeDrawable.setShadowColor(-12303292);
|
|
ShapeAppearanceModel.Builder builder = materialShapeDrawable.getShapeAppearanceModel().toBuilder();
|
|
TypedArray obtainStyledAttributes = materialCardView.getContext().obtainStyledAttributes(attributeSet, R.styleable.CardView, i, R.style.CardView);
|
|
if (obtainStyledAttributes.hasValue(R.styleable.CardView_cardCornerRadius)) {
|
|
builder.setAllCornerSizes(obtainStyledAttributes.getDimension(R.styleable.CardView_cardCornerRadius, 0.0f));
|
|
}
|
|
this.foregroundContentDrawable = new MaterialShapeDrawable();
|
|
setShapeAppearanceModel(builder.build());
|
|
this.iconFadeAnimInterpolator = MotionUtils.resolveThemeInterpolator(materialCardView.getContext(), R.attr.motionEasingLinearInterpolator, AnimationUtils.LINEAR_INTERPOLATOR);
|
|
this.iconFadeInAnimDuration = MotionUtils.resolveThemeDuration(materialCardView.getContext(), R.attr.motionDurationShort2, 300);
|
|
this.iconFadeOutAnimDuration = MotionUtils.resolveThemeDuration(materialCardView.getContext(), R.attr.motionDurationShort1, 300);
|
|
obtainStyledAttributes.recycle();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void loadFromAttributes(TypedArray typedArray) {
|
|
ColorStateList colorStateList = MaterialResources.getColorStateList(this.materialCardView.getContext(), typedArray, R.styleable.MaterialCardView_strokeColor);
|
|
this.strokeColor = colorStateList;
|
|
if (colorStateList == null) {
|
|
this.strokeColor = ColorStateList.valueOf(-1);
|
|
}
|
|
this.strokeWidth = typedArray.getDimensionPixelSize(R.styleable.MaterialCardView_strokeWidth, 0);
|
|
boolean z = typedArray.getBoolean(R.styleable.MaterialCardView_android_checkable, false);
|
|
this.checkable = z;
|
|
this.materialCardView.setLongClickable(z);
|
|
this.checkedIconTint = MaterialResources.getColorStateList(this.materialCardView.getContext(), typedArray, R.styleable.MaterialCardView_checkedIconTint);
|
|
setCheckedIcon(MaterialResources.getDrawable(this.materialCardView.getContext(), typedArray, R.styleable.MaterialCardView_checkedIcon));
|
|
setCheckedIconSize(typedArray.getDimensionPixelSize(R.styleable.MaterialCardView_checkedIconSize, 0));
|
|
setCheckedIconMargin(typedArray.getDimensionPixelSize(R.styleable.MaterialCardView_checkedIconMargin, 0));
|
|
this.checkedIconGravity = typedArray.getInteger(R.styleable.MaterialCardView_checkedIconGravity, 8388661);
|
|
ColorStateList colorStateList2 = MaterialResources.getColorStateList(this.materialCardView.getContext(), typedArray, R.styleable.MaterialCardView_rippleColor);
|
|
this.rippleColor = colorStateList2;
|
|
if (colorStateList2 == null) {
|
|
this.rippleColor = ColorStateList.valueOf(MaterialColors.getColor(this.materialCardView, R.attr.colorControlHighlight));
|
|
}
|
|
setCardForegroundColor(MaterialResources.getColorStateList(this.materialCardView.getContext(), typedArray, R.styleable.MaterialCardView_cardForegroundColor));
|
|
updateRippleColor();
|
|
updateElevation();
|
|
updateStroke();
|
|
this.materialCardView.setBackgroundInternal(insetDrawable(this.bgDrawable));
|
|
Drawable clickableForeground = shouldUseClickableForeground() ? getClickableForeground() : this.foregroundContentDrawable;
|
|
this.fgDrawable = clickableForeground;
|
|
this.materialCardView.setForeground(insetDrawable(clickableForeground));
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setStrokeColor(ColorStateList colorStateList) {
|
|
if (this.strokeColor == colorStateList) {
|
|
return;
|
|
}
|
|
this.strokeColor = colorStateList;
|
|
updateStroke();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public int getStrokeColor() {
|
|
ColorStateList colorStateList = this.strokeColor;
|
|
if (colorStateList == null) {
|
|
return -1;
|
|
}
|
|
return colorStateList.getDefaultColor();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setStrokeWidth(int i) {
|
|
if (i == this.strokeWidth) {
|
|
return;
|
|
}
|
|
this.strokeWidth = i;
|
|
updateStroke();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCardBackgroundColor(ColorStateList colorStateList) {
|
|
this.bgDrawable.setFillColor(colorStateList);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getCardBackgroundColor() {
|
|
return this.bgDrawable.getFillColor();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCardForegroundColor(ColorStateList colorStateList) {
|
|
MaterialShapeDrawable materialShapeDrawable = this.foregroundContentDrawable;
|
|
if (colorStateList == null) {
|
|
colorStateList = ColorStateList.valueOf(0);
|
|
}
|
|
materialShapeDrawable.setFillColor(colorStateList);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public ColorStateList getCardForegroundColor() {
|
|
return this.foregroundContentDrawable.getFillColor();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setUserContentPadding(int i, int i2, int i3, int i4) {
|
|
this.userContentPadding.set(i, i2, i3, i4);
|
|
updateContentPadding();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void updateClickable() {
|
|
Drawable drawable = this.fgDrawable;
|
|
Drawable clickableForeground = shouldUseClickableForeground() ? getClickableForeground() : this.foregroundContentDrawable;
|
|
this.fgDrawable = clickableForeground;
|
|
if (drawable != clickableForeground) {
|
|
updateInsetForeground(clickableForeground);
|
|
}
|
|
}
|
|
|
|
public void animateCheckedIcon(boolean z) {
|
|
float f = z ? 1.0f : 0.0f;
|
|
float f2 = z ? 1.0f - this.checkedAnimationProgress : this.checkedAnimationProgress;
|
|
ValueAnimator valueAnimator = this.iconAnimator;
|
|
if (valueAnimator != null) {
|
|
valueAnimator.cancel();
|
|
this.iconAnimator = null;
|
|
}
|
|
ValueAnimator ofFloat = ValueAnimator.ofFloat(this.checkedAnimationProgress, f);
|
|
this.iconAnimator = ofFloat;
|
|
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.card.MaterialCardViewHelper$$ExternalSyntheticLambda0
|
|
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
|
|
public final void onAnimationUpdate(ValueAnimator valueAnimator2) {
|
|
MaterialCardViewHelper.this.m5483xa4d79c2b(valueAnimator2);
|
|
}
|
|
});
|
|
this.iconAnimator.setInterpolator(this.iconFadeAnimInterpolator);
|
|
this.iconAnimator.setDuration((z ? this.iconFadeInAnimDuration : this.iconFadeOutAnimDuration) * f2);
|
|
this.iconAnimator.start();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
/* renamed from: lambda$animateCheckedIcon$0$com-google-android-material-card-MaterialCardViewHelper, reason: not valid java name */
|
|
public /* synthetic */ void m5483xa4d79c2b(ValueAnimator valueAnimator) {
|
|
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
|
|
this.checkedIcon.setAlpha((int) (255.0f * floatValue));
|
|
this.checkedAnimationProgress = floatValue;
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCornerRadius(float f) {
|
|
setShapeAppearanceModel(this.shapeAppearanceModel.withCornerSize(f));
|
|
this.fgDrawable.invalidateSelf();
|
|
if (shouldAddCornerPaddingOutsideCardBackground() || shouldAddCornerPaddingInsideCardBackground()) {
|
|
updateContentPadding();
|
|
}
|
|
if (shouldAddCornerPaddingOutsideCardBackground()) {
|
|
updateInsets();
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public float getCornerRadius() {
|
|
return this.bgDrawable.getTopLeftCornerResolvedSize();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setProgress(float f) {
|
|
this.bgDrawable.setInterpolation(f);
|
|
MaterialShapeDrawable materialShapeDrawable = this.foregroundContentDrawable;
|
|
if (materialShapeDrawable != null) {
|
|
materialShapeDrawable.setInterpolation(f);
|
|
}
|
|
MaterialShapeDrawable materialShapeDrawable2 = this.foregroundShapeDrawable;
|
|
if (materialShapeDrawable2 != null) {
|
|
materialShapeDrawable2.setInterpolation(f);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public float getProgress() {
|
|
return this.bgDrawable.getInterpolation();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void updateElevation() {
|
|
this.bgDrawable.setElevation(this.materialCardView.getCardElevation());
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void updateInsets() {
|
|
if (!isBackgroundOverwritten()) {
|
|
this.materialCardView.setBackgroundInternal(insetDrawable(this.bgDrawable));
|
|
}
|
|
this.materialCardView.setForeground(insetDrawable(this.fgDrawable));
|
|
}
|
|
|
|
void updateStroke() {
|
|
this.foregroundContentDrawable.setStroke(this.strokeWidth, this.strokeColor);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void updateContentPadding() {
|
|
int calculateActualCornerPadding = (int) (((shouldAddCornerPaddingInsideCardBackground() || shouldAddCornerPaddingOutsideCardBackground()) ? calculateActualCornerPadding() : 0.0f) - getParentCardViewCalculatedCornerPadding());
|
|
this.materialCardView.setAncestorContentPadding(this.userContentPadding.left + calculateActualCornerPadding, this.userContentPadding.top + calculateActualCornerPadding, this.userContentPadding.right + calculateActualCornerPadding, this.userContentPadding.bottom + calculateActualCornerPadding);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setRippleColor(ColorStateList colorStateList) {
|
|
this.rippleColor = colorStateList;
|
|
updateRippleColor();
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckedIconTint(ColorStateList colorStateList) {
|
|
this.checkedIconTint = colorStateList;
|
|
Drawable drawable = this.checkedIcon;
|
|
if (drawable != null) {
|
|
DrawableCompat.setTintList(drawable, colorStateList);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckedIcon(Drawable drawable) {
|
|
if (drawable != null) {
|
|
Drawable mutate = DrawableCompat.wrap(drawable).mutate();
|
|
this.checkedIcon = mutate;
|
|
DrawableCompat.setTintList(mutate, this.checkedIconTint);
|
|
setChecked(this.materialCardView.isChecked());
|
|
} else {
|
|
this.checkedIcon = CHECKED_ICON_NONE;
|
|
}
|
|
LayerDrawable layerDrawable = this.clickableForegroundDrawable;
|
|
if (layerDrawable != null) {
|
|
layerDrawable.setDrawableByLayerId(R.id.mtrl_card_checked_layer_id, this.checkedIcon);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void recalculateCheckedIconPosition(int i, int i2) {
|
|
int i3;
|
|
int i4;
|
|
int i5;
|
|
int i6;
|
|
if (this.clickableForegroundDrawable != null) {
|
|
if (this.materialCardView.getUseCompatPadding()) {
|
|
i3 = (int) Math.ceil(calculateVerticalBackgroundPadding() * 2.0f);
|
|
i4 = (int) Math.ceil(calculateHorizontalBackgroundPadding() * 2.0f);
|
|
} else {
|
|
i3 = 0;
|
|
i4 = 0;
|
|
}
|
|
int i7 = isCheckedIconEnd() ? ((i - this.checkedIconMargin) - this.checkedIconSize) - i4 : this.checkedIconMargin;
|
|
int i8 = isCheckedIconBottom() ? this.checkedIconMargin : ((i2 - this.checkedIconMargin) - this.checkedIconSize) - i3;
|
|
int i9 = isCheckedIconEnd() ? this.checkedIconMargin : ((i - this.checkedIconMargin) - this.checkedIconSize) - i4;
|
|
int i10 = isCheckedIconBottom() ? ((i2 - this.checkedIconMargin) - this.checkedIconSize) - i3 : this.checkedIconMargin;
|
|
if (ViewCompat.getLayoutDirection(this.materialCardView) == 1) {
|
|
i6 = i9;
|
|
i5 = i7;
|
|
} else {
|
|
i5 = i9;
|
|
i6 = i7;
|
|
}
|
|
this.clickableForegroundDrawable.setLayerInset(2, i6, i10, i5, i8);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void forceRippleRedraw() {
|
|
Drawable drawable = this.rippleDrawable;
|
|
if (drawable != null) {
|
|
Rect bounds = drawable.getBounds();
|
|
int i = bounds.bottom;
|
|
this.rippleDrawable.setBounds(bounds.left, bounds.top, bounds.right, i - 1);
|
|
this.rippleDrawable.setBounds(bounds.left, bounds.top, bounds.right, i);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setShapeAppearanceModel(ShapeAppearanceModel shapeAppearanceModel) {
|
|
this.shapeAppearanceModel = shapeAppearanceModel;
|
|
this.bgDrawable.setShapeAppearanceModel(shapeAppearanceModel);
|
|
this.bgDrawable.setShadowBitmapDrawingEnable(!r0.isRoundRect());
|
|
MaterialShapeDrawable materialShapeDrawable = this.foregroundContentDrawable;
|
|
if (materialShapeDrawable != null) {
|
|
materialShapeDrawable.setShapeAppearanceModel(shapeAppearanceModel);
|
|
}
|
|
MaterialShapeDrawable materialShapeDrawable2 = this.foregroundShapeDrawable;
|
|
if (materialShapeDrawable2 != null) {
|
|
materialShapeDrawable2.setShapeAppearanceModel(shapeAppearanceModel);
|
|
}
|
|
MaterialShapeDrawable materialShapeDrawable3 = this.compatRippleDrawable;
|
|
if (materialShapeDrawable3 != null) {
|
|
materialShapeDrawable3.setShapeAppearanceModel(shapeAppearanceModel);
|
|
}
|
|
}
|
|
|
|
private void updateInsetForeground(Drawable drawable) {
|
|
if (this.materialCardView.getForeground() instanceof InsetDrawable) {
|
|
((InsetDrawable) this.materialCardView.getForeground()).setDrawable(drawable);
|
|
} else {
|
|
this.materialCardView.setForeground(insetDrawable(drawable));
|
|
}
|
|
}
|
|
|
|
private Drawable insetDrawable(Drawable drawable) {
|
|
int i;
|
|
int i2;
|
|
if (this.materialCardView.getUseCompatPadding()) {
|
|
i2 = (int) Math.ceil(calculateVerticalBackgroundPadding());
|
|
i = (int) Math.ceil(calculateHorizontalBackgroundPadding());
|
|
} else {
|
|
i = 0;
|
|
i2 = 0;
|
|
}
|
|
return new InsetDrawable(drawable, i, i2, i, i2) { // from class: com.google.android.material.card.MaterialCardViewHelper.1
|
|
@Override // android.graphics.drawable.Drawable
|
|
public int getMinimumHeight() {
|
|
return -1;
|
|
}
|
|
|
|
@Override // android.graphics.drawable.Drawable
|
|
public int getMinimumWidth() {
|
|
return -1;
|
|
}
|
|
|
|
@Override // android.graphics.drawable.InsetDrawable, android.graphics.drawable.DrawableWrapper, android.graphics.drawable.Drawable
|
|
public boolean getPadding(Rect rect) {
|
|
return false;
|
|
}
|
|
};
|
|
}
|
|
|
|
private float calculateVerticalBackgroundPadding() {
|
|
return (this.materialCardView.getMaxCardElevation() * CARD_VIEW_SHADOW_MULTIPLIER) + (shouldAddCornerPaddingOutsideCardBackground() ? calculateActualCornerPadding() : 0.0f);
|
|
}
|
|
|
|
private float calculateHorizontalBackgroundPadding() {
|
|
return this.materialCardView.getMaxCardElevation() + (shouldAddCornerPaddingOutsideCardBackground() ? calculateActualCornerPadding() : 0.0f);
|
|
}
|
|
|
|
private boolean canClipToOutline() {
|
|
return this.bgDrawable.isRoundRect();
|
|
}
|
|
|
|
private float getParentCardViewCalculatedCornerPadding() {
|
|
if (this.materialCardView.getPreventCornerOverlap() && this.materialCardView.getUseCompatPadding()) {
|
|
return (float) ((1.0d - COS_45) * this.materialCardView.getCardViewRadius());
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
private boolean shouldAddCornerPaddingInsideCardBackground() {
|
|
return this.materialCardView.getPreventCornerOverlap() && !canClipToOutline();
|
|
}
|
|
|
|
private boolean shouldAddCornerPaddingOutsideCardBackground() {
|
|
return this.materialCardView.getPreventCornerOverlap() && canClipToOutline() && this.materialCardView.getUseCompatPadding();
|
|
}
|
|
|
|
private float calculateActualCornerPadding() {
|
|
return Math.max(Math.max(calculateCornerPaddingForCornerTreatment(this.shapeAppearanceModel.getTopLeftCorner(), this.bgDrawable.getTopLeftCornerResolvedSize()), calculateCornerPaddingForCornerTreatment(this.shapeAppearanceModel.getTopRightCorner(), this.bgDrawable.getTopRightCornerResolvedSize())), Math.max(calculateCornerPaddingForCornerTreatment(this.shapeAppearanceModel.getBottomRightCorner(), this.bgDrawable.getBottomRightCornerResolvedSize()), calculateCornerPaddingForCornerTreatment(this.shapeAppearanceModel.getBottomLeftCorner(), this.bgDrawable.getBottomLeftCornerResolvedSize())));
|
|
}
|
|
|
|
private float calculateCornerPaddingForCornerTreatment(CornerTreatment cornerTreatment, float f) {
|
|
if (cornerTreatment instanceof RoundedCornerTreatment) {
|
|
return (float) ((1.0d - COS_45) * f);
|
|
}
|
|
if (cornerTreatment instanceof CutCornerTreatment) {
|
|
return f / 2.0f;
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
private boolean shouldUseClickableForeground() {
|
|
if (this.materialCardView.isClickable()) {
|
|
return true;
|
|
}
|
|
View view = this.materialCardView;
|
|
while (view.isDuplicateParentStateEnabled() && (view.getParent() instanceof View)) {
|
|
view = (View) view.getParent();
|
|
}
|
|
return view.isClickable();
|
|
}
|
|
|
|
private Drawable getClickableForeground() {
|
|
if (this.rippleDrawable == null) {
|
|
this.rippleDrawable = createForegroundRippleDrawable();
|
|
}
|
|
if (this.clickableForegroundDrawable == null) {
|
|
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{this.rippleDrawable, this.foregroundContentDrawable, this.checkedIcon});
|
|
this.clickableForegroundDrawable = layerDrawable;
|
|
layerDrawable.setId(2, R.id.mtrl_card_checked_layer_id);
|
|
}
|
|
return this.clickableForegroundDrawable;
|
|
}
|
|
|
|
private Drawable createForegroundRippleDrawable() {
|
|
if (RippleUtils.USE_FRAMEWORK_RIPPLE) {
|
|
this.foregroundShapeDrawable = createForegroundShapeDrawable();
|
|
return new RippleDrawable(this.rippleColor, null, this.foregroundShapeDrawable);
|
|
}
|
|
return createCompatRippleDrawable();
|
|
}
|
|
|
|
private Drawable createCompatRippleDrawable() {
|
|
StateListDrawable stateListDrawable = new StateListDrawable();
|
|
MaterialShapeDrawable createForegroundShapeDrawable = createForegroundShapeDrawable();
|
|
this.compatRippleDrawable = createForegroundShapeDrawable;
|
|
createForegroundShapeDrawable.setFillColor(this.rippleColor);
|
|
stateListDrawable.addState(new int[]{android.R.attr.state_pressed}, this.compatRippleDrawable);
|
|
return stateListDrawable;
|
|
}
|
|
|
|
private void updateRippleColor() {
|
|
Drawable drawable;
|
|
if (RippleUtils.USE_FRAMEWORK_RIPPLE && (drawable = this.rippleDrawable) != null) {
|
|
((RippleDrawable) drawable).setColor(this.rippleColor);
|
|
return;
|
|
}
|
|
MaterialShapeDrawable materialShapeDrawable = this.compatRippleDrawable;
|
|
if (materialShapeDrawable != null) {
|
|
materialShapeDrawable.setFillColor(this.rippleColor);
|
|
}
|
|
}
|
|
|
|
private MaterialShapeDrawable createForegroundShapeDrawable() {
|
|
return new MaterialShapeDrawable(this.shapeAppearanceModel);
|
|
}
|
|
|
|
public void setChecked(boolean z) {
|
|
setChecked(z, false);
|
|
}
|
|
|
|
public void setChecked(boolean z, boolean z2) {
|
|
Drawable drawable = this.checkedIcon;
|
|
if (drawable != null) {
|
|
if (z2) {
|
|
animateCheckedIcon(z);
|
|
} else {
|
|
drawable.setAlpha(z ? 255 : 0);
|
|
this.checkedAnimationProgress = z ? 1.0f : 0.0f;
|
|
}
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: package-private */
|
|
public void setCheckedIconGravity(int i) {
|
|
this.checkedIconGravity = i;
|
|
recalculateCheckedIconPosition(this.materialCardView.getMeasuredWidth(), this.materialCardView.getMeasuredHeight());
|
|
}
|
|
}
|