Initial commit

This commit is contained in:
2025-05-13 19:24:51 +02:00
commit a950f49678
10604 changed files with 932663 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
package androidx.vectordrawable.graphics.drawable;
import android.R;
/* loaded from: classes.dex */
class AndroidResources {
static final int[] a = {R.attr.name, R.attr.tint, R.attr.height, R.attr.width, R.attr.alpha, R.attr.autoMirrored, R.attr.tintMode, R.attr.viewportWidth, R.attr.viewportHeight};
static final int[] b = {R.attr.name, R.attr.pivotX, R.attr.pivotY, R.attr.scaleX, R.attr.scaleY, R.attr.rotation, R.attr.translateX, R.attr.translateY};
static final int[] c = {R.attr.name, R.attr.fillColor, R.attr.pathData, R.attr.strokeColor, R.attr.strokeWidth, R.attr.trimPathStart, R.attr.trimPathEnd, R.attr.trimPathOffset, R.attr.strokeLineCap, R.attr.strokeLineJoin, R.attr.strokeMiterLimit, R.attr.strokeAlpha, R.attr.fillAlpha, R.attr.fillType};
static final int[] d = {R.attr.name, R.attr.pathData};
static final int[] e = {R.attr.drawable};
static final int[] f = {R.attr.name, R.attr.animation};
public static final int[] g = {R.attr.interpolator, R.attr.duration, R.attr.startOffset, R.attr.repeatCount, R.attr.repeatMode, R.attr.valueFrom, R.attr.valueTo, R.attr.valueType};
public static final int[] h = {R.attr.ordering};
public static final int[] i = {R.attr.valueFrom, R.attr.valueTo, R.attr.valueType, R.attr.propertyName};
public static final int[] j = {R.attr.value, R.attr.interpolator, R.attr.valueType, R.attr.fraction};
public static final int[] k = {R.attr.propertyName, R.attr.pathData, R.attr.propertyXName, R.attr.propertyYName};
public static final int[] l = {R.attr.controlX1, R.attr.controlY1, R.attr.controlX2, R.attr.controlY2, R.attr.pathData};
}

View File

@@ -0,0 +1,7 @@
package androidx.vectordrawable.graphics.drawable;
import android.graphics.drawable.Animatable;
/* loaded from: classes.dex */
public interface Animatable2Compat extends Animatable {
}

View File

