DiffClampAnimatedNode.smali
.class public Lcom/facebook/react/animated/DiffClampAnimatedNode;
.super Lcom/facebook/react/animated/ValueAnimatedNode;
.source "DiffClampAnimatedNode.java"
# instance fields
.field public final mInputNodeTag:I
.field public mLastValue:D
.field public final mMax:D
.field public final mMin:D
.field public final mNativeAnimatedNodesManager:Lcom/facebook/react/animated/NativeAnimatedNodesManager;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>(Lcom/facebook/react/bridge/ReadableMap;Lcom/facebook/react/animated/NativeAnimatedNodesManager;)V
.registers 5
invoke-direct {p0}, Lcom/facebook/react/animated/ValueAnimatedNode;-><init>()V
iput-object p2, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mNativeAnimatedNodesManager:Lcom/facebook/react/animated/NativeAnimatedNodesManager;
const-string p2, "input"
invoke-interface {p1, p2}, Lcom/facebook/react/bridge/ReadableMap;->getInt(Ljava/lang/String;)I
move-result p2
iput p2, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mInputNodeTag:I
const-string p2, "min"
invoke-interface {p1, p2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide v0
iput-wide v0, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mMin:D
const-string p2, "max"
invoke-interface {p1, p2}, Lcom/facebook/react/bridge/ReadableMap;->getDouble(Ljava/lang/String;)D
move-result-wide p1
iput-wide p1, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mMax:D
const-wide/16 p1, 0x0
iput-wide p1, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mLastValue:D
iput-wide p1, p0, Lcom/facebook/react/animated/ValueAnimatedNode;->mValue:D
return-void
.end method
.method private getInputNodeValue()D
.registers 3
iget-object v0, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mNativeAnimatedNodesManager:Lcom/facebook/react/animated/NativeAnimatedNodesManager;
iget v1, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mInputNodeTag:I
invoke-virtual {v0, v1}, Lcom/facebook/react/animated/NativeAnimatedNodesManager;->getNodeById(I)Lcom/facebook/react/animated/AnimatedNode;
move-result-object v0
if-eqz v0, :cond_15
instance-of v1, v0, Lcom/facebook/react/animated/ValueAnimatedNode;
if-eqz v1, :cond_15
check-cast v0, Lcom/facebook/react/animated/ValueAnimatedNode;
invoke-virtual {v0}, Lcom/facebook/react/animated/ValueAnimatedNode;->getValue()D
move-result-wide v0
return-wide v0
:cond_15
new-instance v0, Lcom/facebook/react/bridge/JSApplicationCausedNativeException;
const-string v1, "Illegal node ID set as an input for Animated.DiffClamp node"
invoke-direct {v0, v1}, Lcom/facebook/react/bridge/JSApplicationCausedNativeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public update()V
.registers 5
invoke-direct {p0}, Lcom/facebook/react/animated/DiffClampAnimatedNode;->getInputNodeValue()D
move-result-wide v0
iget-wide v2, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mLastValue:D
sub-double v2, v0, v2
iput-wide v0, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mLastValue:D
iget-wide v0, p0, Lcom/facebook/react/animated/ValueAnimatedNode;->mValue:D
add-double/2addr v0, v2
iget-wide v2, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mMin:D
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(DD)D
move-result-wide v0
iget-wide v2, p0, Lcom/facebook/react/animated/DiffClampAnimatedNode;->mMax:D
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->min(DD)D
move-result-wide v0
iput-wide v0, p0, Lcom/facebook/react/animated/ValueAnimatedNode;->mValue:D
return-void
.end method