From 6914342a985fee08e6c4e942191afaaccae6a0cb Mon Sep 17 00:00:00 2001 From: David Vacca Date: Tue, 30 Jan 2024 11:10:00 -0800 Subject: [PATCH] Mark classes of package animated as @Nullsafe (#42727) Summary: All these classes are NullSafe, let's mark them as NullSafe(Local) to ensure lint detect errors in the future changelog: [internal] internal Reviewed By: NickGerleman Differential Revision: D53200096 --- .../main/java/com/facebook/react/animated/AnimatedNode.java | 4 +++- .../main/java/com/facebook/react/animated/DecayAnimation.java | 2 ++ .../com/facebook/react/animated/DiffClampAnimatedNode.java | 4 +++- .../java/com/facebook/react/animated/ModulusAnimatedNode.java | 4 +++- .../java/com/facebook/react/animated/ObjectAnimatedNode.java | 4 +++- .../java/com/facebook/react/animated/SpringAnimation.java | 4 +++- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java index 358296ebf55dfd..089a4a25b350d3 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/AnimatedNode.java @@ -9,11 +9,13 @@ import androidx.annotation.Nullable; import com.facebook.infer.annotation.Assertions; +import com.facebook.infer.annotation.Nullsafe; import java.util.ArrayList; import java.util.List; /** Base class for all Animated.js library node types that can be created on the "native" side. */ -/*package*/ abstract class AnimatedNode { +/*package*/ @Nullsafe(Nullsafe.Mode.LOCAL) +abstract class AnimatedNode { public static final int INITIAL_BFS_COLOR = 0; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java index 0e1daa0f1bd181..97463913dae684 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DecayAnimation.java @@ -7,12 +7,14 @@ package com.facebook.react.animated; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.ReadableMap; /** * Implementation of {@link AnimationDriver} providing support for decay animations. The * implementation is copied from the JS version in {@code AnimatedImplementation.js}. */ +@Nullsafe(Nullsafe.Mode.LOCAL) class DecayAnimation extends AnimationDriver { private final double mVelocity; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java index de356762c801f3..4ed74b8ccfa79f 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/DiffClampAnimatedNode.java @@ -7,10 +7,12 @@ package com.facebook.react.animated; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.JSApplicationCausedNativeException; import com.facebook.react.bridge.ReadableMap; -/*package*/ class DiffClampAnimatedNode extends ValueAnimatedNode { +/*package*/ @Nullsafe(Nullsafe.Mode.LOCAL) +class DiffClampAnimatedNode extends ValueAnimatedNode { private final NativeAnimatedNodesManager mNativeAnimatedNodesManager; private final int mInputNodeTag; private final double mMin; 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 index f5ec5b7bb3c98d..7cd9a6568650aa 100644 --- 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 @@ -7,10 +7,12 @@ package com.facebook.react.animated; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.JSApplicationCausedNativeException; import com.facebook.react.bridge.ReadableMap; -/*package*/ class ModulusAnimatedNode extends ValueAnimatedNode { +/*package*/ @Nullsafe(Nullsafe.Mode.LOCAL) +class ModulusAnimatedNode extends ValueAnimatedNode { private final NativeAnimatedNodesManager mNativeAnimatedNodesManager; private final int mInputNode; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java index b00863f82f2ffa..c4d0492c9819f9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/ObjectAnimatedNode.java @@ -8,6 +8,7 @@ package com.facebook.react.animated; import androidx.annotation.Nullable; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.JavaOnlyArray; import com.facebook.react.bridge.JavaOnlyMap; import com.facebook.react.bridge.ReadableArray; @@ -19,7 +20,8 @@ * Native counterpart of object animated node (see AnimatedObject class in * AnimatedImplementation.js) */ -/* package */ class ObjectAnimatedNode extends AnimatedNode { +/* package */ @Nullsafe(Nullsafe.Mode.LOCAL) +class ObjectAnimatedNode extends AnimatedNode { private static final String VALUE_KEY = "value"; private static final String NODE_TAG_KEY = "nodeTag"; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java index c507a6d515328e..29c69e141c0769 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/SpringAnimation.java @@ -7,6 +7,7 @@ package com.facebook.react.animated; +import com.facebook.infer.annotation.Nullsafe; import com.facebook.react.bridge.ReadableMap; /** @@ -14,7 +15,8 @@ * implementation has been copied from android implementation of Rebound library (see http://facebook.github.io/rebound/) */ -/*package*/ class SpringAnimation extends AnimationDriver { +/*package*/ @Nullsafe(Nullsafe.Mode.LOCAL) +class SpringAnimation extends AnimationDriver { // maximum amount of time to simulate per physics iteration in seconds (4 frames at 60 FPS) private static final double MAX_DELTA_TIME_SEC = 0.064;