@@ -0,0 +1,478 @@
package androidx.vectordrawable.graphics.drawable;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.drawable.AnimatedVectorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.AttributeSet;
import androidx.collection.ArrayMap;
import androidx.core.content.res.TypedArrayUtils;
import androidx.core.graphics.drawable.DrawableCompat;
import java.io.IOException;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/* loaded from: classes.dex */
public class AnimatedVectorDrawableCompat extends VectorDrawableCommon implements Animatable2Compat {
private AnimatedVectorDrawableCompatState b;
private Context c;
private android.animation.ArgbEvaluator d;
final Drawable.Callback e;
private static class AnimatedVectorDrawableCompatState extends Drawable.ConstantState {
int a;
VectorDrawableCompat b;
AnimatorSet c;
ArrayList<Animator> d;
ArrayMap<Animator, String> e;
public AnimatedVectorDrawableCompatState(Context context, AnimatedVectorDrawableCompatState animatedVectorDrawableCompatState, Drawable.Callback callback, Resources resources) {
if (animatedVectorDrawableCompatState != null) {
this.a = animatedVectorDrawableCompatState.a;
VectorDrawableCompat vectorDrawableCompat = animatedVectorDrawableCompatState.b;
if (vectorDrawableCompat != null) {
Drawable.ConstantState constantState = vectorDrawableCompat.getConstantState();
if (resources != null) {
this.b = (VectorDrawableCompat) constantState.newDrawable(resources);
} else {
this.b = (VectorDrawableCompat) constantState.newDrawable();
}
VectorDrawableCompat vectorDrawableCompat2 = this.b;
vectorDrawableCompat2.mutate();
this.b = vectorDrawableCompat2;
this.b.setCallback(callback);
this.b.setBounds(animatedVectorDrawableCompatState.b.getBounds());
this.b.a(false);
}
ArrayList<Animator> arrayList = animatedVectorDrawableCompatState.d;
if (arrayList != null) {
int size = arrayList.size();
this.d = new ArrayList<>(size);
this.e = new ArrayMap<>(size);
for (int i = 0; i < size; i++) {
Animator animator = animatedVectorDrawableCompatState.d.get(i);
Animator clone = animator.clone();
String str = animatedVectorDrawableCompatState.e.get(animator);
clone.setTarget(this.b.a(str));
this.d.add(clone);
this.e.put(clone, str);
}
a();
}
}
}
public void a() {
if (this.c == null) {
this.c = new AnimatorSet();
}
this.c.playTogether(this.d);
}
@Override // android.graphics.drawable.Drawable.ConstantState
public int getChangingConfigurations() {
return this.a;
}
@Override // android.graphics.drawable.Drawable.ConstantState
public Drawable newDrawable() {
throw new IllegalStateException("No constant state support for SDK < 24.");
}
@Override // android.graphics.drawable.Drawable.ConstantState
public Drawable newDrawable(Resources resources) {
throw new IllegalStateException("No constant state support for SDK < 24.");
}
}
AnimatedVectorDrawableCompat() {
this(null, null, null);
}
public static AnimatedVectorDrawableCompat a(Context context, Resources resources, XmlPullParser xmlPullParser, AttributeSet attributeSet, Resources.Theme theme) throws XmlPullParserException, IOException {
AnimatedVectorDrawableCompat animatedVectorDrawableCompat = new AnimatedVectorDrawableCompat(context);
animatedVectorDrawableCompat.inflate(resources, xmlPullParser, attributeSet, theme);
return animatedVectorDrawableCompat;
}
@Override // androidx.vectordrawable.graphics.drawable.VectorDrawableCommon, android.graphics.drawable.Drawable
public void applyTheme(Resources.Theme theme) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, theme);
}
}
@Override // android.graphics.drawable.Drawable
public boolean canApplyTheme() {
Drawable drawable = this.a;
if (drawable != null) {
return DrawableCompat.a(drawable);
}
return false;
}
@Override // android.graphics.drawable.Drawable
public void draw(Canvas canvas) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.draw(canvas);
return;
}
this.b.b.draw(canvas);
if (this.b.c.isStarted()) {
invalidateSelf();
}
}
@Override // android.graphics.drawable.Drawable
public int getAlpha() {
Drawable drawable = this.a;
return drawable != null ? DrawableCompat.c(drawable) : this.b.b.getAlpha();
}
@Override // android.graphics.drawable.Drawable
public int getChangingConfigurations() {
Drawable drawable = this.a;
return drawable != null ? drawable.getChangingConfigurations() : super.getChangingConfigurations() | this.b.a;
}
@Override // android.graphics.drawable.Drawable
public Drawable.ConstantState getConstantState() {
Drawable drawable = this.a;
if (drawable == null || Build.VERSION.SDK_INT < 24) {
return null;
}
return new AnimatedVectorDrawableDelegateState(drawable.getConstantState());
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicHeight() {
Drawable drawable = this.a;
return drawable != null ? drawable.getIntrinsicHeight() : this.b.b.getIntrinsicHeight();
}
@Override // android.graphics.drawable.Drawable
public int getIntrinsicWidth() {
Drawable drawable = this.a;
return drawable != null ? drawable.getIntrinsicWidth() : this.b.b.getIntrinsicWidth();
}
@Override // android.graphics.drawable.Drawable
public int getOpacity() {
Drawable drawable = this.a;
return drawable != null ? drawable.getOpacity() : this.b.b.getOpacity();
}
@Override // android.graphics.drawable.Drawable
public void inflate(Resources resources, XmlPullParser xmlPullParser, AttributeSet attributeSet, Resources.Theme theme) throws XmlPullParserException, IOException {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, resources, xmlPullParser, attributeSet, theme);
return;
}
int eventType = xmlPullParser.getEventType();
int depth = xmlPullParser.getDepth() + 1;
while (eventType != 1 && (xmlPullParser.getDepth() >= depth || eventType != 3)) {
if (eventType == 2) {
String name = xmlPullParser.getName();
if ("animated-vector".equals(name)) {
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.e);
int resourceId = a.getResourceId(0, 0);
if (resourceId != 0) {
VectorDrawableCompat a2 = VectorDrawableCompat.a(resources, resourceId, theme);
a2.a(false);
a2.setCallback(this.e);
VectorDrawableCompat vectorDrawableCompat = this.b.b;
if (vectorDrawableCompat != null) {
vectorDrawableCompat.setCallback(null);
}
this.b.b = a2;
}
a.recycle();
} else if ("target".equals(name)) {
TypedArray obtainAttributes = resources.obtainAttributes(attributeSet, AndroidResources.f);
String string = obtainAttributes.getString(0);
int resourceId2 = obtainAttributes.getResourceId(1, 0);
if (resourceId2 != 0) {
Context context = this.c;
if (context == null) {
obtainAttributes.recycle();
throw new IllegalStateException("Context can't be null when inflating animators");
}
a(string, AnimatorInflaterCompat.a(context, resourceId2));
}
obtainAttributes.recycle();
} else {
continue;
}
}
eventType = xmlPullParser.next();
}
this.b.a();
}
@Override // android.graphics.drawable.Drawable
public boolean isAutoMirrored() {
Drawable drawable = this.a;
return drawable != null ? DrawableCompat.f(drawable) : this.b.b.isAutoMirrored();
}
@Override // android.graphics.drawable.Animatable
public boolean isRunning() {
Drawable drawable = this.a;
return drawable != null ? ((AnimatedVectorDrawable) drawable).isRunning() : this.b.c.isRunning();
}
@Override // android.graphics.drawable.Drawable
public boolean isStateful() {
Drawable drawable = this.a;
return drawable != null ? drawable.isStateful() : this.b.b.isStateful();
}
@Override // android.graphics.drawable.Drawable
public Drawable mutate() {
Drawable drawable = this.a;
if (drawable != null) {
drawable.mutate();
}
return this;
}
@Override // android.graphics.drawable.Drawable
protected void onBoundsChange(Rect rect) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setBounds(rect);
} else {
this.b.b.setBounds(rect);
}
}
@Override // androidx.vectordrawable.graphics.drawable.VectorDrawableCommon, android.graphics.drawable.Drawable
protected boolean onLevelChange(int i) {
Drawable drawable = this.a;
return drawable != null ? drawable.setLevel(i) : this.b.b.setLevel(i);
}
@Override // android.graphics.drawable.Drawable
protected boolean onStateChange(int[] iArr) {
Drawable drawable = this.a;
return drawable != null ? drawable.setState(iArr) : this.b.b.setState(iArr);
}
@Override // android.graphics.drawable.Drawable
public void setAlpha(int i) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setAlpha(i);
} else {
this.b.b.setAlpha(i);
}
}
@Override // android.graphics.drawable.Drawable
public void setAutoMirrored(boolean z) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, z);
} else {
this.b.b.setAutoMirrored(z);
}
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTint(int i) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.b(drawable, i);
} else {
this.b.b.setTint(i);
}
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintList(ColorStateList colorStateList) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, colorStateList);
} else {
this.b.b.setTintList(colorStateList);
}
}
@Override // android.graphics.drawable.Drawable, androidx.core.graphics.drawable.TintAwareDrawable
public void setTintMode(PorterDuff.Mode mode) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, mode);
} else {
this.b.b.setTintMode(mode);
}
}
@Override // android.graphics.drawable.Drawable
public boolean setVisible(boolean z, boolean z2) {
Drawable drawable = this.a;
if (drawable != null) {
return drawable.setVisible(z, z2);
}
this.b.b.setVisible(z, z2);
return super.setVisible(z, z2);
}
@Override // android.graphics.drawable.Animatable
public void start() {
Drawable drawable = this.a;
if (drawable != null) {
((AnimatedVectorDrawable) drawable).start();
} else {
if (this.b.c.isStarted()) {
return;
}
this.b.c.start();
invalidateSelf();
}
}
@Override // android.graphics.drawable.Animatable
public void stop() {
Drawable drawable = this.a;
if (drawable != null) {
((AnimatedVectorDrawable) drawable).stop();
} else {
this.b.c.end();
}
}
private AnimatedVectorDrawableCompat(Context context) {
this(context, null, null);
}
@Override // android.graphics.drawable.Drawable
public void setColorFilter(ColorFilter colorFilter) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setColorFilter(colorFilter);
} else {
this.b.b.setColorFilter(colorFilter);
}
}
private static class AnimatedVectorDrawableDelegateState extends Drawable.ConstantState {
private final Drawable.ConstantState a;
public AnimatedVectorDrawableDelegateState(Drawable.ConstantState constantState) {
this.a = constantState;
}
@Override // android.graphics.drawable.Drawable.ConstantState
public boolean canApplyTheme() {
return this.a.canApplyTheme();
}
@Override // android.graphics.drawable.Drawable.ConstantState
public int getChangingConfigurations() {
return this.a.getChangingConfigurations();
}
@Override // android.graphics.drawable.Drawable.ConstantState
public Drawable newDrawable() {
AnimatedVectorDrawableCompat animatedVectorDrawableCompat = new AnimatedVectorDrawableCompat();
animatedVectorDrawableCompat.a = this.a.newDrawable();
animatedVectorDrawableCompat.a.setCallback(animatedVectorDrawableCompat.e);
return animatedVectorDrawableCompat;
}
@Override // android.graphics.drawable.Drawable.ConstantState
public Drawable newDrawable(Resources resources) {
AnimatedVectorDrawableCompat animatedVectorDrawableCompat = new AnimatedVectorDrawableCompat();
animatedVectorDrawableCompat.a = this.a.newDrawable(resources);
animatedVectorDrawableCompat.a.setCallback(animatedVectorDrawableCompat.e);
return animatedVectorDrawableCompat;
}
@Override // android.graphics.drawable.Drawable.ConstantState
public Drawable newDrawable(Resources resources, Resources.Theme theme) {
AnimatedVectorDrawableCompat animatedVectorDrawableCompat = new AnimatedVectorDrawableCompat();
animatedVectorDrawableCompat.a = this.a.newDrawable(resources, theme);
animatedVectorDrawableCompat.a.setCallback(animatedVectorDrawableCompat.e);
return animatedVectorDrawableCompat;
}
}
private AnimatedVectorDrawableCompat(Context context, AnimatedVectorDrawableCompatState animatedVectorDrawableCompatState, Resources resources) {
this.d = null;
this.e = new Drawable.Callback() { // from class: androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat.1
@Override // android.graphics.drawable.Drawable.Callback
public void invalidateDrawable(Drawable drawable) {
AnimatedVectorDrawableCompat.this.invalidateSelf();
}
@Override // android.graphics.drawable.Drawable.Callback
public void scheduleDrawable(Drawable drawable, Runnable runnable, long j) {
AnimatedVectorDrawableCompat.this.scheduleSelf(runnable, j);
}
@Override // android.graphics.drawable.Drawable.Callback
public void unscheduleDrawable(Drawable drawable, Runnable runnable) {
AnimatedVectorDrawableCompat.this.unscheduleSelf(runnable);
}
};
this.c = context;
if (animatedVectorDrawableCompatState != null) {
this.b = animatedVectorDrawableCompatState;
} else {
this.b = new AnimatedVectorDrawableCompatState(context, animatedVectorDrawableCompatState, this.e, resources);
}
}
private void a(Animator animator) {
ArrayList<Animator> childAnimations;
if ((animator instanceof AnimatorSet) && (childAnimations = ((AnimatorSet) animator).getChildAnimations()) != null) {
for (int i = 0; i < childAnimations.size(); i++) {
a(childAnimations.get(i));
}
}
if (animator instanceof ObjectAnimator) {
ObjectAnimator objectAnimator = (ObjectAnimator) animator;
String propertyName = objectAnimator.getPropertyName();
if ("fillColor".equals(propertyName) || "strokeColor".equals(propertyName)) {
if (this.d == null) {
this.d = new android.animation.ArgbEvaluator();
}
objectAnimator.setEvaluator(this.d);
}
}
}
private void a(String str, Animator animator) {
animator.setTarget(this.b.b.a(str));
if (Build.VERSION.SDK_INT < 21) {
a(animator);
}
AnimatedVectorDrawableCompatState animatedVectorDrawableCompatState = this.b;
if (animatedVectorDrawableCompatState.d == null) {
animatedVectorDrawableCompatState.d = new ArrayList<>();
this.b.e = new ArrayMap<>();
}
this.b.d.add(animator);
this.b.e.put(animator, str);
}
@Override // android.graphics.drawable.Drawable
public void inflate(Resources resources, XmlPullParser xmlPullParser, AttributeSet attributeSet) throws XmlPullParserException, IOException {
inflate(resources, xmlPullParser, attributeSet, null);
}
}

