mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
AdditionalAnimatedNode → Kotlin
Summary: Changelog: [Android][Changed] AdditionalAnimatedNode.java → Kotlin Reviewed By: rshest Differential Revision: D60523059 fbshipit-source-id: de4e60854a03b5a6f061882c03cf191998888015
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a4cd5994a7
commit
8689aa48bb
-56
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* 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.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
|
||||
/**
|
||||
* Animated node that plays a role of value aggregator. It takes two or more value nodes as an input
|
||||
* and outputs a sum of values outputted by those nodes.
|
||||
*/
|
||||
/*package*/ class AdditionAnimatedNode extends ValueAnimatedNode {
|
||||
|
||||
private final NativeAnimatedNodesManager mNativeAnimatedNodesManager;
|
||||
private final int[] mInputNodes;
|
||||
|
||||
public AdditionAnimatedNode(
|
||||
ReadableMap config, NativeAnimatedNodesManager nativeAnimatedNodesManager) {
|
||||
mNativeAnimatedNodesManager = nativeAnimatedNodesManager;
|
||||
ReadableArray inputNodes = config.getArray("input");
|
||||
mInputNodes = new int[inputNodes.size()];
|
||||
for (int i = 0; i < mInputNodes.length; i++) {
|
||||
mInputNodes[i] = inputNodes.getInt(i);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
nodeValue = 0;
|
||||
for (int i = 0; i < mInputNodes.length; i++) {
|
||||
AnimatedNode animatedNode = mNativeAnimatedNodesManager.getNodeById(mInputNodes[i]);
|
||||
if (animatedNode != null && animatedNode instanceof ValueAnimatedNode) {
|
||||
nodeValue += ((ValueAnimatedNode) animatedNode).getValue();
|
||||
} else {
|
||||
throw new JSApplicationCausedNativeException(
|
||||
"Illegal node ID set as an input for Animated.Add node");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String prettyPrint() {
|
||||
return "AdditionAnimatedNode["
|
||||
+ tag
|
||||
+ "]: input nodes: "
|
||||
+ (mInputNodes != null ? mInputNodes.toString() : "null")
|
||||
+ " - super: "
|
||||
+ super.prettyPrint();
|
||||
}
|
||||
}
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* 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 that plays a role of value aggregator. It takes two or more value nodes as an input
|
||||
* and outputs a sum of values outputted by those nodes.
|
||||
*/
|
||||
internal class AdditionAnimatedNode(
|
||||
config: ReadableMap,
|
||||
private val nativeAnimatedNodesManager: NativeAnimatedNodesManager
|
||||
) : ValueAnimatedNode() {
|
||||
|
||||
private val inputNodes: IntArray
|
||||
|
||||
init {
|
||||
val input = config.getArray("input")
|
||||
inputNodes =
|
||||
if (input == null) {
|
||||
IntArray(0)
|
||||
} else {
|
||||
IntArray(input.size()) { i -> input.getInt(i) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun update() {
|
||||
nodeValue = 0.0
|
||||
nodeValue +=
|
||||
inputNodes.fold(
|
||||
0.0,
|
||||
{ acc, id ->
|
||||
val animatedNode = nativeAnimatedNodesManager.getNodeById(id)
|
||||
if (animatedNode is ValueAnimatedNode) {
|
||||
acc + animatedNode.getValue()
|
||||
} else {
|
||||
throw JSApplicationCausedNativeException(
|
||||
"Illegal node ID set as an input for Animated.Add node")
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
override fun prettyPrint(): String =
|
||||
"AdditionAnimatedNode[${tag}]: input nodes: ${inputNodes.joinToString()} - super: ${super.prettyPrint()}"
|
||||
}
|
||||
Reference in New Issue
Block a user