SimpleSpringInterpolator.smali
.class Lcom/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/view/animation/Interpolator;
# static fields
.field private static final FACTOR:F = 0.5f
.field public static final PARAM_SPRING_DAMPING:Ljava/lang/String; = "springDamping"
# instance fields
.field private final mSpringDamping:F
# direct methods
.method public constructor <init>()V
.registers 2
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/high16 v0, 0x3f000000 # 0.5f
.line 2
iput v0, p0, Lcom/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator;->mSpringDamping:F
return-void
.end method
.method public constructor <init>(F)V
.registers 2
.line 3
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 4
iput p1, p0, Lcom/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator;->mSpringDamping:F
return-void
.end method
.method public static getSpringDamping(Lcom/facebook/react/bridge/ReadableMap;)F
.registers 4
const-string v0, "springDamping"
.line 1
invoke-interface {p0, v0}, Lcom/facebook/react/bridge/ReadableMap;->getType(Ljava/lang/String;)Lcom/facebook/react/bridge/ReadableType;
move-result-object v1
sget-object v2, Lcom/facebook/react/bridge/ReadableType;->Number:Lcom/facebook/react/bridge/ReadableType;
invoke-virtual {v1, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_14
.line 2
invoke-interface {p0, v0}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v0
double-to-float p0, v0
return p0
:cond_14
const/high16 p0, 0x3f000000 # 0.5f
return p0
.end method
# virtual methods
.method public getInterpolation(F)F
.registers 11
const/high16 v0, -0x3ee00000 # -10.0f
mul-float v0, v0, p1
float-to-double v0, v0
const-wide/high16 v2, 0x4000000000000000L # 2.0
.line 1
invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->pow(DD)D
move-result-wide v0
iget v4, p0, Lcom/facebook/react/uimanager/layoutanimation/SimpleSpringInterpolator;->mSpringDamping:F
const/high16 v5, 0x40800000 # 4.0f
div-float v5, v4, v5
sub-float/2addr p1, v5
float-to-double v5, p1
const-wide v7, 0x400921fb54442d18L # Math.PI
mul-double v5, v5, v7
mul-double v5, v5, v2
float-to-double v2, v4
div-double/2addr v5, v2
.line 2
invoke-static {v5, v6}, Ljava/lang/Math;->sin(D)D
move-result-wide v2
mul-double v2, v2, v0
const-wide/high16 v0, 0x3ff0000000000000L # 1.0
add-double/2addr v2, v0
double-to-float p1, v2
return p1
.end method