package com.airbnb.lottie.animation.content; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.PointF; import android.graphics.RadialGradient; import android.graphics.RectF; import android.graphics.Shader; import com.airbnb.lottie.LottieDrawable; import com.airbnb.lottie.LottieProperty; import com.airbnb.lottie.animation.keyframe.BaseKeyframeAnimation; import com.airbnb.lottie.animation.keyframe.ValueCallbackKeyframeAnimation; import com.airbnb.lottie.model.content.GradientColor; import com.airbnb.lottie.model.content.GradientStroke; import com.airbnb.lottie.model.content.GradientType; import com.airbnb.lottie.model.layer.BaseLayer; import com.airbnb.lottie.value.LottieValueCallback; import o.C0667Ltg; /* loaded from: classes.dex */ public class GradientStrokeContent extends BaseStrokeContent { private static final int CACHE_STEPS_MS = 32; private final RectF boundsRect; private final int cacheSteps; private final BaseKeyframeAnimation colorAnimation; private ValueCallbackKeyframeAnimation colorCallbackAnimation; private final BaseKeyframeAnimation endPointAnimation; private final boolean hidden; private final C0667Ltg linearGradientCache; private final String name; private final C0667Ltg radialGradientCache; private final BaseKeyframeAnimation startPointAnimation; private final GradientType type; public GradientStrokeContent(LottieDrawable lottieDrawable, BaseLayer baseLayer, GradientStroke gradientStroke) { super(lottieDrawable, baseLayer, gradientStroke.getCapType().toPaintCap(), gradientStroke.getJoinType().toPaintJoin(), gradientStroke.getMiterLimit(), gradientStroke.getOpacity(), gradientStroke.getWidth(), gradientStroke.getLineDashPattern(), gradientStroke.getDashOffset()); this.linearGradientCache = new C0667Ltg<>(); this.radialGradientCache = new C0667Ltg<>(); this.boundsRect = new RectF(); this.name = gradientStroke.getName(); this.type = gradientStroke.getGradientType(); this.hidden = gradientStroke.isHidden(); this.cacheSteps = (int) (lottieDrawable.getComposition().getDuration() / 32.0f); BaseKeyframeAnimation createAnimation = gradientStroke.getGradientColor().createAnimation(); this.colorAnimation = createAnimation; createAnimation.addUpdateListener(this); baseLayer.addAnimation(createAnimation); BaseKeyframeAnimation createAnimation2 = gradientStroke.getStartPoint().createAnimation(); this.startPointAnimation = createAnimation2; createAnimation2.addUpdateListener(this); baseLayer.addAnimation(createAnimation2); BaseKeyframeAnimation createAnimation3 = gradientStroke.getEndPoint().createAnimation(); this.endPointAnimation = createAnimation3; createAnimation3.addUpdateListener(this); baseLayer.addAnimation(createAnimation3); } @Override // com.airbnb.lottie.animation.content.BaseStrokeContent, com.airbnb.lottie.animation.content.DrawingContent public void draw(Canvas canvas, Matrix matrix, int i) { Shader radialGradient; if (this.hidden) { return; } getBounds(this.boundsRect, matrix, false); if (this.type == GradientType.LINEAR) { radialGradient = getLinearGradient(); } else { radialGradient = getRadialGradient(); } radialGradient.setLocalMatrix(matrix); this.paint.setShader(radialGradient); super.draw(canvas, matrix, i); } private LinearGradient getLinearGradient() { long gradientHash = getGradientHash(); LinearGradient c = this.linearGradientCache.c(gradientHash); if (c != null) { return c; } PointF value = this.startPointAnimation.getValue(); PointF value2 = this.endPointAnimation.getValue(); GradientColor value3 = this.colorAnimation.getValue(); LinearGradient linearGradient = new LinearGradient(value.x, value.y, value2.x, value2.y, applyDynamicColorsIfNeeded(value3.getColors()), value3.getPositions(), Shader.TileMode.CLAMP); this.linearGradientCache.c(gradientHash, linearGradient); return linearGradient; } private RadialGradient getRadialGradient() { long gradientHash = getGradientHash(); RadialGradient c = this.radialGradientCache.c(gradientHash); if (c != null) { return c; } PointF value = this.startPointAnimation.getValue(); PointF value2 = this.endPointAnimation.getValue(); GradientColor value3 = this.colorAnimation.getValue(); int[] applyDynamicColorsIfNeeded = applyDynamicColorsIfNeeded(value3.getColors()); float[] positions = value3.getPositions(); RadialGradient radialGradient = new RadialGradient(value.x, value.y, (float) Math.hypot(value2.x - r7, value2.y - r8), applyDynamicColorsIfNeeded, positions, Shader.TileMode.CLAMP); this.radialGradientCache.c(gradientHash, radialGradient); return radialGradient; } private int getGradientHash() { int round = Math.round(this.startPointAnimation.getProgress() * this.cacheSteps); int round2 = Math.round(this.endPointAnimation.getProgress() * this.cacheSteps); int round3 = Math.round(this.colorAnimation.getProgress() * this.cacheSteps); int i = round != 0 ? round * 527 : 17; if (round2 != 0) { i = i * 31 * round2; } return round3 != 0 ? i * 31 * round3 : i; } /* JADX WARN: Multi-variable type inference failed */ private int[] applyDynamicColorsIfNeeded(int[] iArr) { ValueCallbackKeyframeAnimation valueCallbackKeyframeAnimation = this.colorCallbackAnimation; if (valueCallbackKeyframeAnimation != null) { Integer[] numArr = (Integer[]) valueCallbackKeyframeAnimation.getValue(); int i = 0; if (iArr.length == numArr.length) { while (i < iArr.length) { iArr[i] = numArr[i].intValue(); i++; } } else { iArr = new int[numArr.length]; while (i < numArr.length) { iArr[i] = numArr[i].intValue(); i++; } } } return iArr; } /* JADX WARN: Multi-variable type inference failed */ @Override // com.airbnb.lottie.animation.content.BaseStrokeContent, com.airbnb.lottie.model.KeyPathElement public void addValueCallback(T t, LottieValueCallback lottieValueCallback) { super.addValueCallback(t, lottieValueCallback); if (t == LottieProperty.GRADIENT_COLOR) { if (this.colorCallbackAnimation != null) { this.layer.removeAnimation(this.colorCallbackAnimation); } if (lottieValueCallback == null) { this.colorCallbackAnimation = null; return; } ValueCallbackKeyframeAnimation valueCallbackKeyframeAnimation = new ValueCallbackKeyframeAnimation(lottieValueCallback); this.colorCallbackAnimation = valueCallbackKeyframeAnimation; valueCallbackKeyframeAnimation.addUpdateListener(this); this.layer.addAnimation(this.colorCallbackAnimation); } } @Override // com.airbnb.lottie.animation.content.Content public String getName() { return this.name; } }