diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.java deleted file mode 100644 index 7cd9a656865..00000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.java +++ /dev/null @@ -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(); - } -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.kt new file mode 100644 index 00000000000..79ff6a3d290 --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ModulusAnimatedNode.kt @@ -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()}" + } +}