View File

@@ -0,0 +1,170 @@
package androidx.vectordrawable.graphics.drawable;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.os.Build;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import androidx.interpolator.view.animation.FastOutLinearInInterpolator;
import androidx.interpolator.view.animation.FastOutSlowInInterpolator;
import androidx.interpolator.view.animation.LinearOutSlowInInterpolator;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParserException;
/* loaded from: classes.dex */
public class AnimationUtilsCompat {
public static Interpolator a(Context context, int i) throws Resources.NotFoundException {
if (Build.VERSION.SDK_INT >= 21) {
return AnimationUtils.loadInterpolator(context, i);
}
XmlResourceParser xmlResourceParser = null;
try {
try {
if (i == 17563663) {
return new FastOutLinearInInterpolator();
}
if (i == 17563661) {
return new FastOutSlowInInterpolator();
}
if (i == 17563662) {
return new LinearOutSlowInInterpolator();
}
XmlResourceParser animation = context.getResources().getAnimation(i);
Interpolator a = a(context, context.getResources(), context.getTheme(), animation);
if (animation != null) {
animation.close();
}
return a;
} catch (IOException e) {
Resources.NotFoundException notFoundException = new Resources.NotFoundException("Can't load animation resource ID #0x" + Integer.toHexString(i));
notFoundException.initCause(e);
throw notFoundException;
} catch (XmlPullParserException e2) {
Resources.NotFoundException notFoundException2 = new Resources.NotFoundException("Can't load animation resource ID #0x" + Integer.toHexString(i));
notFoundException2.initCause(e2);
throw notFoundException2;
}
} catch (Throwable th) {
if (0 != 0) {
xmlResourceParser.close();
}
throw th;
}
}
/* JADX WARN: Code restructure failed: missing block: B:7:0x00ca, code lost:
return r4;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct code enable 'Show inconsistent code' option in preferences
*/
private static android.view.animation.Interpolator a(android.content.Context r2, android.content.res.Resources r3, android.content.res.Resources.Theme r4, org.xmlpull.v1.XmlPullParser r5) throws org.xmlpull.v1.XmlPullParserException, java.io.IOException {
/*
int r3 = r5.getDepth()
r4 = 0
L5:
int r0 = r5.next()
r1 = 3
if (r0 != r1) goto L12
int r1 = r5.getDepth()
if (r1 <= r3) goto Lca
L12:
r1 = 1
if (r0 == r1) goto Lca
r1 = 2
if (r0 == r1) goto L19
goto L5
L19:
android.util.AttributeSet r4 = android.util.Xml.asAttributeSet(r5)
java.lang.String r0 = r5.getName()
java.lang.String r1 = "linearInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L2f
android.view.animation.LinearInterpolator r4 = new android.view.animation.LinearInterpolator
r4.<init>()
goto L5
L2f:
java.lang.String r1 = "accelerateInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L3e
android.view.animation.AccelerateInterpolator r0 = new android.view.animation.AccelerateInterpolator
r0.<init>(r2, r4)
L3c:
r4 = r0
goto L5
L3e:
java.lang.String r1 = "decelerateInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L4c
android.view.animation.DecelerateInterpolator r0 = new android.view.animation.DecelerateInterpolator
r0.<init>(r2, r4)
goto L3c
L4c:
java.lang.String r1 = "accelerateDecelerateInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L5a
android.view.animation.AccelerateDecelerateInterpolator r4 = new android.view.animation.AccelerateDecelerateInterpolator
r4.<init>()
goto L5
L5a:
java.lang.String r1 = "cycleInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L68
android.view.animation.CycleInterpolator r0 = new android.view.animation.CycleInterpolator
r0.<init>(r2, r4)
goto L3c
L68:
java.lang.String r1 = "anticipateInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L76
android.view.animation.AnticipateInterpolator r0 = new android.view.animation.AnticipateInterpolator
r0.<init>(r2, r4)
goto L3c
L76:
java.lang.String r1 = "overshootInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L84
android.view.animation.OvershootInterpolator r0 = new android.view.animation.OvershootInterpolator
r0.<init>(r2, r4)
goto L3c
L84:
java.lang.String r1 = "anticipateOvershootInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto L92
android.view.animation.AnticipateOvershootInterpolator r0 = new android.view.animation.AnticipateOvershootInterpolator
r0.<init>(r2, r4)
goto L3c
L92:
java.lang.String r1 = "bounceInterpolator"
boolean r1 = r0.equals(r1)
if (r1 == 0) goto La1
android.view.animation.BounceInterpolator r4 = new android.view.animation.BounceInterpolator
r4.<init>()
goto L5
La1:
java.lang.String r1 = "pathInterpolator"
boolean r0 = r0.equals(r1)
if (r0 == 0) goto Laf
androidx.vectordrawable.graphics.drawable.PathInterpolatorCompat r0 = new androidx.vectordrawable.graphics.drawable.PathInterpolatorCompat
r0.<init>(r2, r4, r5)
goto L3c
Laf:
java.lang.RuntimeException r2 = new java.lang.RuntimeException
java.lang.StringBuilder r3 = new java.lang.StringBuilder
r3.<init>()
java.lang.String r4 = "Unknown interpolator name: "
r3.append(r4)
java.lang.String r4 = r5.getName()
r3.append(r4)
java.lang.String r3 = r3.toString()
r2.<init>(r3)
throw r2
Lca:
return r4
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.vectordrawable.graphics.drawable.AnimationUtilsCompat.a(android.content.Context, android.content.res.Resources, android.content.res.Resources$Theme, org.xmlpull.v1.XmlPullParser):android.view.animation.Interpolator");
}
}

View File

@@ -0,0 +1,505 @@
package androidx.vectordrawable.graphics.drawable;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.Keyframe;
import android.animation.ObjectAnimator;
import android.animation.PropertyValuesHolder;
import android.animation.TypeEvaluator;
import android.animation.ValueAnimator;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.os.Build;
import android.util.AttributeSet;
import android.util.TypedValue;
import android.util.Xml;
import android.view.InflateException;
import androidx.core.content.res.TypedArrayUtils;
import androidx.core.graphics.PathParser;
import java.io.IOException;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/* loaded from: classes.dex */
public class AnimatorInflaterCompat {
private static class PathDataEvaluator implements TypeEvaluator<PathParser.PathDataNode[]> {
private PathParser.PathDataNode[] a;
PathDataEvaluator() {
}
@Override // android.animation.TypeEvaluator
/* renamed from: a, reason: merged with bridge method [inline-methods] */
public PathParser.PathDataNode[] evaluate(float f, PathParser.PathDataNode[] pathDataNodeArr, PathParser.PathDataNode[] pathDataNodeArr2) {
if (!PathParser.a(pathDataNodeArr, pathDataNodeArr2)) {
throw new IllegalArgumentException("Can't interpolate between two incompatible pathData");
}
PathParser.PathDataNode[] pathDataNodeArr3 = this.a;
if (pathDataNodeArr3 == null || !PathParser.a(pathDataNodeArr3, pathDataNodeArr)) {
this.a = PathParser.a(pathDataNodeArr);
}
for (int i = 0; i < pathDataNodeArr.length; i++) {
this.a[i].a(pathDataNodeArr[i], pathDataNodeArr2[i], f);
}
return this.a;
}
}
public static Animator a(Context context, int i) throws Resources.NotFoundException {
return Build.VERSION.SDK_INT >= 24 ? AnimatorInflater.loadAnimator(context, i) : a(context, context.getResources(), context.getTheme(), i);
}
private static boolean a(int i) {
return i >= 28 && i <= 31;
}
public static Animator a(Context context, Resources resources, Resources.Theme theme, int i) throws Resources.NotFoundException {
return a(context, resources, theme, i, 1.0f);
}
public static Animator a(Context context, Resources resources, Resources.Theme theme, int i, float f) throws Resources.NotFoundException {
XmlResourceParser xmlResourceParser = null;
try {
try {
try {
xmlResourceParser = resources.getAnimation(i);
return a(context, resources, theme, xmlResourceParser, f);
} catch (IOException e) {
Resources.NotFoundException notFoundException = new Resources.NotFoundException("Can't load animation resource ID #0x" + Integer.toHexString(i));
notFoundException.initCause(e);
throw notFoundException;
}
} catch (XmlPullParserException e2) {
Resources.NotFoundException notFoundException2 = new Resources.NotFoundException("Can't load animation resource ID #0x" + Integer.toHexString(i));
notFoundException2.initCause(e2);
throw notFoundException2;
}
} finally {
if (xmlResourceParser != null) {
xmlResourceParser.close();
}
}
}
private static PropertyValuesHolder a(TypedArray typedArray, int i, int i2, int i3, String str) {
int i4;
int i5;
int i6;
float f;
PropertyValuesHolder ofFloat;
float f2;
float f3;
PropertyValuesHolder ofObject;
TypedValue peekValue = typedArray.peekValue(i2);
boolean z = peekValue != null;
int i7 = z ? peekValue.type : 0;
TypedValue peekValue2 = typedArray.peekValue(i3);
boolean z2 = peekValue2 != null;
int i8 = z2 ? peekValue2.type : 0;
if (i == 4) {
i = ((z && a(i7)) || (z2 && a(i8))) ? 3 : 0;
}
boolean z3 = i == 0;
PropertyValuesHolder propertyValuesHolder = null;
if (i == 2) {
String string = typedArray.getString(i2);
String string2 = typedArray.getString(i3);
PathParser.PathDataNode[] a = PathParser.a(string);
PathParser.PathDataNode[] a2 = PathParser.a(string2);
if (a == null && a2 == null) {
return null;
}
if (a == null) {
if (a2 != null) {
return PropertyValuesHolder.ofObject(str, new PathDataEvaluator(), a2);
}
return null;
}
PathDataEvaluator pathDataEvaluator = new PathDataEvaluator();
if (a2 != null) {
if (PathParser.a(a, a2)) {
ofObject = PropertyValuesHolder.ofObject(str, pathDataEvaluator, a, a2);
} else {
throw new InflateException(" Can't morph from " + string + " to " + string2);
}
} else {
ofObject = PropertyValuesHolder.ofObject(str, pathDataEvaluator, a);
}
return ofObject;
}
ArgbEvaluator a3 = i == 3 ? ArgbEvaluator.a() : null;
if (z3) {
if (z) {
if (i7 == 5) {
f2 = typedArray.getDimension(i2, 0.0f);
} else {
f2 = typedArray.getFloat(i2, 0.0f);
}
if (z2) {
if (i8 == 5) {
f3 = typedArray.getDimension(i3, 0.0f);
} else {
f3 = typedArray.getFloat(i3, 0.0f);
}
ofFloat = PropertyValuesHolder.ofFloat(str, f2, f3);
} else {
ofFloat = PropertyValuesHolder.ofFloat(str, f2);
}
} else {
if (i8 == 5) {
f = typedArray.getDimension(i3, 0.0f);
} else {
f = typedArray.getFloat(i3, 0.0f);
}
ofFloat = PropertyValuesHolder.ofFloat(str, f);
}
propertyValuesHolder = ofFloat;
} else if (z) {
if (i7 == 5) {
i5 = (int) typedArray.getDimension(i2, 0.0f);
} else if (a(i7)) {
i5 = typedArray.getColor(i2, 0);
} else {
i5 = typedArray.getInt(i2, 0);
}
if (z2) {
if (i8 == 5) {
i6 = (int) typedArray.getDimension(i3, 0.0f);
} else if (a(i8)) {
i6 = typedArray.getColor(i3, 0);
} else {
i6 = typedArray.getInt(i3, 0);
}
propertyValuesHolder = PropertyValuesHolder.ofInt(str, i5, i6);
} else {
propertyValuesHolder = PropertyValuesHolder.ofInt(str, i5);
}
} else if (z2) {
if (i8 == 5) {
i4 = (int) typedArray.getDimension(i3, 0.0f);
} else if (a(i8)) {
i4 = typedArray.getColor(i3, 0);
} else {
i4 = typedArray.getInt(i3, 0);
}
propertyValuesHolder = PropertyValuesHolder.ofInt(str, i4);
}
if (propertyValuesHolder == null || a3 == null) {
return propertyValuesHolder;
}
propertyValuesHolder.setEvaluator(a3);
return propertyValuesHolder;
}
private static void a(ValueAnimator valueAnimator, TypedArray typedArray, TypedArray typedArray2, float f, XmlPullParser xmlPullParser) {
long b = TypedArrayUtils.b(typedArray, xmlPullParser, "duration", 1, 300);
long b2 = TypedArrayUtils.b(typedArray, xmlPullParser, "startOffset", 2, 0);
int b3 = TypedArrayUtils.b(typedArray, xmlPullParser, "valueType", 7, 4);
if (TypedArrayUtils.a(xmlPullParser, "valueFrom") && TypedArrayUtils.a(xmlPullParser, "valueTo")) {
if (b3 == 4) {
b3 = a(typedArray, 5, 6);
}
PropertyValuesHolder a = a(typedArray, b3, 5, 6, "");
if (a != null) {
valueAnimator.setValues(a);
}
}
valueAnimator.setDuration(b);
valueAnimator.setStartDelay(b2);
valueAnimator.setRepeatCount(TypedArrayUtils.b(typedArray, xmlPullParser, "repeatCount", 3, 0));
valueAnimator.setRepeatMode(TypedArrayUtils.b(typedArray, xmlPullParser, "repeatMode", 4, 1));
if (typedArray2 != null) {
a(valueAnimator, typedArray2, b3, f, xmlPullParser);
}
}
private static void a(ValueAnimator valueAnimator, TypedArray typedArray, int i, float f, XmlPullParser xmlPullParser) {
ObjectAnimator objectAnimator = (ObjectAnimator) valueAnimator;
String a = TypedArrayUtils.a(typedArray, xmlPullParser, "pathData", 1);
if (a != null) {
String a2 = TypedArrayUtils.a(typedArray, xmlPullParser, "propertyXName", 2);
String a3 = TypedArrayUtils.a(typedArray, xmlPullParser, "propertyYName", 3);
if (i != 2) {
}
if (a2 == null && a3 == null) {
throw new InflateException(typedArray.getPositionDescription() + " propertyXName or propertyYName is needed for PathData");
}
a(PathParser.b(a), objectAnimator, f * 0.5f, a2, a3);
return;
}
objectAnimator.setPropertyName(TypedArrayUtils.a(typedArray, xmlPullParser, "propertyName", 0));
}
private static void a(Path path, ObjectAnimator objectAnimator, float f, String str, String str2) {
PathMeasure pathMeasure = new PathMeasure(path, false);
ArrayList arrayList = new ArrayList();
arrayList.add(Float.valueOf(0.0f));
float f2 = 0.0f;
do {
f2 += pathMeasure.getLength();
arrayList.add(Float.valueOf(f2));
} while (pathMeasure.nextContour());
PathMeasure pathMeasure2 = new PathMeasure(path, false);
int min = Math.min(100, ((int) (f2 / f)) + 1);
float[] fArr = new float[min];
float[] fArr2 = new float[min];
float[] fArr3 = new float[2];
float f3 = f2 / (min - 1);
int i = 0;
float f4 = 0.0f;
int i2 = 0;
while (true) {
if (i >= min) {
break;
}
pathMeasure2.getPosTan(f4 - ((Float) arrayList.get(i2)).floatValue(), fArr3, null);
fArr[i] = fArr3[0];
fArr2[i] = fArr3[1];
f4 += f3;
int i3 = i2 + 1;
if (i3 < arrayList.size() && f4 > ((Float) arrayList.get(i3)).floatValue()) {
pathMeasure2.nextContour();
i2 = i3;
}
i++;
}
PropertyValuesHolder ofFloat = str != null ? PropertyValuesHolder.ofFloat(str, fArr) : null;
PropertyValuesHolder ofFloat2 = str2 != null ? PropertyValuesHolder.ofFloat(str2, fArr2) : null;
if (ofFloat == null) {
objectAnimator.setValues(ofFloat2);
} else if (ofFloat2 == null) {
objectAnimator.setValues(ofFloat);
} else {
objectAnimator.setValues(ofFloat, ofFloat2);
}
}
private static Animator a(Context context, Resources resources, Resources.Theme theme, XmlPullParser xmlPullParser, float f) throws XmlPullParserException, IOException {
return a(context, resources, theme, xmlPullParser, Xml.asAttributeSet(xmlPullParser), null, 0, f);
}
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARN: Removed duplicated region for block: B:33:0x00ba */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct code enable 'Show inconsistent code' option in preferences
*/
private static android.animation.Animator a(android.content.Context r18, android.content.res.Resources r19, android.content.res.Resources.Theme r20, org.xmlpull.v1.XmlPullParser r21, android.util.AttributeSet r22, android.animation.AnimatorSet r23, int r24, float r25) throws org.xmlpull.v1.XmlPullParserException, java.io.IOException {
/*
Method dump skipped, instructions count: 265
To view this dump change 'Code comments level' option to 'DEBUG'
*/
throw new UnsupportedOperationException("Method not decompiled: androidx.vectordrawable.graphics.drawable.AnimatorInflaterCompat.a(android.content.Context, android.content.res.Resources, android.content.res.Resources$Theme, org.xmlpull.v1.XmlPullParser, android.util.AttributeSet, android.animation.AnimatorSet, int, float):android.animation.Animator");
}
private static PropertyValuesHolder[] a(Context context, Resources resources, Resources.Theme theme, XmlPullParser xmlPullParser, AttributeSet attributeSet) throws XmlPullParserException, IOException {
int i;
PropertyValuesHolder[] propertyValuesHolderArr = null;
ArrayList arrayList = null;
while (true) {
int eventType = xmlPullParser.getEventType();
if (eventType == 3 || eventType == 1) {
break;
}
if (eventType != 2) {
xmlPullParser.next();
} else {
if (xmlPullParser.getName().equals("propertyValuesHolder")) {
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.i);
String a2 = TypedArrayUtils.a(a, xmlPullParser, "propertyName", 3);
int b = TypedArrayUtils.b(a, xmlPullParser, "valueType", 2, 4);
PropertyValuesHolder a3 = a(context, resources, theme, xmlPullParser, a2, b);
if (a3 == null) {
a3 = a(a, b, 0, 1, a2);
}
if (a3 != null) {
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(a3);
}
a.recycle();
}
xmlPullParser.next();
}
}
if (arrayList != null) {
int size = arrayList.size();
propertyValuesHolderArr = new PropertyValuesHolder[size];
for (i = 0; i < size; i++) {
propertyValuesHolderArr[i] = (PropertyValuesHolder) arrayList.get(i);
}
}
return propertyValuesHolderArr;
}
private static int a(Resources resources, Resources.Theme theme, AttributeSet attributeSet, XmlPullParser xmlPullParser) {
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.j);
int i = 0;
TypedValue b = TypedArrayUtils.b(a, xmlPullParser, "value", 0);
if ((b != null) && a(b.type)) {
i = 3;
}
a.recycle();
return i;
}
private static int a(TypedArray typedArray, int i, int i2) {
TypedValue peekValue = typedArray.peekValue(i);
boolean z = peekValue != null;
int i3 = z ? peekValue.type : 0;
TypedValue peekValue2 = typedArray.peekValue(i2);
boolean z2 = peekValue2 != null;
return ((z && a(i3)) || (z2 && a(z2 ? peekValue2.type : 0))) ? 3 : 0;
}
private static PropertyValuesHolder a(Context context, Resources resources, Resources.Theme theme, XmlPullParser xmlPullParser, String str, int i) throws XmlPullParserException, IOException {
int size;
PropertyValuesHolder propertyValuesHolder = null;
int i2 = i;
ArrayList arrayList = null;
while (true) {
int next = xmlPullParser.next();
if (next == 3 || next == 1) {
break;
}
if (xmlPullParser.getName().equals("keyframe")) {
if (i2 == 4) {
i2 = a(resources, theme, Xml.asAttributeSet(xmlPullParser), xmlPullParser);
}
Keyframe a = a(context, resources, theme, Xml.asAttributeSet(xmlPullParser), i2, xmlPullParser);
if (a != null) {
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(a);
}
xmlPullParser.next();
}
}
if (arrayList != null && (size = arrayList.size()) > 0) {
Keyframe keyframe = (Keyframe) arrayList.get(0);
Keyframe keyframe2 = (Keyframe) arrayList.get(size - 1);
float fraction = keyframe2.getFraction();
if (fraction < 1.0f) {
if (fraction < 0.0f) {
keyframe2.setFraction(1.0f);
} else {
arrayList.add(arrayList.size(), a(keyframe2, 1.0f));
size++;
}
}
float fraction2 = keyframe.getFraction();
if (fraction2 != 0.0f) {
if (fraction2 < 0.0f) {
keyframe.setFraction(0.0f);
} else {
arrayList.add(0, a(keyframe, 0.0f));
size++;
}
}
Keyframe[] keyframeArr = new Keyframe[size];
arrayList.toArray(keyframeArr);
for (int i3 = 0; i3 < size; i3++) {
Keyframe keyframe3 = keyframeArr[i3];
if (keyframe3.getFraction() < 0.0f) {
if (i3 == 0) {
keyframe3.setFraction(0.0f);
} else {
int i4 = size - 1;
if (i3 == i4) {
keyframe3.setFraction(1.0f);
} else {
int i5 = i3;
for (int i6 = i3 + 1; i6 < i4 && keyframeArr[i6].getFraction() < 0.0f; i6++) {
i5 = i6;
}
a(keyframeArr, keyframeArr[i5 + 1].getFraction() - keyframeArr[i3 - 1].getFraction(), i3, i5);
}
}
}
}
propertyValuesHolder = PropertyValuesHolder.ofKeyframe(str, keyframeArr);
if (i2 == 3) {
propertyValuesHolder.setEvaluator(ArgbEvaluator.a());
}
}
return propertyValuesHolder;
}
private static Keyframe a(Keyframe keyframe, float f) {
if (keyframe.getType() == Float.TYPE) {
return Keyframe.ofFloat(f);
}
if (keyframe.getType() == Integer.TYPE) {
return Keyframe.ofInt(f);
}
return Keyframe.ofObject(f);
}
private static void a(Keyframe[] keyframeArr, float f, int i, int i2) {
float f2 = f / ((i2 - i) + 2);
while (i <= i2) {
keyframeArr[i].setFraction(keyframeArr[i - 1].getFraction() + f2);
i++;
}
}
private static Keyframe a(Context context, Resources resources, Resources.Theme theme, AttributeSet attributeSet, int i, XmlPullParser xmlPullParser) throws XmlPullParserException, IOException {
Keyframe ofInt;
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.j);
float a2 = TypedArrayUtils.a(a, xmlPullParser, "fraction", 3, -1.0f);
TypedValue b = TypedArrayUtils.b(a, xmlPullParser, "value", 0);
boolean z = b != null;
if (i == 4) {
i = (z && a(b.type)) ? 3 : 0;
}
if (z) {
if (i != 0) {
ofInt = (i == 1 || i == 3) ? Keyframe.ofInt(a2, TypedArrayUtils.b(a, xmlPullParser, "value", 0, 0)) : null;
} else {
ofInt = Keyframe.ofFloat(a2, TypedArrayUtils.a(a, xmlPullParser, "value", 0, 0.0f));
}
} else if (i == 0) {
ofInt = Keyframe.ofFloat(a2);
} else {
ofInt = Keyframe.ofInt(a2);
}
int c = TypedArrayUtils.c(a, xmlPullParser, "interpolator", 1, 0);
if (c > 0) {
ofInt.setInterpolator(AnimationUtilsCompat.a(context, c));
}
a.recycle();
return ofInt;
}
private static ObjectAnimator a(Context context, Resources resources, Resources.Theme theme, AttributeSet attributeSet, float f, XmlPullParser xmlPullParser) throws Resources.NotFoundException {
ObjectAnimator objectAnimator = new ObjectAnimator();
a(context, resources, theme, attributeSet, objectAnimator, f, xmlPullParser);
return objectAnimator;
}
private static ValueAnimator a(Context context, Resources resources, Resources.Theme theme, AttributeSet attributeSet, ValueAnimator valueAnimator, float f, XmlPullParser xmlPullParser) throws Resources.NotFoundException {
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.g);
TypedArray a2 = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.k);
if (valueAnimator == null) {
valueAnimator = new ValueAnimator();
}
a(valueAnimator, a, a2, f, xmlPullParser);
int c = TypedArrayUtils.c(a, xmlPullParser, "interpolator", 0, 0);
if (c > 0) {
valueAnimator.setInterpolator(AnimationUtilsCompat.a(context, c));
}
a.recycle();
if (a2 != null) {
a2.recycle();
}
return valueAnimator;
}
}

