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

412 lines
19 KiB
Java

package com.google.android.material.shape;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.RectF;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import com.google.android.material.R;
/* loaded from: classes2.dex */
public class ShapeAppearanceModel {
public static final CornerSize PILL = new RelativeCornerSize(0.5f);
EdgeTreatment bottomEdge;
CornerTreatment bottomLeftCorner;
CornerSize bottomLeftCornerSize;
CornerTreatment bottomRightCorner;
CornerSize bottomRightCornerSize;
EdgeTreatment leftEdge;
EdgeTreatment rightEdge;
EdgeTreatment topEdge;
CornerTreatment topLeftCorner;
CornerSize topLeftCornerSize;
CornerTreatment topRightCorner;
CornerSize topRightCornerSize;
/* loaded from: classes2.dex */
public interface CornerSizeUnaryOperator {
CornerSize apply(CornerSize cornerSize);
}
public EdgeTreatment getBottomEdge() {
return this.bottomEdge;
}
public CornerTreatment getBottomLeftCorner() {
return this.bottomLeftCorner;
}
public CornerSize getBottomLeftCornerSize() {
return this.bottomLeftCornerSize;
}
public CornerTreatment getBottomRightCorner() {
return this.bottomRightCorner;
}
public CornerSize getBottomRightCornerSize() {
return this.bottomRightCornerSize;
}
public EdgeTreatment getLeftEdge() {
return this.leftEdge;
}
public EdgeTreatment getRightEdge() {
return this.rightEdge;
}
public EdgeTreatment getTopEdge() {
return this.topEdge;
}
public CornerTreatment getTopLeftCorner() {
return this.topLeftCorner;
}
public CornerSize getTopLeftCornerSize() {
return this.topLeftCornerSize;
}
public CornerTreatment getTopRightCorner() {
return this.topRightCorner;
}
public CornerSize getTopRightCornerSize() {
return this.topRightCornerSize;
}
/* loaded from: classes2.dex */
public static final class Builder {
private EdgeTreatment bottomEdge;
private CornerTreatment bottomLeftCorner;
private CornerSize bottomLeftCornerSize;
private CornerTreatment bottomRightCorner;
private CornerSize bottomRightCornerSize;
private EdgeTreatment leftEdge;
private EdgeTreatment rightEdge;
private EdgeTreatment topEdge;
private CornerTreatment topLeftCorner;
private CornerSize topLeftCornerSize;
private CornerTreatment topRightCorner;
private CornerSize topRightCornerSize;
public Builder setBottomEdge(EdgeTreatment edgeTreatment) {
this.bottomEdge = edgeTreatment;
return this;
}
public Builder setBottomLeftCornerSize(CornerSize cornerSize) {
this.bottomLeftCornerSize = cornerSize;
return this;
}
public Builder setBottomRightCornerSize(CornerSize cornerSize) {
this.bottomRightCornerSize = cornerSize;
return this;
}
public Builder setLeftEdge(EdgeTreatment edgeTreatment) {
this.leftEdge = edgeTreatment;
return this;
}
public Builder setRightEdge(EdgeTreatment edgeTreatment) {
this.rightEdge = edgeTreatment;
return this;
}
public Builder setTopEdge(EdgeTreatment edgeTreatment) {
this.topEdge = edgeTreatment;
return this;
}
public Builder setTopLeftCornerSize(CornerSize cornerSize) {
this.topLeftCornerSize = cornerSize;
return this;
}
public Builder setTopRightCornerSize(CornerSize cornerSize) {
this.topRightCornerSize = cornerSize;
return this;
}
public Builder() {
this.topLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.rightEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.bottomEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.leftEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
}
public Builder(ShapeAppearanceModel shapeAppearanceModel) {
this.topLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.rightEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.bottomEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.leftEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.topLeftCorner = shapeAppearanceModel.topLeftCorner;
this.topRightCorner = shapeAppearanceModel.topRightCorner;
this.bottomRightCorner = shapeAppearanceModel.bottomRightCorner;
this.bottomLeftCorner = shapeAppearanceModel.bottomLeftCorner;
this.topLeftCornerSize = shapeAppearanceModel.topLeftCornerSize;
this.topRightCornerSize = shapeAppearanceModel.topRightCornerSize;
this.bottomRightCornerSize = shapeAppearanceModel.bottomRightCornerSize;
this.bottomLeftCornerSize = shapeAppearanceModel.bottomLeftCornerSize;
this.topEdge = shapeAppearanceModel.topEdge;
this.rightEdge = shapeAppearanceModel.rightEdge;
this.bottomEdge = shapeAppearanceModel.bottomEdge;
this.leftEdge = shapeAppearanceModel.leftEdge;
}
public Builder setAllCorners(int i, float f) {
return setAllCorners(MaterialShapeUtils.createCornerTreatment(i)).setAllCornerSizes(f);
}
public Builder setAllCorners(CornerTreatment cornerTreatment) {
return setTopLeftCorner(cornerTreatment).setTopRightCorner(cornerTreatment).setBottomRightCorner(cornerTreatment).setBottomLeftCorner(cornerTreatment);
}
public Builder setAllCornerSizes(CornerSize cornerSize) {
return setTopLeftCornerSize(cornerSize).setTopRightCornerSize(cornerSize).setBottomRightCornerSize(cornerSize).setBottomLeftCornerSize(cornerSize);
}
public Builder setAllCornerSizes(float f) {
return setTopLeftCornerSize(f).setTopRightCornerSize(f).setBottomRightCornerSize(f).setBottomLeftCornerSize(f);
}
public Builder setTopLeftCornerSize(float f) {
this.topLeftCornerSize = new AbsoluteCornerSize(f);
return this;
}
public Builder setTopRightCornerSize(float f) {
this.topRightCornerSize = new AbsoluteCornerSize(f);
return this;
}
public Builder setBottomRightCornerSize(float f) {
this.bottomRightCornerSize = new AbsoluteCornerSize(f);
return this;
}
public Builder setBottomLeftCornerSize(float f) {
this.bottomLeftCornerSize = new AbsoluteCornerSize(f);
return this;
}
public Builder setTopLeftCorner(int i, float f) {
return setTopLeftCorner(MaterialShapeUtils.createCornerTreatment(i)).setTopLeftCornerSize(f);
}
public Builder setTopLeftCorner(int i, CornerSize cornerSize) {
return setTopLeftCorner(MaterialShapeUtils.createCornerTreatment(i)).setTopLeftCornerSize(cornerSize);
}
public Builder setTopLeftCorner(CornerTreatment cornerTreatment) {
this.topLeftCorner = cornerTreatment;
float compatCornerTreatmentSize = compatCornerTreatmentSize(cornerTreatment);
if (compatCornerTreatmentSize != -1.0f) {
setTopLeftCornerSize(compatCornerTreatmentSize);
}
return this;
}
public Builder setTopRightCorner(int i, float f) {
return setTopRightCorner(MaterialShapeUtils.createCornerTreatment(i)).setTopRightCornerSize(f);
}
public Builder setTopRightCorner(int i, CornerSize cornerSize) {
return setTopRightCorner(MaterialShapeUtils.createCornerTreatment(i)).setTopRightCornerSize(cornerSize);
}
public Builder setTopRightCorner(CornerTreatment cornerTreatment) {
this.topRightCorner = cornerTreatment;
float compatCornerTreatmentSize = compatCornerTreatmentSize(cornerTreatment);
if (compatCornerTreatmentSize != -1.0f) {
setTopRightCornerSize(compatCornerTreatmentSize);
}
return this;
}
public Builder setBottomRightCorner(int i, float f) {
return setBottomRightCorner(MaterialShapeUtils.createCornerTreatment(i)).setBottomRightCornerSize(f);
}
public Builder setBottomRightCorner(int i, CornerSize cornerSize) {
return setBottomRightCorner(MaterialShapeUtils.createCornerTreatment(i)).setBottomRightCornerSize(cornerSize);
}
public Builder setBottomRightCorner(CornerTreatment cornerTreatment) {
this.bottomRightCorner = cornerTreatment;
float compatCornerTreatmentSize = compatCornerTreatmentSize(cornerTreatment);
if (compatCornerTreatmentSize != -1.0f) {
setBottomRightCornerSize(compatCornerTreatmentSize);
}
return this;
}
public Builder setBottomLeftCorner(int i, float f) {
return setBottomLeftCorner(MaterialShapeUtils.createCornerTreatment(i)).setBottomLeftCornerSize(f);
}
public Builder setBottomLeftCorner(int i, CornerSize cornerSize) {
return setBottomLeftCorner(MaterialShapeUtils.createCornerTreatment(i)).setBottomLeftCornerSize(cornerSize);
}
public Builder setBottomLeftCorner(CornerTreatment cornerTreatment) {
this.bottomLeftCorner = cornerTreatment;
float compatCornerTreatmentSize = compatCornerTreatmentSize(cornerTreatment);
if (compatCornerTreatmentSize != -1.0f) {
setBottomLeftCornerSize(compatCornerTreatmentSize);
}
return this;
}
public Builder setAllEdges(EdgeTreatment edgeTreatment) {
return setLeftEdge(edgeTreatment).setTopEdge(edgeTreatment).setRightEdge(edgeTreatment).setBottomEdge(edgeTreatment);
}
private static float compatCornerTreatmentSize(CornerTreatment cornerTreatment) {
if (cornerTreatment instanceof RoundedCornerTreatment) {
return ((RoundedCornerTreatment) cornerTreatment).radius;
}
if (cornerTreatment instanceof CutCornerTreatment) {
return ((CutCornerTreatment) cornerTreatment).size;
}
return -1.0f;
}
public ShapeAppearanceModel build() {
return new ShapeAppearanceModel(this);
}
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(Context context, AttributeSet attributeSet, int i, int i2) {
return builder(context, attributeSet, i, i2, 0);
}
public static Builder builder(Context context, AttributeSet attributeSet, int i, int i2, int i3) {
return builder(context, attributeSet, i, i2, new AbsoluteCornerSize(i3));
}
public static Builder builder(Context context, AttributeSet attributeSet, int i, int i2, CornerSize cornerSize) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.MaterialShape, i, i2);
int resourceId = obtainStyledAttributes.getResourceId(R.styleable.MaterialShape_shapeAppearance, 0);
int resourceId2 = obtainStyledAttributes.getResourceId(R.styleable.MaterialShape_shapeAppearanceOverlay, 0);
obtainStyledAttributes.recycle();
return builder(context, resourceId, resourceId2, cornerSize);
}
public static Builder builder(Context context, int i, int i2) {
return builder(context, i, i2, 0);
}
private static Builder builder(Context context, int i, int i2, int i3) {
return builder(context, i, i2, new AbsoluteCornerSize(i3));
}
private static Builder builder(Context context, int i, int i2, CornerSize cornerSize) {
ContextThemeWrapper contextThemeWrapper = new ContextThemeWrapper(context, i);
if (i2 != 0) {
contextThemeWrapper = new ContextThemeWrapper(contextThemeWrapper, i2);
}
TypedArray obtainStyledAttributes = contextThemeWrapper.obtainStyledAttributes(R.styleable.ShapeAppearance);
try {
int i3 = obtainStyledAttributes.getInt(R.styleable.ShapeAppearance_cornerFamily, 0);
int i4 = obtainStyledAttributes.getInt(R.styleable.ShapeAppearance_cornerFamilyTopLeft, i3);
int i5 = obtainStyledAttributes.getInt(R.styleable.ShapeAppearance_cornerFamilyTopRight, i3);
int i6 = obtainStyledAttributes.getInt(R.styleable.ShapeAppearance_cornerFamilyBottomRight, i3);
int i7 = obtainStyledAttributes.getInt(R.styleable.ShapeAppearance_cornerFamilyBottomLeft, i3);
CornerSize cornerSize2 = getCornerSize(obtainStyledAttributes, R.styleable.ShapeAppearance_cornerSize, cornerSize);
CornerSize cornerSize3 = getCornerSize(obtainStyledAttributes, R.styleable.ShapeAppearance_cornerSizeTopLeft, cornerSize2);
CornerSize cornerSize4 = getCornerSize(obtainStyledAttributes, R.styleable.ShapeAppearance_cornerSizeTopRight, cornerSize2);
CornerSize cornerSize5 = getCornerSize(obtainStyledAttributes, R.styleable.ShapeAppearance_cornerSizeBottomRight, cornerSize2);
return new Builder().setTopLeftCorner(i4, cornerSize3).setTopRightCorner(i5, cornerSize4).setBottomRightCorner(i6, cornerSize5).setBottomLeftCorner(i7, getCornerSize(obtainStyledAttributes, R.styleable.ShapeAppearance_cornerSizeBottomLeft, cornerSize2));
} finally {
obtainStyledAttributes.recycle();
}
}
private static CornerSize getCornerSize(TypedArray typedArray, int i, CornerSize cornerSize) {
TypedValue peekValue = typedArray.peekValue(i);
if (peekValue == null) {
return cornerSize;
}
if (peekValue.type == 5) {
return new AbsoluteCornerSize(TypedValue.complexToDimensionPixelSize(peekValue.data, typedArray.getResources().getDisplayMetrics()));
}
return peekValue.type == 6 ? new RelativeCornerSize(peekValue.getFraction(1.0f, 1.0f)) : cornerSize;
}
private ShapeAppearanceModel(Builder builder) {
this.topLeftCorner = builder.topLeftCorner;
this.topRightCorner = builder.topRightCorner;
this.bottomRightCorner = builder.bottomRightCorner;
this.bottomLeftCorner = builder.bottomLeftCorner;
this.topLeftCornerSize = builder.topLeftCornerSize;
this.topRightCornerSize = builder.topRightCornerSize;
this.bottomRightCornerSize = builder.bottomRightCornerSize;
this.bottomLeftCornerSize = builder.bottomLeftCornerSize;
this.topEdge = builder.topEdge;
this.rightEdge = builder.rightEdge;
this.bottomEdge = builder.bottomEdge;
this.leftEdge = builder.leftEdge;
}
public ShapeAppearanceModel() {
this.topLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomRightCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.bottomLeftCorner = MaterialShapeUtils.createDefaultCornerTreatment();
this.topLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomRightCornerSize = new AbsoluteCornerSize(0.0f);
this.bottomLeftCornerSize = new AbsoluteCornerSize(0.0f);
this.topEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.rightEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.bottomEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
this.leftEdge = MaterialShapeUtils.createDefaultEdgeTreatment();
}
public Builder toBuilder() {
return new Builder(this);
}
public ShapeAppearanceModel withCornerSize(float f) {
return toBuilder().setAllCornerSizes(f).build();
}
public ShapeAppearanceModel withCornerSize(CornerSize cornerSize) {
return toBuilder().setAllCornerSizes(cornerSize).build();
}
public ShapeAppearanceModel withTransformedCornerSizes(CornerSizeUnaryOperator cornerSizeUnaryOperator) {
return toBuilder().setTopLeftCornerSize(cornerSizeUnaryOperator.apply(getTopLeftCornerSize())).setTopRightCornerSize(cornerSizeUnaryOperator.apply(getTopRightCornerSize())).setBottomLeftCornerSize(cornerSizeUnaryOperator.apply(getBottomLeftCornerSize())).setBottomRightCornerSize(cornerSizeUnaryOperator.apply(getBottomRightCornerSize())).build();
}
public boolean isRoundRect(RectF rectF) {
boolean z = this.leftEdge.getClass().equals(EdgeTreatment.class) && this.rightEdge.getClass().equals(EdgeTreatment.class) && this.topEdge.getClass().equals(EdgeTreatment.class) && this.bottomEdge.getClass().equals(EdgeTreatment.class);
float cornerSize = this.topLeftCornerSize.getCornerSize(rectF);
return z && ((this.topRightCornerSize.getCornerSize(rectF) > cornerSize ? 1 : (this.topRightCornerSize.getCornerSize(rectF) == cornerSize ? 0 : -1)) == 0 && (this.bottomLeftCornerSize.getCornerSize(rectF) > cornerSize ? 1 : (this.bottomLeftCornerSize.getCornerSize(rectF) == cornerSize ? 0 : -1)) == 0 && (this.bottomRightCornerSize.getCornerSize(rectF) > cornerSize ? 1 : (this.bottomRightCornerSize.getCornerSize(rectF) == cornerSize ? 0 : -1)) == 0) && ((this.topRightCorner instanceof RoundedCornerTreatment) && (this.topLeftCorner instanceof RoundedCornerTreatment) && (this.bottomRightCorner instanceof RoundedCornerTreatment) && (this.bottomLeftCorner instanceof RoundedCornerTreatment));
}
}