mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Kotlinify ModulusAnimatedNode (#43889)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43889 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: cortinico Differential Revision: D55767001 fbshipit-source-id: cec29691185f7f0b9fa99c8b0194e94af9fc5933
This commit is contained in:
committed by
Facebook GitHub Bot
parent
0a0cd6517f
commit
f4bafdd616
-50
@@ -1,50 +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.infer.annotation.Nullsafe;
|
||||
import com.facebook.react.bridge.JSApplicationCausedNativeException;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
|
||||
/*package*/ @Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
class ModulusAnimatedNode extends ValueAnimatedNode {
|
||||
|
||||
private final NativeAnimatedNodesManager mNativeAnimatedNodesManager;
|
||||
private final int mInputNode;
|
||||
private final double mModulus;
|
||||
|
||||
public ModulusAnimatedNode(
|
||||
ReadableMap config, NativeAnimatedNodesManager nativeAnimatedNodesManager) {
|
||||
mNativeAnimatedNodesManager = nativeAnimatedNodesManager;
|
||||
mInputNode = config.getInt("input");
|
||||
mModulus = config.getDouble("modulus");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update() {
|
||||
AnimatedNode animatedNode = mNativeAnimatedNodesManager.getNodeById(mInputNode);
|
||||
if (animatedNode != null && animatedNode instanceof ValueAnimatedNode) {
|
||||
double value = ((ValueAnimatedNode) animatedNode).getValue();
|
||||
mValue = (value % mModulus + mModulus) % mModulus;
|
||||
} else {
|
||||
throw new JSApplicationCausedNativeException(
|
||||
"Illegal node ID set as an input for Animated.modulus node");
|
||||
}
|
||||
}
|
||||
|
||||
public String prettyPrint() {
|
||||
return "NativeAnimatedNodesManager["
|
||||
+ mTag
|
||||
+ "] inputNode: "
|
||||
+ mInputNode
|
||||
+ " modulus: "
|
||||
+ mModulus
|
||||
+ " super: "
|
||||
+ super.prettyPrint();
|
||||
}
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
/*
|
||||
* 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
|
||||
|
||||
internal class ModulusAnimatedNode(
|
||||
config: ReadableMap,
|
||||
private val nativeAnimatedNodesManager: NativeAnimatedNodesManager
|
||||
) : ValueAnimatedNode() {
|
||||
|
||||
private val inputNode: Int = config.getInt("input")
|
||||
private val modulus: Double = config.getDouble("modulus")
|
||||
|
||||
override public fun update() {
|
||||
val animatedNode = nativeAnimatedNodesManager.getNodeById(inputNode)
|
||||
if (animatedNode is ValueAnimatedNode) {
|
||||
val animatedNodeValue = animatedNode.value
|
||||
mValue = (animatedNodeValue % modulus + modulus) % modulus
|
||||
} else {
|
||||
throw JSApplicationCausedNativeException(
|
||||
"Illegal node ID set as an input for Animated.modulus node")
|
||||
}
|
||||
}
|
||||
|
||||
override public fun prettyPrint(): String {
|
||||
return "NativeAnimatedNodesManager[$mTag] inputNode: $inputNode modulus: $modulus super: ${super.prettyPrint()}"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user