Skip to content

Commit

Permalink
Migrate TrackingAnimatedNode.java to Kotlin (facebook#45656)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: facebook#45656

TrackingAnimatedNode.java -> TrackingAnimatedNode.kt

changelog: [internal] internal

Differential Revision: D60080041
  • Loading branch information
arushikesarwani94 authored and facebook-github-bot committed Jul 25, 2024
1 parent d65c431 commit 3550b25
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 50 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

package com.facebook.react.animated

import com.facebook.react.bridge.JSApplicationCausedNativeException
import com.facebook.react.bridge.JavaOnlyMap
import com.facebook.react.bridge.ReadableMap

internal open class TrackingAnimatedNode : AnimatedNode {

private val mNativeAnimatedNodesManager: NativeAnimatedNodesManager
private val mAnimationId: Int
private val mToValueNode: Int
private val mValueNode: Int
private val mAnimationConfig: JavaOnlyMap

public constructor(
config: ReadableMap,
nativeAnimatedNodesManager: NativeAnimatedNodesManager
) : super() {
mNativeAnimatedNodesManager = nativeAnimatedNodesManager
mAnimationId = config.getInt("animationId")
mToValueNode = config.getInt("toValue")
mValueNode = config.getInt("value")
mAnimationConfig = JavaOnlyMap.deepClone(config.getMap("animationConfig"))
}

override public fun update(): Unit {
val toValue = mNativeAnimatedNodesManager.getNodeById(mToValueNode)
if (toValue is ValueAnimatedNode) {
mAnimationConfig.putDouble("toValue", toValue.mValue)
mNativeAnimatedNodesManager.startAnimatingNode(
mAnimationId, mValueNode, mAnimationConfig, null)
} else {
throw JSApplicationCausedNativeException(
"Illegal node ID set as an input for TrackingAnimated node")
}
}

override public fun prettyPrint(): String {
return "TrackingAnimatedNode[$mTag]: animationID: $mAnimationId toValueNode: $mToValueNode valueNode: $mValueNode animationConfig: $mAnimationConfig"
}
}

0 comments on commit 3550b25

Please sign in to comment.