package com.airbnb.lottie.parser; import android.graphics.PointF; import android.view.animation.Interpolator; import android.view.animation.LinearInterpolator; import androidx.collection.SparseArrayCompat; import androidx.core.view.animation.PathInterpolatorCompat; import androidx.media3.exoplayer.upstream.CmcdHeadersFactory; import com.airbnb.lottie.L; import com.airbnb.lottie.LottieComposition; import com.airbnb.lottie.parser.moshi.JsonReader; import com.airbnb.lottie.utils.MiscUtils; import com.airbnb.lottie.utils.Utils; import com.airbnb.lottie.value.Keyframe; import io.sentry.protocol.ViewHierarchyNode; import java.io.IOException; import java.lang.ref.WeakReference; /* loaded from: classes2.dex */ class KeyframeParser { private static final float MAX_CP_VALUE = 100.0f; private static SparseArrayCompat> pathInterpolatorCache; private static final Interpolator LINEAR_INTERPOLATOR = new LinearInterpolator(); static JsonReader.Options NAMES = JsonReader.Options.of("t", CmcdHeadersFactory.STREAMING_FORMAT_SS, "e", "o", CmcdHeadersFactory.OBJECT_TYPE_INIT_SEGMENT, CmcdHeadersFactory.STREAMING_FORMAT_HLS, "to", "ti"); static JsonReader.Options INTERPOLATOR_NAMES = JsonReader.Options.of(ViewHierarchyNode.JsonKeys.X, ViewHierarchyNode.JsonKeys.Y); KeyframeParser() { } private static SparseArrayCompat> pathInterpolatorCache() { if (pathInterpolatorCache == null) { pathInterpolatorCache = new SparseArrayCompat<>(); } return pathInterpolatorCache; } private static WeakReference getInterpolator(int i) { WeakReference weakReference; synchronized (KeyframeParser.class) { weakReference = pathInterpolatorCache().get(i); } return weakReference; } private static void putInterpolator(int i, WeakReference weakReference) { synchronized (KeyframeParser.class) { pathInterpolatorCache.put(i, weakReference); } } /* JADX INFO: Access modifiers changed from: package-private */ public static Keyframe parse(JsonReader jsonReader, LottieComposition lottieComposition, float f, ValueParser valueParser, boolean z, boolean z2) throws IOException { if (z && z2) { return parseMultiDimensionalKeyframe(lottieComposition, jsonReader, f, valueParser); } if (z) { return parseKeyframe(lottieComposition, jsonReader, f, valueParser); } return parseStaticValue(jsonReader, f, valueParser); } private static Keyframe parseKeyframe(LottieComposition lottieComposition, JsonReader jsonReader, float f, ValueParser valueParser) throws IOException { Interpolator interpolatorFor; T t; jsonReader.beginObject(); PointF pointF = null; T t2 = null; T t3 = null; PointF pointF2 = null; PointF pointF3 = null; float f2 = 0.0f; boolean z = false; PointF pointF4 = null; while (jsonReader.hasNext()) { switch (jsonReader.selectName(NAMES)) { case 0: f2 = (float) jsonReader.nextDouble(); break; case 1: t3 = valueParser.parse(jsonReader, f); break; case 2: t2 = valueParser.parse(jsonReader, f); break; case 3: pointF = JsonUtils.jsonToPoint(jsonReader, 1.0f); break; case 4: pointF4 = JsonUtils.jsonToPoint(jsonReader, 1.0f); break; case 5: if (jsonReader.nextInt() != 1) { z = false; break; } else { z = true; break; } case 6: pointF2 = JsonUtils.jsonToPoint(jsonReader, f); break; case 7: pointF3 = JsonUtils.jsonToPoint(jsonReader, f); break; default: jsonReader.skipValue(); break; } } jsonReader.endObject(); if (z) { interpolatorFor = LINEAR_INTERPOLATOR; t = t3; } else { interpolatorFor = (pointF == null || pointF4 == null) ? LINEAR_INTERPOLATOR : interpolatorFor(pointF, pointF4); t = t2; } Keyframe keyframe = new Keyframe<>(lottieComposition, t3, t, interpolatorFor, f2, null); keyframe.pathCp1 = pointF2; keyframe.pathCp2 = pointF3; return keyframe; } /* JADX WARN: Failed to find 'out' block for switch in B:5:0x0023. Please report as an issue. */ private static Keyframe parseMultiDimensionalKeyframe(LottieComposition lottieComposition, JsonReader jsonReader, float f, ValueParser valueParser) throws IOException { Interpolator interpolator; Interpolator interpolatorFor; Interpolator interpolatorFor2; T t; PointF pointF; Keyframe keyframe; PointF pointF2; float f2; PointF pointF3; float f3; jsonReader.beginObject(); PointF pointF4 = null; boolean z = false; PointF pointF5 = null; PointF pointF6 = null; PointF pointF7 = null; T t2 = null; PointF pointF8 = null; PointF pointF9 = null; PointF pointF10 = null; float f4 = 0.0f; PointF pointF11 = null; T t3 = null; while (jsonReader.hasNext()) { switch (jsonReader.selectName(NAMES)) { case 0: pointF2 = pointF4; f4 = (float) jsonReader.nextDouble(); pointF4 = pointF2; break; case 1: pointF2 = pointF4; t2 = valueParser.parse(jsonReader, f); pointF4 = pointF2; break; case 2: pointF2 = pointF4; t3 = valueParser.parse(jsonReader, f); pointF4 = pointF2; break; case 3: pointF2 = pointF4; f2 = f4; PointF pointF12 = pointF11; if (jsonReader.peek() == JsonReader.Token.BEGIN_OBJECT) { jsonReader.beginObject(); float f5 = 0.0f; float f6 = 0.0f; float f7 = 0.0f; float f8 = 0.0f; while (jsonReader.hasNext()) { int selectName = jsonReader.selectName(INTERPOLATOR_NAMES); if (selectName != 0) { if (selectName == 1) { if (jsonReader.peek() == JsonReader.Token.NUMBER) { f8 = (float) jsonReader.nextDouble(); f6 = f8; } else { jsonReader.beginArray(); f6 = (float) jsonReader.nextDouble(); f8 = jsonReader.peek() == JsonReader.Token.NUMBER ? (float) jsonReader.nextDouble() : f6; jsonReader.endArray(); } } else { jsonReader.skipValue(); } } else if (jsonReader.peek() == JsonReader.Token.NUMBER) { f7 = (float) jsonReader.nextDouble(); f5 = f7; } else { jsonReader.beginArray(); f5 = (float) jsonReader.nextDouble(); f7 = jsonReader.peek() == JsonReader.Token.NUMBER ? (float) jsonReader.nextDouble() : f5; jsonReader.endArray(); } } PointF pointF13 = new PointF(f5, f6); PointF pointF14 = new PointF(f7, f8); jsonReader.endObject(); pointF8 = pointF14; pointF7 = pointF13; pointF11 = pointF12; f4 = f2; pointF4 = pointF2; break; } else { pointF5 = JsonUtils.jsonToPoint(jsonReader, f); f4 = f2; pointF11 = pointF12; pointF4 = pointF2; } case 4: if (jsonReader.peek() == JsonReader.Token.BEGIN_OBJECT) { jsonReader.beginObject(); float f9 = 0.0f; float f10 = 0.0f; float f11 = 0.0f; float f12 = 0.0f; while (jsonReader.hasNext()) { PointF pointF15 = pointF11; int selectName2 = jsonReader.selectName(INTERPOLATOR_NAMES); if (selectName2 != 0) { pointF3 = pointF4; if (selectName2 == 1) { if (jsonReader.peek() == JsonReader.Token.NUMBER) { f12 = (float) jsonReader.nextDouble(); f4 = f4; f10 = f12; } else { f3 = f4; jsonReader.beginArray(); f10 = (float) jsonReader.nextDouble(); f12 = jsonReader.peek() == JsonReader.Token.NUMBER ? (float) jsonReader.nextDouble() : f10; jsonReader.endArray(); f4 = f3; } } else { jsonReader.skipValue(); } } else { pointF3 = pointF4; f3 = f4; if (jsonReader.peek() == JsonReader.Token.NUMBER) { f11 = (float) jsonReader.nextDouble(); f4 = f3; f9 = f11; } else { jsonReader.beginArray(); f9 = (float) jsonReader.nextDouble(); f11 = jsonReader.peek() == JsonReader.Token.NUMBER ? (float) jsonReader.nextDouble() : f9; jsonReader.endArray(); f4 = f3; } } pointF11 = pointF15; pointF4 = pointF3; } pointF2 = pointF4; f2 = f4; PointF pointF16 = new PointF(f9, f10); PointF pointF17 = new PointF(f11, f12); jsonReader.endObject(); pointF10 = pointF17; pointF9 = pointF16; f4 = f2; pointF4 = pointF2; break; } else { pointF2 = pointF4; pointF6 = JsonUtils.jsonToPoint(jsonReader, f); pointF4 = pointF2; } case 5: if (jsonReader.nextInt() != 1) { z = false; break; } else { z = true; break; } case 6: pointF11 = JsonUtils.jsonToPoint(jsonReader, f); break; case 7: pointF4 = JsonUtils.jsonToPoint(jsonReader, f); break; default: pointF2 = pointF4; jsonReader.skipValue(); pointF4 = pointF2; break; } } PointF pointF18 = pointF4; float f13 = f4; PointF pointF19 = pointF11; jsonReader.endObject(); if (z) { interpolator = LINEAR_INTERPOLATOR; t = t2; } else { if (pointF5 != null && pointF6 != null) { interpolator = interpolatorFor(pointF5, pointF6); } else { if (pointF7 != null && pointF8 != null && pointF9 != null && pointF10 != null) { interpolatorFor = interpolatorFor(pointF7, pointF9); interpolatorFor2 = interpolatorFor(pointF8, pointF10); t = t3; interpolator = null; if (interpolatorFor == null && interpolatorFor2 != null) { pointF = pointF19; keyframe = new Keyframe<>(lottieComposition, t2, t, interpolatorFor, interpolatorFor2, f13, null); } else { pointF = pointF19; keyframe = new Keyframe<>(lottieComposition, t2, t, interpolator, f13, null); } keyframe.pathCp1 = pointF; keyframe.pathCp2 = pointF18; return keyframe; } interpolator = LINEAR_INTERPOLATOR; } t = t3; } interpolatorFor = null; interpolatorFor2 = null; if (interpolatorFor == null) { } pointF = pointF19; keyframe = new Keyframe<>(lottieComposition, t2, t, interpolator, f13, null); keyframe.pathCp1 = pointF; keyframe.pathCp2 = pointF18; return keyframe; } private static Interpolator interpolatorFor(PointF pointF, PointF pointF2) { Interpolator linearInterpolator; pointF.x = MiscUtils.clamp(pointF.x, -1.0f, 1.0f); pointF.y = MiscUtils.clamp(pointF.y, -100.0f, 100.0f); pointF2.x = MiscUtils.clamp(pointF2.x, -1.0f, 1.0f); pointF2.y = MiscUtils.clamp(pointF2.y, -100.0f, 100.0f); int hashFor = Utils.hashFor(pointF.x, pointF.y, pointF2.x, pointF2.y); WeakReference interpolator = L.getDisablePathInterpolatorCache() ? null : getInterpolator(hashFor); Interpolator interpolator2 = interpolator != null ? interpolator.get() : null; if (interpolator == null || interpolator2 == null) { try { linearInterpolator = PathInterpolatorCompat.create(pointF.x, pointF.y, pointF2.x, pointF2.y); } catch (IllegalArgumentException e) { if ("The Path cannot loop back on itself.".equals(e.getMessage())) { linearInterpolator = PathInterpolatorCompat.create(Math.min(pointF.x, 1.0f), pointF.y, Math.max(pointF2.x, 0.0f), pointF2.y); } else { linearInterpolator = new LinearInterpolator(); } } interpolator2 = linearInterpolator; if (!L.getDisablePathInterpolatorCache()) { try { putInterpolator(hashFor, new WeakReference(interpolator2)); } catch (ArrayIndexOutOfBoundsException unused) { } } } return interpolator2; } private static Keyframe parseStaticValue(JsonReader jsonReader, float f, ValueParser valueParser) throws IOException { return new Keyframe<>(valueParser.parse(jsonReader, f)); } }