CrackMe.apk
Download file
package androidx.core.view.animation;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.view.animation.Interpolator;
class PathInterpolatorApi14 implements Interpolator {
private static final float PRECISION = 0.002f;
private final float[] mX;
private final float[] mY;
PathInterpolatorApi14(Path path) {
PathMeasure pathMeasure = new PathMeasure(path, false);
float length = pathMeasure.getLength();
int i = ((int) (length / PRECISION)) + 1;
this.mX = new float[i];
this.mY = new float[i];
float[] fArr = new float[2];
for (int i2 = 0; i2 < i; i2++) {
pathMeasure.getPosTan((((float) i2) * length) / ((float) (i - 1)), fArr, (float[]) null);
this.mX[i2] = fArr[0];
this.mY[i2] = fArr[1];
}
}
PathInterpolatorApi14(float f, float f2) {
this(createQuad(f, f2));
}
PathInterpolatorApi14(float f, float f2, float f3, float f4) {
this(createCubic(f, f2, f3, f4));
}
public float getInterpolation(float f) {
if (f <= 0.0f) {
return 0.0f;
}
if (f >= 1.0f) {
return 1.0f;
}
int i = 0;
int length = this.mX.length - 1;
while (length - i > 1) {
int i2 = (i + length) / 2;
if (f < this.mX[i2]) {
length = i2;
} else {
i = i2;
}
}
float[] fArr = this.mX;
float f2 = fArr[length] - fArr[i];
if (f2 == 0.0f) {
return this.mY[i];
}
float[] fArr2 = this.mY;
float f3 = fArr2[i];
return f3 + (((f - fArr[i]) / f2) * (fArr2[length] - f3));
}
private static Path createQuad(float f, float f2) {
Path path = new Path();
path.moveTo(0.0f, 0.0f);
path.quadTo(f, f2, 1.0f, 1.0f);
return path;
}
private static Path createCubic(float f, float f2, float f3, float f4) {
Path path = new Path();
path.moveTo(0.0f, 0.0f);
path.cubicTo(f, f2, f3, f4, 1.0f, 1.0f);
return path;
}
}
Download file