View File

@@ -0,0 +1,27 @@
package androidx.vectordrawable.graphics.drawable;
import android.animation.TypeEvaluator;
/* loaded from: classes.dex */
public class ArgbEvaluator implements TypeEvaluator {
private static final ArgbEvaluator a = new ArgbEvaluator();
public static ArgbEvaluator a() {
return a;
}
@Override // android.animation.TypeEvaluator
public Object evaluate(float f, Object obj, Object obj2) {
int intValue = ((Integer) obj).intValue();
float f2 = ((intValue >> 24) & 255) / 255.0f;
int intValue2 = ((Integer) obj2).intValue();
float pow = (float) Math.pow(((intValue >> 16) & 255) / 255.0f, 2.2d);
float pow2 = (float) Math.pow(((intValue >> 8) & 255) / 255.0f, 2.2d);
float pow3 = (float) Math.pow((intValue & 255) / 255.0f, 2.2d);
float pow4 = (float) Math.pow(((intValue2 >> 16) & 255) / 255.0f, 2.2d);
float f3 = f2 + (((((intValue2 >> 24) & 255) / 255.0f) - f2) * f);
float pow5 = pow2 + ((((float) Math.pow(((intValue2 >> 8) & 255) / 255.0f, 2.2d)) - pow2) * f);
float pow6 = pow3 + (f * (((float) Math.pow((intValue2 & 255) / 255.0f, 2.2d)) - pow3));
return Integer.valueOf((Math.round(((float) Math.pow(pow + ((pow4 - pow) * f), 0.45454545454545453d)) * 255.0f) << 16) | (Math.round(f3 * 255.0f) << 24) | (Math.round(((float) Math.pow(pow5, 0.45454545454545453d)) * 255.0f) << 8) | Math.round(((float) Math.pow(pow6, 0.45454545454545453d)) * 255.0f));
}
}

