q.smali
.class public final Lcom/airbnb/lottie/parser/q;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final a:Landroid/view/animation/LinearInterpolator;
.field public static b:Landroidx/collection/h;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/collection/h<",
"Ljava/lang/ref/WeakReference<",
"Landroid/view/animation/Interpolator;",
">;>;"
}
.end annotation
.end field
.field public static c:Lcom/airbnb/lottie/parser/moshi/b$a;
# direct methods
.method public static constructor <clinit>()V
.registers 9
.line 1
new-instance v0, Landroid/view/animation/LinearInterpolator;
invoke-direct {v0}, Landroid/view/animation/LinearInterpolator;-><init>()V
sput-object v0, Lcom/airbnb/lottie/parser/q;->a:Landroid/view/animation/LinearInterpolator;
const-string v1, "t"
const-string v2, "s"
const-string v3, "e"
const-string v4, "o"
const-string v5, "i"
const-string v6, "h"
const-string v7, "to"
const-string v8, "ti"
.line 2
filled-new-array/range {v1 .. v8}, [Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/airbnb/lottie/parser/moshi/b$a;->a([Ljava/lang/String;)Lcom/airbnb/lottie/parser/moshi/b$a;
move-result-object v0
sput-object v0, Lcom/airbnb/lottie/parser/q;->c:Lcom/airbnb/lottie/parser/moshi/b$a;
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(Lcom/airbnb/lottie/parser/moshi/b;Lcom/airbnb/lottie/d;FLcom/airbnb/lottie/parser/h0;Z)Lcom/airbnb/lottie/value/a;
.registers 22
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/airbnb/lottie/parser/moshi/b;",
"Lcom/airbnb/lottie/d;",
"F",
"Lcom/airbnb/lottie/parser/h0<",
"TT;>;Z)",
"Lcom/airbnb/lottie/value/a<",
"TT;>;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
move-object/from16 v0, p0
move/from16 v1, p2
move-object/from16 v2, p3
if-eqz p4, :cond_152
.line 1
const-class v3, Lcom/airbnb/lottie/parser/q;
.line 2
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->h()V
const/4 v4, 0x0
const/4 v5, 0x1
const/4 v7, 0x0
move-object v9, v4
move-object v10, v9
move-object v11, v10
move-object v12, v11
move-object v13, v12
move-object v14, v13
const/4 v8, 0x0
const/4 v15, 0x0
.line 3
:goto_18
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->u()Z
move-result v16
if-eqz v16, :cond_5a
.line 4
sget-object v6, Lcom/airbnb/lottie/parser/q;->c:Lcom/airbnb/lottie/parser/moshi/b$a;
invoke-virtual {v0, v6}, Lcom/airbnb/lottie/parser/moshi/b;->P(Lcom/airbnb/lottie/parser/moshi/b$a;)I
move-result v6
packed-switch v6, :pswitch_data_15c
.line 5
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->U()V
goto :goto_58
.line 6
:pswitch_2b
invoke-static {v0, v1}, Lcom/airbnb/lottie/parser/p;->b(Lcom/airbnb/lottie/parser/moshi/b;F)Landroid/graphics/PointF;
move-result-object v13
goto :goto_18
.line 7
:pswitch_30
invoke-static {v0, v1}, Lcom/airbnb/lottie/parser/p;->b(Lcom/airbnb/lottie/parser/moshi/b;F)Landroid/graphics/PointF;
move-result-object v14
goto :goto_18
.line 8
:pswitch_35
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->D()I
move-result v6
if-ne v6, v5, :cond_3d
const/4 v8, 0x1
goto :goto_18
:cond_3d
const/4 v8, 0x0
goto :goto_18
.line 9
:pswitch_3f
invoke-static {v0, v1}, Lcom/airbnb/lottie/parser/p;->b(Lcom/airbnb/lottie/parser/moshi/b;F)Landroid/graphics/PointF;
move-result-object v10
goto :goto_18
.line 10
:pswitch_44
invoke-static {v0, v1}, Lcom/airbnb/lottie/parser/p;->b(Lcom/airbnb/lottie/parser/moshi/b;F)Landroid/graphics/PointF;
move-result-object v9
goto :goto_18
.line 11
:pswitch_49
invoke-interface {v2, v0, v1}, Lcom/airbnb/lottie/parser/h0;->a(Lcom/airbnb/lottie/parser/moshi/b;F)Ljava/lang/Object;
move-result-object v11
goto :goto_18
.line 12
:pswitch_4e
invoke-interface {v2, v0, v1}, Lcom/airbnb/lottie/parser/h0;->a(Lcom/airbnb/lottie/parser/moshi/b;F)Ljava/lang/Object;
move-result-object v12
goto :goto_18
.line 13
:pswitch_53
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->C()D
move-result-wide v5
double-to-float v15, v5
:goto_58
const/4 v5, 0x1
goto :goto_18
.line 14
:cond_5a
invoke-virtual/range {p0 .. p0}, Lcom/airbnb/lottie/parser/moshi/b;->n()V
if-eqz v8, :cond_65
.line 15
sget-object v0, Lcom/airbnb/lottie/parser/q;->a:Landroid/view/animation/LinearInterpolator;
move-object v4, v0
move-object v0, v12
goto/16 :goto_13f
:cond_65
if-eqz v9, :cond_13c
if-eqz v10, :cond_13c
.line 16
iget v0, v9, Landroid/graphics/PointF;->x:F
neg-float v2, v1
invoke-static {v0, v2, v1}, Lcom/airbnb/lottie/utils/f;->b(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/PointF;->x:F
.line 17
iget v0, v9, Landroid/graphics/PointF;->y:F
const/high16 v5, -0x3d380000 # -100.0f
const/high16 v6, 0x42c80000 # 100.0f
invoke-static {v0, v5, v6}, Lcom/airbnb/lottie/utils/f;->b(FFF)F
move-result v0
iput v0, v9, Landroid/graphics/PointF;->y:F
.line 18
iget v0, v10, Landroid/graphics/PointF;->x:F
invoke-static {v0, v2, v1}, Lcom/airbnb/lottie/utils/f;->b(FFF)F
move-result v0
iput v0, v10, Landroid/graphics/PointF;->x:F
.line 19
iget v0, v10, Landroid/graphics/PointF;->y:F
invoke-static {v0, v5, v6}, Lcom/airbnb/lottie/utils/f;->b(FFF)F
move-result v0
iput v0, v10, Landroid/graphics/PointF;->y:F
.line 20
iget v2, v9, Landroid/graphics/PointF;->x:F
iget v5, v9, Landroid/graphics/PointF;->y:F
iget v6, v10, Landroid/graphics/PointF;->x:F
sget-object v8, Lcom/airbnb/lottie/utils/g;->a:Landroid/graphics/PathMeasure;
cmpl-float v8, v2, v7
if-eqz v8, :cond_a1
const/16 v8, 0x20f
int-to-float v8, v8
mul-float v8, v8, v2
float-to-int v2, v8
goto :goto_a3
:cond_a1
const/16 v2, 0x11
:goto_a3
cmpl-float v8, v5, v7
if-eqz v8, :cond_ad
mul-int/lit8 v2, v2, 0x1f
int-to-float v2, v2
mul-float v2, v2, v5
float-to-int v2, v2
:cond_ad
cmpl-float v5, v6, v7
if-eqz v5, :cond_b7
mul-int/lit8 v2, v2, 0x1f
int-to-float v2, v2
mul-float v2, v2, v6
float-to-int v2, v2
:cond_b7
cmpl-float v5, v0, v7
if-eqz v5, :cond_c1
mul-int/lit8 v2, v2, 0x1f
int-to-float v2, v2
mul-float v2, v2, v0
float-to-int v2, v2
.line 21
:cond_c1
monitor-enter v3
.line 22
:try_start_c2
sget-object v0, Lcom/airbnb/lottie/parser/q;->b:Landroidx/collection/h;
if-nez v0, :cond_cd
.line 23
new-instance v0, Landroidx/collection/h;
invoke-direct {v0}, Landroidx/collection/h;-><init>()V
sput-object v0, Lcom/airbnb/lottie/parser/q;->b:Landroidx/collection/h;
.line 24
:cond_cd
sget-object v0, Lcom/airbnb/lottie/parser/q;->b:Landroidx/collection/h;
.line 25
invoke-virtual {v0, v2, v4}, Landroidx/collection/h;->d(ILjava/lang/Object;)Ljava/lang/Object;
move-result-object v0
.line 26
check-cast v0, Ljava/lang/ref/WeakReference;
monitor-exit v3
:try_end_d6
.catchall {:try_start_c2 .. :try_end_d6} :catchall_139
if-eqz v0, :cond_de
.line 27
invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/view/animation/Interpolator;
:cond_de
if-eqz v0, :cond_e2
if-nez v4, :cond_13e
.line 28
:cond_e2
iget v0, v9, Landroid/graphics/PointF;->x:F
div-float/2addr v0, v1
iput v0, v9, Landroid/graphics/PointF;->x:F
.line 29
iget v0, v9, Landroid/graphics/PointF;->y:F
div-float/2addr v0, v1
iput v0, v9, Landroid/graphics/PointF;->y:F
.line 30
iget v0, v10, Landroid/graphics/PointF;->x:F
div-float/2addr v0, v1
iput v0, v10, Landroid/graphics/PointF;->x:F
.line 31
iget v4, v10, Landroid/graphics/PointF;->y:F
div-float/2addr v4, v1
iput v4, v10, Landroid/graphics/PointF;->y:F
.line 32
:try_start_f6
iget v1, v9, Landroid/graphics/PointF;->x:F
iget v5, v9, Landroid/graphics/PointF;->y:F
.line 33
invoke-static {v1, v5, v0, v4}, Landroidx/core/view/animation/a;->b(FFFF)Landroid/view/animation/PathInterpolator;
move-result-object v0
:try_end_fe
.catch Ljava/lang/IllegalArgumentException; {:try_start_f6 .. :try_end_fe} :catch_ff
goto :goto_128
:catch_ff
move-exception v0
.line 34
invoke-virtual {v0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
const-string v1, "The Path cannot loop back on itself."
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_123
.line 35
iget v0, v9, Landroid/graphics/PointF;->x:F
const/high16 v1, 0x3f800000 # 1.0f
invoke-static {v0, v1}, Ljava/lang/Math;->min(FF)F
move-result v0
iget v1, v9, Landroid/graphics/PointF;->y:F
iget v4, v10, Landroid/graphics/PointF;->x:F
invoke-static {v4, v7}, Ljava/lang/Math;->max(FF)F
move-result v4
iget v5, v10, Landroid/graphics/PointF;->y:F
.line 36
invoke-static {v0, v1, v4, v5}, Landroidx/core/view/animation/a;->b(FFFF)Landroid/view/animation/PathInterpolator;
move-result-object v0
goto :goto_128
.line 37
:cond_123
new-instance v0, Landroid/view/animation/LinearInterpolator;
invoke-direct {v0}, Landroid/view/animation/LinearInterpolator;-><init>()V
:goto_128
move-object v4, v0
.line 38
:try_start_129
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, v4}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
.line 39
monitor-enter v3
:try_end_12f
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_129 .. :try_end_12f} :catch_13e
.line 40
:try_start_12f
sget-object v1, Lcom/airbnb/lottie/parser/q;->b:Landroidx/collection/h;
invoke-virtual {v1, v2, v0}, Landroidx/collection/h;->f(ILjava/lang/Object;)V
.line 41
monitor-exit v3
goto :goto_13e
:catchall_136
move-exception v0
monitor-exit v3
:try_end_138
.catchall {:try_start_12f .. :try_end_138} :catchall_136
:try_start_138
throw v0
:try_end_139
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_138 .. :try_end_139} :catch_13e
:catchall_139
move-exception v0
.line 42
:try_start_13a
monitor-exit v3
:try_end_13b
.catchall {:try_start_13a .. :try_end_13b} :catchall_139
throw v0
.line 43
:cond_13c
sget-object v4, Lcom/airbnb/lottie/parser/q;->a:Landroid/view/animation/LinearInterpolator;
:catch_13e
:cond_13e
:goto_13e
move-object v0, v11
.line 44
:goto_13f
new-instance v1, Lcom/airbnb/lottie/value/a;
const/16 v16, 0x0
move-object v10, v1
move-object/from16 v11, p1
move-object v2, v13
move-object v13, v0
move-object v3, v14
move-object v14, v4
invoke-direct/range {v10 .. v16}, Lcom/airbnb/lottie/value/a;-><init>(Lcom/airbnb/lottie/d;Ljava/lang/Object;Ljava/lang/Object;Landroid/view/animation/Interpolator;FLjava/lang/Float;)V
.line 45
iput-object v3, v1, Lcom/airbnb/lottie/value/a;->m:Landroid/graphics/PointF;
.line 46
iput-object v2, v1, Lcom/airbnb/lottie/value/a;->n:Landroid/graphics/PointF;
return-object v1
.line 47
:cond_152
invoke-interface {v2, v0, v1}, Lcom/airbnb/lottie/parser/h0;->a(Lcom/airbnb/lottie/parser/moshi/b;F)Ljava/lang/Object;
move-result-object v0
.line 48
new-instance v1, Lcom/airbnb/lottie/value/a;
invoke-direct {v1, v0}, Lcom/airbnb/lottie/value/a;-><init>(Ljava/lang/Object;)V
return-object v1
:pswitch_data_15c
.packed-switch 0x0
:pswitch_53
:pswitch_4e
:pswitch_49
:pswitch_44
:pswitch_3f
:pswitch_35
:pswitch_30
:pswitch_2b
.end packed-switch
.end method