jimu-decompiled/sources/com/ubt/jimu/widgets/RoundedDrawable.java
2025-05-13 19:24:51 +02:00

380 lines
12 KiB
Java

package com.ubt.jimu.widgets;
import android.annotation.SuppressLint;
import android.content.res.ColorStateList;
import android.graphics.Bitmap;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Shader;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.util.Log;
import android.widget.ImageView;
/* loaded from: classes2.dex */
public class RoundedDrawable extends Drawable {
private final Bitmap d;
private final Paint e;
private final int f;
private final int g;
private final Paint i;
private BitmapShader k;
private Shader.TileMode l;
private Shader.TileMode m;
private boolean n;
private float o;
private boolean p;
private float q;
private ColorStateList r;
private ImageView.ScaleType s;
private final RectF a = new RectF();
private final RectF b = new RectF();
private final RectF c = new RectF();
private final RectF h = new RectF();
private final Matrix j = new Matrix();
/* renamed from: com.ubt.jimu.widgets.RoundedDrawable$1, reason: invalid class name */
static /* synthetic */ class AnonymousClass1 {
static final /* synthetic */ int[] a = new int[ImageView.ScaleType.values().length];
static {
try {
a[ImageView.ScaleType.CENTER.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
a[ImageView.ScaleType.CENTER_CROP.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
a[ImageView.ScaleType.CENTER_INSIDE.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
a[ImageView.ScaleType.FIT_CENTER.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
a[ImageView.ScaleType.FIT_END.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
a[ImageView.ScaleType.FIT_START.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
a[ImageView.ScaleType.FIT_XY.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
}
}
public RoundedDrawable(Bitmap bitmap) {
Shader.TileMode tileMode = Shader.TileMode.CLAMP;
this.l = tileMode;
this.m = tileMode;
this.n = true;
this.o = 0.0f;
this.p = false;
this.q = 0.0f;
this.r = ColorStateList.valueOf(-16777216);
this.s = ImageView.ScaleType.FIT_CENTER;
this.d = bitmap;
this.f = bitmap.getWidth();
this.g = bitmap.getHeight();
this.c.set(0.0f, 0.0f, this.f, this.g);
this.e = new Paint();
this.e.setStyle(Paint.Style.FILL);
this.e.setAntiAlias(true);
this.i = new Paint();
this.i.setStyle(Paint.Style.STROKE);
this.i.setAntiAlias(true);
this.i.setColor(this.r.getColorForState(getState(), -16777216));
this.i.setStrokeWidth(this.q);
}
public static RoundedDrawable a(Bitmap bitmap) {
if (bitmap != null) {
return new RoundedDrawable(bitmap);
}
return null;
}
public static Drawable b(Drawable drawable) {
if (drawable == null || (drawable instanceof RoundedDrawable)) {
return drawable;
}
if (!(drawable instanceof LayerDrawable)) {
Bitmap a = a(drawable);
return a != null ? new RoundedDrawable(a) : drawable;
}
LayerDrawable layerDrawable = (LayerDrawable) drawable;
int numberOfLayers = layerDrawable.getNumberOfLayers();
for (int i = 0; i < numberOfLayers; i++) {
layerDrawable.setDrawableByLayerId(layerDrawable.getId(i), b(layerDrawable.getDrawable(i)));
}
return layerDrawable;
}
@Override // android.graphics.drawable.Drawable
public void draw(Canvas canvas) {
if (this.n) {
this.k = new BitmapShader(this.d, this.l, this.m);
Shader.TileMode tileMode = this.l;
Shader.TileMode tileMode2 = Shader.TileMode.CLAMP;
if (tileMode == tileMode2 && this.m == tileMode2) {
this.k.setLocalMatrix(this.j);
}
this.e.setShader(this.k);
this.n = false;
}
if (this.p) {
if (this.q <= 0.0f) {
canvas.drawOval(this.b, this.e);
return;
} else {
canvas.drawOval(this.b, this.e);
canvas.drawOval(this.h, this.i);
return;
}
}
if (this.q <= 0.0f) {
RectF rectF = this.b;
float f = this.o;
canvas.drawRoundRect(rectF, f, f, this.e);
} else {
canvas.drawRoundRect(this.b, Math.max(this.o, 0.0f), Math.max(this.o, 0.0f), this.e);
RectF rectF2 = this.h;
float f2 = this.o;
canvas.drawRoundRect(rectF2, f2, f2, this.i);
}
}
@Override // android.graphics.drawable.Drawable
public int getAlpha() {
return this.e.getAlpha();
}
@Override // android.graphics.drawable.Drawable
@SuppressLint({"Override"})
public ColorFilter getColorFilter() {
return this.e.getColorFilter();
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicHeight() {
return this.g;
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicWidth() {
return this.f;
}
@Override // android.graphics.drawable.Drawable
public int getOpacity() {
return -3;
}
@Override // android.graphics.drawable.Drawable
public boolean isStateful() {
return this.r.isStateful();
}
@Override // android.graphics.drawable.Drawable
protected void onBoundsChange(Rect rect) {
super.onBoundsChange(rect);
this.a.set(rect);
a();
}
@Override // android.graphics.drawable.Drawable
protected boolean onStateChange(int[] iArr) {
int colorForState = this.r.getColorForState(iArr, 0);
if (this.i.getColor() == colorForState) {
return super.onStateChange(iArr);
}
this.i.setColor(colorForState);
return true;
}
@Override // android.graphics.drawable.Drawable
public void setAlpha(int i) {
this.e.setAlpha(i);
invalidateSelf();
}
@Override // android.graphics.drawable.Drawable
public void setColorFilter(ColorFilter colorFilter) {
this.e.setColorFilter(colorFilter);
invalidateSelf();
}
@Override // android.graphics.drawable.Drawable
public void setDither(boolean z) {
this.e.setDither(z);
invalidateSelf();
}
@Override // android.graphics.drawable.Drawable
public void setFilterBitmap(boolean z) {
this.e.setFilterBitmap(z);
invalidateSelf();
}
public static Bitmap a(Drawable drawable) {
if (drawable instanceof BitmapDrawable) {
return ((BitmapDrawable) drawable).getBitmap();
}
try {
Bitmap createBitmap = Bitmap.createBitmap(Math.max(drawable.getIntrinsicWidth(), 2), Math.max(drawable.getIntrinsicHeight(), 2), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(createBitmap);
drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
drawable.draw(canvas);
return createBitmap;
} catch (Exception e) {
e.printStackTrace();
Log.w("RoundedDrawable", "Failed to create bitmap from drawable!");
return null;
}
}
public RoundedDrawable b(float f) {
this.o = f;
return this;
}
public RoundedDrawable b(Shader.TileMode tileMode) {
if (this.m != tileMode) {
this.m = tileMode;
this.n = true;
invalidateSelf();
}
return this;
}
private void a() {
float width;
float f;
int i = AnonymousClass1.a[this.s.ordinal()];
if (i == 1) {
this.h.set(this.a);
RectF rectF = this.h;
float f2 = this.q;
rectF.inset(f2 / 2.0f, f2 / 2.0f);
this.j.reset();
this.j.setTranslate((int) (((this.h.width() - this.f) * 0.5f) + 0.5f), (int) (((this.h.height() - this.g) * 0.5f) + 0.5f));
} else if (i == 2) {
this.h.set(this.a);
RectF rectF2 = this.h;
float f3 = this.q;
rectF2.inset(f3 / 2.0f, f3 / 2.0f);
this.j.reset();
float f4 = 0.0f;
if (this.f * this.h.height() > this.h.width() * this.g) {
width = this.h.height() / this.g;
f = (this.h.width() - (this.f * width)) * 0.5f;
} else {
width = this.h.width() / this.f;
f4 = (this.h.height() - (this.g * width)) * 0.5f;
f = 0.0f;
}
this.j.setScale(width, width);
Matrix matrix = this.j;
float f5 = this.q;
matrix.postTranslate(((int) (f + 0.5f)) + f5, ((int) (f4 + 0.5f)) + f5);
} else if (i == 3) {
this.j.reset();
float min = (((float) this.f) > this.a.width() || ((float) this.g) > this.a.height()) ? Math.min(this.a.width() / this.f, this.a.height() / this.g) : 1.0f;
float width2 = (int) (((this.a.width() - (this.f * min)) * 0.5f) + 0.5f);
float height = (int) (((this.a.height() - (this.g * min)) * 0.5f) + 0.5f);
this.j.setScale(min, min);
this.j.postTranslate(width2, height);
this.h.set(this.c);
this.j.mapRect(this.h);
RectF rectF3 = this.h;
float f6 = this.q;
rectF3.inset(f6 / 2.0f, f6 / 2.0f);
this.j.setRectToRect(this.c, this.h, Matrix.ScaleToFit.FILL);
} else if (i == 5) {
this.h.set(this.c);
this.j.setRectToRect(this.c, this.a, Matrix.ScaleToFit.END);
this.j.mapRect(this.h);
RectF rectF4 = this.h;
float f7 = this.q;
rectF4.inset(f7 / 2.0f, f7 / 2.0f);
this.j.setRectToRect(this.c, this.h, Matrix.ScaleToFit.FILL);
} else if (i == 6) {
this.h.set(this.c);
this.j.setRectToRect(this.c, this.a, Matrix.ScaleToFit.START);
this.j.mapRect(this.h);
RectF rectF5 = this.h;
float f8 = this.q;
rectF5.inset(f8 / 2.0f, f8 / 2.0f);
this.j.setRectToRect(this.c, this.h, Matrix.ScaleToFit.FILL);
} else if (i != 7) {
this.h.set(this.c);
this.j.setRectToRect(this.c, this.a, Matrix.ScaleToFit.CENTER);
this.j.mapRect(this.h);
RectF rectF6 = this.h;
float f9 = this.q;
rectF6.inset(f9 / 2.0f, f9 / 2.0f);
this.j.setRectToRect(this.c, this.h, Matrix.ScaleToFit.FILL);
} else {
this.h.set(this.a);
RectF rectF7 = this.h;
float f10 = this.q;
rectF7.inset(f10 / 2.0f, f10 / 2.0f);
this.j.reset();
this.j.setRectToRect(this.c, this.h, Matrix.ScaleToFit.FILL);
}
this.b.set(this.h);
}
public RoundedDrawable a(float f) {
this.q = f;
this.i.setStrokeWidth(this.q);
return this;
}
public RoundedDrawable a(ColorStateList colorStateList) {
if (colorStateList == null) {
colorStateList = ColorStateList.valueOf(0);
}
this.r = colorStateList;
this.i.setColor(this.r.getColorForState(getState(), -16777216));
return this;
}
public RoundedDrawable a(boolean z) {
this.p = z;
return this;
}
public RoundedDrawable a(ImageView.ScaleType scaleType) {
if (scaleType == null) {
scaleType = ImageView.ScaleType.FIT_CENTER;
}
if (this.s != scaleType) {
this.s = scaleType;
a();
}
return this;
}
public RoundedDrawable a(Shader.TileMode tileMode) {
if (this.l != tileMode) {
this.l = tileMode;
this.n = true;
invalidateSelf();
}
return this;
}
}