View File

@@ -0,0 +1,154 @@
package androidx.vectordrawable.graphics.drawable;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Path;
import android.graphics.PathMeasure;
import android.util.AttributeSet;
import android.view.InflateException;
import android.view.animation.Interpolator;
import androidx.core.content.res.TypedArrayUtils;
import androidx.core.graphics.PathParser;
import org.xmlpull.v1.XmlPullParser;
/* loaded from: classes.dex */
public class PathInterpolatorCompat implements Interpolator {
private float[] a;
private float[] b;
public PathInterpolatorCompat(Context context, AttributeSet attributeSet, XmlPullParser xmlPullParser) {
this(context.getResources(), context.getTheme(), attributeSet, xmlPullParser);
}
private void a(TypedArray typedArray, XmlPullParser xmlPullParser) {
if (TypedArrayUtils.a(xmlPullParser, "pathData")) {
String a = TypedArrayUtils.a(typedArray, xmlPullParser, "pathData", 4);
Path b = PathParser.b(a);
if (b != null) {
a(b);
return;
}
throw new InflateException("The path is null, which is created from " + a);
}
if (!TypedArrayUtils.a(xmlPullParser, "controlX1")) {
throw new InflateException("pathInterpolator requires the controlX1 attribute");
}
if (!TypedArrayUtils.a(xmlPullParser, "controlY1")) {
throw new InflateException("pathInterpolator requires the controlY1 attribute");
}
float a2 = TypedArrayUtils.a(typedArray, xmlPullParser, "controlX1", 0, 0.0f);
float a3 = TypedArrayUtils.a(typedArray, xmlPullParser, "controlY1", 1, 0.0f);
boolean a4 = TypedArrayUtils.a(xmlPullParser, "controlX2");
if (a4 != TypedArrayUtils.a(xmlPullParser, "controlY2")) {
throw new InflateException("pathInterpolator requires both controlX2 and controlY2 for cubic Beziers.");
}
if (a4) {
a(a2, a3, TypedArrayUtils.a(typedArray, xmlPullParser, "controlX2", 2, 0.0f), TypedArrayUtils.a(typedArray, xmlPullParser, "controlY2", 3, 0.0f));
} else {
a(a2, a3);
}
}
@Override // android.animation.TimeInterpolator
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.a.length - 1;
while (length - i > 1) {
int i2 = (i + length) / 2;
if (f < this.a[i2]) {
length = i2;
} else {
i = i2;
}
}
float[] fArr = this.a;
float f2 = fArr[length] - fArr[i];
if (f2 == 0.0f) {
return this.b[i];
}
float f3 = (f - fArr[i]) / f2;
float[] fArr2 = this.b;
float f4 = fArr2[i];
return f4 + (f3 * (fArr2[length] - f4));
}
public PathInterpolatorCompat(Resources resources, Resources.Theme theme, AttributeSet attributeSet, XmlPullParser xmlPullParser) {
TypedArray a = TypedArrayUtils.a(resources, theme, attributeSet, AndroidResources.l);
a(a, xmlPullParser);
a.recycle();
}
private void a(float f, float f2) {
Path path = new Path();
path.moveTo(0.0f, 0.0f);
path.quadTo(f, f2, 1.0f, 1.0f);
a(path);
}
private void a(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);
a(path);
}
private void a(Path path) {
int i = 0;
PathMeasure pathMeasure = new PathMeasure(path, false);
float length = pathMeasure.getLength();
int min = Math.min(3000, ((int) (length / 0.002f)) + 1);
if (min > 0) {
this.a = new float[min];
this.b = new float[min];
float[] fArr = new float[2];
for (int i2 = 0; i2 < min; i2++) {
pathMeasure.getPosTan((i2 * length) / (min - 1), fArr, null);
this.a[i2] = fArr[0];
this.b[i2] = fArr[1];
}
if (Math.abs(this.a[0]) <= 1.0E-5d && Math.abs(this.b[0]) <= 1.0E-5d) {
int i3 = min - 1;
if (Math.abs(this.a[i3] - 1.0f) <= 1.0E-5d && Math.abs(this.b[i3] - 1.0f) <= 1.0E-5d) {
int i4 = 0;
float f = 0.0f;
while (i < min) {
float[] fArr2 = this.a;
int i5 = i4 + 1;
float f2 = fArr2[i4];
if (f2 >= f) {
fArr2[i] = f2;
i++;
f = f2;
i4 = i5;
} else {
throw new IllegalArgumentException("The Path cannot loop back on itself, x :" + f2);
}
}
if (pathMeasure.nextContour()) {
throw new IllegalArgumentException("The Path should be continuous, can't have 2+ contours");
}
return;
}
}
StringBuilder sb = new StringBuilder();
sb.append("The Path must start at (0,0) and end at (1,1) start: ");
sb.append(this.a[0]);
sb.append(",");
sb.append(this.b[0]);
sb.append(" end:");
int i6 = min - 1;
sb.append(this.a[i6]);
sb.append(",");
sb.append(this.b[i6]);
throw new IllegalArgumentException(sb.toString());
}
throw new IllegalArgumentException("The Path has a invalid length " + length);
}
}

