Skip to content

Commit

Permalink
Migrate MultiplicationAnimatedNode to Kotlin (facebook#45756)
Browse files Browse the repository at this point in the history
Summary:
Pull Request resolved: facebook#45756

# Changelog:
[Internal] -
As in the title.

Differential Revision: D60340884
  • Loading branch information
rshest authored and facebook-github-bot committed Jul 28, 2024
1 parent da5a08e commit f4f393a
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 56 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* 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.ReadableMap

/**
* Animated node which takes two or more value node as an input and outputs a product of their
* values
*/
internal class MultiplicationAnimatedNode(
config: ReadableMap,
private val nativeAnimatedNodesManager: NativeAnimatedNodesManager
) : ValueAnimatedNode() {
private var inputNodes: IntArray

init {
val input = config.getArray("input")
val size = input?.size() ?: 0
inputNodes = IntArray(size)
if (input != null) {
for (i in inputNodes.indices) {
inputNodes[i] = input.getInt(i)
}
}
}

override fun update() {
nodeValue = 1.0
for (i in inputNodes.indices) {
val animatedNode = nativeAnimatedNodesManager.getNodeById(inputNodes[i])
nodeValue *=
if (animatedNode != null && animatedNode is ValueAnimatedNode) {
animatedNode.getValue()
} else {
throw JSApplicationCausedNativeException(
"Illegal node ID set as an input for Animated.multiply node")
}
}
}

override fun prettyPrint(): String =
"MultiplicationAnimatedNode[$tag]: input nodes: $inputNodes - super: ${super.prettyPrint()}"
}

0 comments on commit f4f393a

Please sign in to comment.