RectangleContent.smali
.class public Lcom/airbnb/lottie/animation/content/RectangleContent;
.super Ljava/lang/Object;
# interfaces
.implements Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation$AnimationListener;
.implements Lcom/airbnb/lottie/animation/content/KeyPathElementContent;
.implements Lcom/airbnb/lottie/animation/content/PathContent;
# instance fields
.field private final a:Landroid/graphics/Path;
.field private final b:Landroid/graphics/RectF;
.field private final c:Ljava/lang/String;
.field private final d:Z
.field private final e:Lcom/airbnb/lottie/LottieDrawable;
.field private final f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation<",
"*",
"Landroid/graphics/PointF;",
">;"
}
.end annotation
.end field
.field private final g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation<",
"*",
"Landroid/graphics/PointF;",
">;"
}
.end annotation
.end field
.field private final h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation<",
"*",
"Ljava/lang/Float;",
">;"
}
.end annotation
.end field
.field private i:Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;
.field private j:Z
# direct methods
.method public constructor <init>(Lcom/airbnb/lottie/LottieDrawable;Lcom/airbnb/lottie/model/layer/BaseLayer;Lcom/airbnb/lottie/model/content/RectangleShape;)V
.registers 5
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Landroid/graphics/Path;
invoke-direct {v0}, Landroid/graphics/Path;-><init>()V
iput-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
new-instance v0, Landroid/graphics/RectF;
invoke-direct {v0}, Landroid/graphics/RectF;-><init>()V
iput-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
new-instance v0, Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;
invoke-direct {v0}, Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;-><init>()V
iput-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->i:Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;
invoke-virtual {p3}, Lcom/airbnb/lottie/model/content/RectangleShape;->c()Ljava/lang/String;
move-result-object v0
iput-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->c:Ljava/lang/String;
invoke-virtual {p3}, Lcom/airbnb/lottie/model/content/RectangleShape;->f()Z
move-result v0
iput-boolean v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->d:Z
iput-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->e:Lcom/airbnb/lottie/LottieDrawable;
invoke-virtual {p3}, Lcom/airbnb/lottie/model/content/RectangleShape;->d()Lcom/airbnb/lottie/model/animatable/AnimatableValue;
move-result-object p1
invoke-interface {p1}, Lcom/airbnb/lottie/model/animatable/AnimatableValue;->a()Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
move-result-object p1
iput-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p3}, Lcom/airbnb/lottie/model/content/RectangleShape;->e()Lcom/airbnb/lottie/model/animatable/AnimatablePointValue;
move-result-object p1
invoke-virtual {p1}, Lcom/airbnb/lottie/model/animatable/AnimatablePointValue;->a()Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
move-result-object p1
iput-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p3}, Lcom/airbnb/lottie/model/content/RectangleShape;->b()Lcom/airbnb/lottie/model/animatable/AnimatableFloatValue;
move-result-object p1
invoke-virtual {p1}, Lcom/airbnb/lottie/model/animatable/AnimatableFloatValue;->a()Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
move-result-object p1
iput-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p2, p1}, Lcom/airbnb/lottie/model/layer/BaseLayer;->i(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;)V
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p2, p1}, Lcom/airbnb/lottie/model/layer/BaseLayer;->i(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;)V
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p2, p1}, Lcom/airbnb/lottie/model/layer/BaseLayer;->i(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;)V
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p0}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->a(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation$AnimationListener;)V
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p0}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->a(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation$AnimationListener;)V
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p0}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->a(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation$AnimationListener;)V
return-void
.end method
.method private e()V
.registers 2
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->j:Z
iget-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->e:Lcom/airbnb/lottie/LottieDrawable;
invoke-virtual {v0}, Lcom/airbnb/lottie/LottieDrawable;->invalidateSelf()V
return-void
.end method
# virtual methods
.method public a()V
.registers 1
invoke-direct {p0}, Lcom/airbnb/lottie/animation/content/RectangleContent;->e()V
return-void
.end method
.method public b(Ljava/util/List;Ljava/util/List;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List<",
"Lcom/airbnb/lottie/animation/content/Content;",
">;",
"Ljava/util/List<",
"Lcom/airbnb/lottie/animation/content/Content;",
">;)V"
}
.end annotation
const/4 p2, 0x0
:goto_1
invoke-interface {p1}, Ljava/util/List;->size()I
move-result v0
if-ge p2, v0, :cond_26
invoke-interface {p1, p2}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/airbnb/lottie/animation/content/Content;
instance-of v1, v0, Lcom/airbnb/lottie/animation/content/TrimPathContent;
if-eqz v1, :cond_23
check-cast v0, Lcom/airbnb/lottie/animation/content/TrimPathContent;
invoke-virtual {v0}, Lcom/airbnb/lottie/animation/content/TrimPathContent;->i()Lcom/airbnb/lottie/model/content/ShapeTrimPath$Type;
move-result-object v1
sget-object v2, Lcom/airbnb/lottie/model/content/ShapeTrimPath$Type;->f:Lcom/airbnb/lottie/model/content/ShapeTrimPath$Type;
if-ne v1, v2, :cond_23
iget-object v1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->i:Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;
invoke-virtual {v1, v0}, Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;->a(Lcom/airbnb/lottie/animation/content/TrimPathContent;)V
invoke-virtual {v0, p0}, Lcom/airbnb/lottie/animation/content/TrimPathContent;->c(Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation$AnimationListener;)V
:cond_23
add-int/lit8 p2, p2, 0x1
goto :goto_1
:cond_26
return-void
.end method
.method public c(Lcom/airbnb/lottie/model/KeyPath;ILjava/util/List;Lcom/airbnb/lottie/model/KeyPath;)V
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/airbnb/lottie/model/KeyPath;",
"I",
"Ljava/util/List<",
"Lcom/airbnb/lottie/model/KeyPath;",
">;",
"Lcom/airbnb/lottie/model/KeyPath;",
")V"
}
.end annotation
invoke-static {p1, p2, p3, p4, p0}, Lcom/airbnb/lottie/utils/MiscUtils;->l(Lcom/airbnb/lottie/model/KeyPath;ILjava/util/List;Lcom/airbnb/lottie/model/KeyPath;Lcom/airbnb/lottie/animation/content/KeyPathElementContent;)V
return-void
.end method
.method public g(Ljava/lang/Object;Lcom/airbnb/lottie/value/LottieValueCallback;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(TT;",
"Lcom/airbnb/lottie/value/LottieValueCallback<",
"TT;>;)V"
}
.end annotation
sget-object v0, Lcom/airbnb/lottie/LottieProperty;->h:Landroid/graphics/PointF;
if-ne p1, v0, :cond_a
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p2}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->m(Lcom/airbnb/lottie/value/LottieValueCallback;)V
goto :goto_1d
:cond_a
sget-object v0, Lcom/airbnb/lottie/LottieProperty;->j:Landroid/graphics/PointF;
if-ne p1, v0, :cond_14
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p2}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->m(Lcom/airbnb/lottie/value/LottieValueCallback;)V
goto :goto_1d
:cond_14
sget-object v0, Lcom/airbnb/lottie/LottieProperty;->i:Ljava/lang/Float;
if-ne p1, v0, :cond_1d
iget-object p1, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {p1, p2}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->m(Lcom/airbnb/lottie/value/LottieValueCallback;)V
:cond_1d
:goto_1d
return-void
.end method
.method public getName()Ljava/lang/String;
.registers 2
iget-object v0, p0, Lcom/airbnb/lottie/animation/content/RectangleContent;->c:Ljava/lang/String;
return-object v0
.end method
.method public getPath()Landroid/graphics/Path;
.registers 18
move-object/from16 v0, p0
iget-boolean v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->j:Z
if-eqz v1, :cond_9
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
return-object v1
:cond_9
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
invoke-virtual {v1}, Landroid/graphics/Path;->reset()V
iget-boolean v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->d:Z
const/4 v2, 0x1
if-eqz v1, :cond_18
iput-boolean v2, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->j:Z
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
return-object v1
:cond_18
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->g:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {v1}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->h()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/graphics/PointF;
iget v3, v1, Landroid/graphics/PointF;->x:F
const/high16 v4, 0x40000000 # 2.0f
div-float/2addr v3, v4
iget v1, v1, Landroid/graphics/PointF;->y:F
div-float/2addr v1, v4
iget-object v5, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->h:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
const/4 v6, 0x0
if-nez v5, :cond_2f
const/4 v5, 0x0
goto :goto_35
:cond_2f
check-cast v5, Lcom/airbnb/lottie/animation/keyframe/FloatKeyframeAnimation;
invoke-virtual {v5}, Lcom/airbnb/lottie/animation/keyframe/FloatKeyframeAnimation;->o()F
move-result v5
:goto_35
invoke-static {v3, v1}, Ljava/lang/Math;->min(FF)F
move-result v7
cmpl-float v8, v5, v7
if-lez v8, :cond_3e
move v5, v7
:cond_3e
iget-object v7, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->f:Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;
invoke-virtual {v7}, Lcom/airbnb/lottie/animation/keyframe/BaseKeyframeAnimation;->h()Ljava/lang/Object;
move-result-object v7
check-cast v7, Landroid/graphics/PointF;
iget-object v8, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget v9, v7, Landroid/graphics/PointF;->x:F
add-float/2addr v9, v3
iget v10, v7, Landroid/graphics/PointF;->y:F
sub-float/2addr v10, v1
add-float/2addr v10, v5
invoke-virtual {v8, v9, v10}, Landroid/graphics/Path;->moveTo(FF)V
iget-object v8, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget v9, v7, Landroid/graphics/PointF;->x:F
add-float/2addr v9, v3
iget v10, v7, Landroid/graphics/PointF;->y:F
add-float/2addr v10, v1
sub-float/2addr v10, v5
invoke-virtual {v8, v9, v10}, Landroid/graphics/Path;->lineTo(FF)V
const/4 v8, 0x0
const/high16 v9, 0x42b40000 # 90.0f
cmpl-float v10, v5, v6
if-lez v10, :cond_80
iget-object v11, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
iget v12, v7, Landroid/graphics/PointF;->x:F
add-float v13, v12, v3
mul-float v14, v5, v4
sub-float/2addr v13, v14
iget v15, v7, Landroid/graphics/PointF;->y:F
add-float v16, v15, v1
sub-float v14, v16, v14
add-float/2addr v12, v3
add-float/2addr v15, v1
invoke-virtual {v11, v13, v14, v12, v15}, Landroid/graphics/RectF;->set(FFFF)V
iget-object v11, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget-object v12, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
invoke-virtual {v11, v12, v6, v9, v8}, Landroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
:cond_80
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget v11, v7, Landroid/graphics/PointF;->x:F
sub-float/2addr v11, v3
add-float/2addr v11, v5
iget v12, v7, Landroid/graphics/PointF;->y:F
add-float/2addr v12, v1
invoke-virtual {v6, v11, v12}, Landroid/graphics/Path;->lineTo(FF)V
if-lez v10, :cond_a8
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
iget v11, v7, Landroid/graphics/PointF;->x:F
sub-float v12, v11, v3
iget v13, v7, Landroid/graphics/PointF;->y:F
add-float v14, v13, v1
mul-float v15, v5, v4
sub-float/2addr v14, v15
sub-float/2addr v11, v3
add-float/2addr v11, v15
add-float/2addr v13, v1
invoke-virtual {v6, v12, v14, v11, v13}, Landroid/graphics/RectF;->set(FFFF)V
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget-object v11, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
invoke-virtual {v6, v11, v9, v9, v8}, Landroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
:cond_a8
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget v11, v7, Landroid/graphics/PointF;->x:F
sub-float/2addr v11, v3
iget v12, v7, Landroid/graphics/PointF;->y:F
sub-float/2addr v12, v1
add-float/2addr v12, v5
invoke-virtual {v6, v11, v12}, Landroid/graphics/Path;->lineTo(FF)V
if-lez v10, :cond_d2
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
iget v11, v7, Landroid/graphics/PointF;->x:F
sub-float v12, v11, v3
iget v13, v7, Landroid/graphics/PointF;->y:F
sub-float v14, v13, v1
sub-float/2addr v11, v3
mul-float v15, v5, v4
add-float/2addr v11, v15
sub-float/2addr v13, v1
add-float/2addr v13, v15
invoke-virtual {v6, v12, v14, v11, v13}, Landroid/graphics/RectF;->set(FFFF)V
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget-object v11, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
const/high16 v12, 0x43340000 # 180.0f
invoke-virtual {v6, v11, v12, v9, v8}, Landroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
:cond_d2
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget v11, v7, Landroid/graphics/PointF;->x:F
add-float/2addr v11, v3
sub-float/2addr v11, v5
iget v12, v7, Landroid/graphics/PointF;->y:F
sub-float/2addr v12, v1
invoke-virtual {v6, v11, v12}, Landroid/graphics/Path;->lineTo(FF)V
if-lez v10, :cond_fc
iget-object v6, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
iget v10, v7, Landroid/graphics/PointF;->x:F
add-float v11, v10, v3
mul-float v5, v5, v4
sub-float/2addr v11, v5
iget v4, v7, Landroid/graphics/PointF;->y:F
sub-float v7, v4, v1
add-float/2addr v10, v3
sub-float/2addr v4, v1
add-float/2addr v4, v5
invoke-virtual {v6, v11, v7, v10, v4}, Landroid/graphics/RectF;->set(FFFF)V
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
iget-object v3, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->b:Landroid/graphics/RectF;
const/high16 v4, 0x43870000 # 270.0f
invoke-virtual {v1, v3, v4, v9, v8}, Landroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FFZ)V
:cond_fc
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
invoke-virtual {v1}, Landroid/graphics/Path;->close()V
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->i:Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;
iget-object v3, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
invoke-virtual {v1, v3}, Lcom/airbnb/lottie/animation/content/CompoundTrimPathContent;->b(Landroid/graphics/Path;)V
iput-boolean v2, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->j:Z
iget-object v1, v0, Lcom/airbnb/lottie/animation/content/RectangleContent;->a:Landroid/graphics/Path;
return-object v1
.end method