View File

@@ -0,0 +1,145 @@
package androidx.vectordrawable.graphics.drawable;
import android.content.res.Resources;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.Drawable;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.graphics.drawable.TintAwareDrawable;
/* loaded from: classes.dex */
abstract class VectorDrawableCommon extends Drawable implements TintAwareDrawable {
Drawable a;
VectorDrawableCommon() {
}
@Override // android.graphics.drawable.Drawable
public void applyTheme(Resources.Theme theme) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, theme);
}
}
@Override // android.graphics.drawable.Drawable
public void clearColorFilter() {
Drawable drawable = this.a;
if (drawable != null) {
drawable.clearColorFilter();
} else {
super.clearColorFilter();
}
}
@Override // android.graphics.drawable.Drawable
public ColorFilter getColorFilter() {
Drawable drawable = this.a;
if (drawable != null) {
return DrawableCompat.d(drawable);
}
return null;
}
@Override // android.graphics.drawable.Drawable
public Drawable getCurrent() {
Drawable drawable = this.a;
return drawable != null ? drawable.getCurrent() : super.getCurrent();
}
@Override // android.graphics.drawable.Drawable
public int getMinimumHeight() {
Drawable drawable = this.a;
return drawable != null ? drawable.getMinimumHeight() : super.getMinimumHeight();
}
@Override // android.graphics.drawable.Drawable
public int getMinimumWidth() {
Drawable drawable = this.a;
return drawable != null ? drawable.getMinimumWidth() : super.getMinimumWidth();
}
@Override // android.graphics.drawable.Drawable
public boolean getPadding(Rect rect) {
Drawable drawable = this.a;
return drawable != null ? drawable.getPadding(rect) : super.getPadding(rect);
}
@Override // android.graphics.drawable.Drawable
public int[] getState() {
Drawable drawable = this.a;
return drawable != null ? drawable.getState() : super.getState();
}
@Override // android.graphics.drawable.Drawable
public Region getTransparentRegion() {
Drawable drawable = this.a;
return drawable != null ? drawable.getTransparentRegion() : super.getTransparentRegion();
}
@Override // android.graphics.drawable.Drawable
public void jumpToCurrentState() {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.g(drawable);
}
}
@Override // android.graphics.drawable.Drawable
protected boolean onLevelChange(int i) {
Drawable drawable = this.a;
return drawable != null ? drawable.setLevel(i) : super.onLevelChange(i);
}
@Override // android.graphics.drawable.Drawable
public void setChangingConfigurations(int i) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setChangingConfigurations(i);
} else {
super.setChangingConfigurations(i);
}
}
@Override // android.graphics.drawable.Drawable
public void setColorFilter(int i, PorterDuff.Mode mode) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setColorFilter(i, mode);
} else {
super.setColorFilter(i, mode);
}
}
@Override // android.graphics.drawable.Drawable
public void setFilterBitmap(boolean z) {
Drawable drawable = this.a;
if (drawable != null) {
drawable.setFilterBitmap(z);
}
}
@Override // android.graphics.drawable.Drawable
public void setHotspot(float f, float f2) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, f, f2);
}
}
@Override // android.graphics.drawable.Drawable
public void setHotspotBounds(int i, int i2, int i3, int i4) {
Drawable drawable = this.a;
if (drawable != null) {
DrawableCompat.a(drawable, i, i2, i3, i4);
}
}
@Override // android.graphics.drawable.Drawable
public boolean setState(int[] iArr) {
Drawable drawable = this.a;
return drawable != null ? drawable.setState(iArr) : super.setState(iArr);
}
}

File diff suppressed because it is too large Load Diff