CrackMe.apk
Download file
package com.facebook.drawee.drawable;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import com.facebook.common.internal.Preconditions;
import java.util.Arrays;
import javax.annotation.Nullable;
public class RoundedColorDrawable extends Drawable implements Rounded {
private int mAlpha;
private int mBorderColor;
final Path mBorderPath;
final float[] mBorderRadii;
private float mBorderWidth;
private int mColor;
@Nullable
float[] mInsideBorderRadii;
private boolean mIsCircle;
private float mPadding;
final Paint mPaint;
private boolean mPaintFilterBitmap;
final Path mPath;
private final float[] mRadii;
private boolean mScaleDownInsideBorders;
private final RectF mTempRect;
public void setColorFilter(ColorFilter colorFilter) {
}
public RoundedColorDrawable(int i) {
this.mRadii = new float[8];
this.mBorderRadii = new float[8];
this.mPaint = new Paint(1);
this.mIsCircle = false;
this.mBorderWidth = 0.0f;
this.mPadding = 0.0f;
this.mBorderColor = 0;
this.mScaleDownInsideBorders = false;
this.mPaintFilterBitmap = false;
this.mPath = new Path();
this.mBorderPath = new Path();
this.mColor = 0;
this.mTempRect = new RectF();
this.mAlpha = 255;
setColor(i);
}
public static RoundedColorDrawable fromColorDrawable(ColorDrawable colorDrawable) {
return new RoundedColorDrawable(colorDrawable.getColor());
}
public RoundedColorDrawable(float[] fArr, int i) {
this(i);
setRadii(fArr);
}
public RoundedColorDrawable(float f, int i) {
this(i);
setRadius(f);
}
/* access modifiers changed from: protected */
public void onBoundsChange(Rect rect) {
super.onBoundsChange(rect);
updatePath();
}
public void draw(Canvas canvas) {
this.mPaint.setColor(DrawableUtils.multiplyColorAlpha(this.mColor, this.mAlpha));
this.mPaint.setStyle(Paint.Style.FILL);
this.mPaint.setFilterBitmap(getPaintFilterBitmap());
canvas.drawPath(this.mPath, this.mPaint);
if (this.mBorderWidth != 0.0f) {
this.mPaint.setColor(DrawableUtils.multiplyColorAlpha(this.mBorderColor, this.mAlpha));
this.mPaint.setStyle(Paint.Style.STROKE);
this.mPaint.setStrokeWidth(this.mBorderWidth);
canvas.drawPath(this.mBorderPath, this.mPaint);
}
}
public void setCircle(boolean z) {
this.mIsCircle = z;
updatePath();
invalidateSelf();
}
public boolean isCircle() {
return this.mIsCircle;
}
public void setRadii(float[] fArr) {
if (fArr == null) {
Arrays.fill(this.mRadii, 0.0f);
} else {
Preconditions.checkArgument(fArr.length == 8, "radii should have exactly 8 values");
System.arraycopy(fArr, 0, this.mRadii, 0, 8);
}
updatePath();
invalidateSelf();
}
public float[] getRadii() {
return this.mRadii;
}
public void setRadius(float f) {
Preconditions.checkArgument(f >= 0.0f, "radius should be non negative");
Arrays.fill(this.mRadii, f);
updatePath();
invalidateSelf();
}
public void setColor(int i) {
if (this.mColor != i) {
this.mColor = i;
invalidateSelf();
}
}
public int getColor() {
return this.mColor;
}
public void setBorder(int i, float f) {
if (this.mBorderColor != i) {
this.mBorderColor = i;
invalidateSelf();
}
if (this.mBorderWidth != f) {
this.mBorderWidth = f;
updatePath();
invalidateSelf();
}
}
public int getBorderColor() {
return this.mBorderColor;
}
public float getBorderWidth() {
return this.mBorderWidth;
}
public void setPadding(float f) {
if (this.mPadding != f) {
this.mPadding = f;
updatePath();
invalidateSelf();
}
}
public float getPadding() {
return this.mPadding;
}
public void setScaleDownInsideBorders(boolean z) {
if (this.mScaleDownInsideBorders != z) {
this.mScaleDownInsideBorders = z;
updatePath();
invalidateSelf();
}
}
public boolean getScaleDownInsideBorders() {
return this.mScaleDownInsideBorders;
}
public void setPaintFilterBitmap(boolean z) {
if (this.mPaintFilterBitmap != z) {
this.mPaintFilterBitmap = z;
invalidateSelf();
}
}
public boolean getPaintFilterBitmap() {
return this.mPaintFilterBitmap;
}
public void setAlpha(int i) {
if (i != this.mAlpha) {
this.mAlpha = i;
invalidateSelf();
}
}
public int getAlpha() {
return this.mAlpha;
}
public int getOpacity() {
return DrawableUtils.getOpacityFromColor(DrawableUtils.multiplyColorAlpha(this.mColor, this.mAlpha));
}
private void updatePath() {
float[] fArr;
float[] fArr2;
this.mPath.reset();
this.mBorderPath.reset();
this.mTempRect.set(getBounds());
RectF rectF = this.mTempRect;
float f = this.mBorderWidth;
rectF.inset(f / 2.0f, f / 2.0f);
int i = 0;
if (this.mIsCircle) {
this.mBorderPath.addCircle(this.mTempRect.centerX(), this.mTempRect.centerY(), Math.min(this.mTempRect.width(), this.mTempRect.height()) / 2.0f, Path.Direction.CW);
} else {
int i2 = 0;
while (true) {
fArr2 = this.mBorderRadii;
if (i2 >= fArr2.length) {
break;
}
fArr2[i2] = (this.mRadii[i2] + this.mPadding) - (this.mBorderWidth / 2.0f);
i2++;
}
this.mBorderPath.addRoundRect(this.mTempRect, fArr2, Path.Direction.CW);
}
RectF rectF2 = this.mTempRect;
float f2 = this.mBorderWidth;
rectF2.inset((-f2) / 2.0f, (-f2) / 2.0f);
float f3 = this.mPadding + (this.mScaleDownInsideBorders ? this.mBorderWidth : 0.0f);
this.mTempRect.inset(f3, f3);
if (this.mIsCircle) {
this.mPath.addCircle(this.mTempRect.centerX(), this.mTempRect.centerY(), Math.min(this.mTempRect.width(), this.mTempRect.height()) / 2.0f, Path.Direction.CW);
} else if (this.mScaleDownInsideBorders) {
if (this.mInsideBorderRadii == null) {
this.mInsideBorderRadii = new float[8];
}
while (true) {
fArr = this.mInsideBorderRadii;
if (i >= fArr.length) {
break;
}
fArr[i] = this.mRadii[i] - this.mBorderWidth;
i++;
}
this.mPath.addRoundRect(this.mTempRect, fArr, Path.Direction.CW);
} else {
this.mPath.addRoundRect(this.mTempRect, this.mRadii, Path.Direction.CW);
}
float f4 = -f3;
this.mTempRect.inset(f4, f4);
}
}
Download file