From 135b93268fe19d36ebd6c0df60370a01d0ee15e7 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 09:55:32 -0700 Subject: [PATCH 1/4] Kotlinify LayoutCreateAnimation (#43740) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43740 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Differential Revision: https://internalfb.com/D55588908 --- ...CreateAnimation.java => LayoutCreateAnimation.kt} | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) rename packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/{LayoutCreateAnimation.java => LayoutCreateAnimation.kt} (58%) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt similarity index 58% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt index f103cc69ac0c..4392b552ea71 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutCreateAnimation.kt @@ -5,19 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.uimanager.layoutanimation; - -import com.facebook.infer.annotation.Nullsafe; +package com.facebook.react.uimanager.layoutanimation /** * Class responsible for handling layout view creation animation, applied to view whenever a valid * config was supplied for the layout animation of CREATE type. */ -/* package */ @Nullsafe(Nullsafe.Mode.LOCAL) -class LayoutCreateAnimation extends BaseLayoutAnimation { +internal class LayoutCreateAnimation : BaseLayoutAnimation() { - @Override - boolean isReverse() { - return false; - } + override fun isReverse(): Boolean = false } From 70dadca1f028cd3a1b714ab367caba16d94a548f Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 09:55:32 -0700 Subject: [PATCH 2/4] Kotlinify LayoutDeleteAnimation (#43741) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43741 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Differential Revision: https://internalfb.com/D55589024 --- ...DeleteAnimation.java => LayoutDeleteAnimation.kt} | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) rename packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/{LayoutDeleteAnimation.java => LayoutDeleteAnimation.kt} (58%) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt similarity index 58% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt index 1550cb642534..83221a93aed8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/layoutanimation/LayoutDeleteAnimation.kt @@ -5,19 +5,13 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.uimanager.layoutanimation; - -import com.facebook.infer.annotation.Nullsafe; +package com.facebook.react.uimanager.layoutanimation /** * Class responsible for handling layout view deletion animation, applied to view whenever a valid * config was supplied for the layout animation of DELETE type. */ -/* package */ @Nullsafe(Nullsafe.Mode.LOCAL) -class LayoutDeleteAnimation extends BaseLayoutAnimation { +internal class LayoutDeleteAnimation : BaseLayoutAnimation() { - @Override - boolean isReverse() { - return true; - } + override fun isReverse(): Boolean = true } From e3d1991165aee4e8bfb2ce064377447c2d26fd99 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 09:55:32 -0700 Subject: [PATCH 3/4] Kotlinify InspectorFlags Differential Revision: D55637558 --- .../ReactAndroid/api/ReactAndroid.api | 7 +++-- .../react/devsupport/InspectorFlags.java | 28 ------------------- .../react/devsupport/InspectorFlags.kt | 22 +++++++++++++++ 3 files changed, 26 insertions(+), 31 deletions(-) delete mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java create mode 100644 packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 3e83c253a622..2263cd1b71b7 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -2164,9 +2164,10 @@ public abstract interface class com/facebook/react/devsupport/HMRClient : com/fa public abstract fun setup (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZ)V } -public class com/facebook/react/devsupport/InspectorFlags { - public static fun getEnableCxxInspectorPackagerConnection ()Z - public static fun getEnableModernCDPRegistry ()Z +public final class com/facebook/react/devsupport/InspectorFlags { + public static final field INSTANCE Lcom/facebook/react/devsupport/InspectorFlags; + public static final fun getEnableCxxInspectorPackagerConnection ()Z + public static final fun getEnableModernCDPRegistry ()Z } public class com/facebook/react/devsupport/InspectorPackagerConnection : com/facebook/react/devsupport/IInspectorPackagerConnection { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java deleted file mode 100644 index 05480fb58bf4..000000000000 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.java +++ /dev/null @@ -1,28 +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.devsupport; - -import com.facebook.infer.annotation.Nullsafe; -import com.facebook.proguard.annotations.DoNotStrip; - -/** JNI wrapper for `jsinspector_modern::InspectorFlags`. */ -@Nullsafe(Nullsafe.Mode.LOCAL) -@DoNotStrip -public class InspectorFlags { - static { - DevSupportSoLoader.staticInit(); - } - - @DoNotStrip - public static native boolean getEnableModernCDPRegistry(); - - @DoNotStrip - public static native boolean getEnableCxxInspectorPackagerConnection(); - - private InspectorFlags() {} -} diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt new file mode 100644 index 000000000000..9b01f09c679d --- /dev/null +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/InspectorFlags.kt @@ -0,0 +1,22 @@ +/* + * 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.devsupport + +import com.facebook.proguard.annotations.DoNotStrip + +/** JNI wrapper for `jsinspector_modern::InspectorFlags`. */ +@DoNotStrip +public object InspectorFlags { + init { + DevSupportSoLoader.staticInit() + } + + @DoNotStrip @JvmStatic public external fun getEnableModernCDPRegistry(): Boolean + + @DoNotStrip @JvmStatic public external fun getEnableCxxInspectorPackagerConnection(): Boolean +} From d3698a123ccd65a8c2235b9b96cad5387988e486 Mon Sep 17 00:00:00 2001 From: Fabrizio Cucci Date: Tue, 2 Apr 2024 09:55:49 -0700 Subject: [PATCH 4/4] Kotlinify ReactConstants (#43758) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/43758 Changelog: [Internal] As part of the Sustainability Week (see [post](https://fb.workplace.com/groups/251759413609061/permalink/742797531171911/)). Reviewed By: rshest Differential Revision: D55632715 --- .../react-native/ReactAndroid/api/ReactAndroid.api | 4 ++-- .../common/{ReactConstants.java => ReactConstants.kt} | 11 ++++------- 2 files changed, 6 insertions(+), 9 deletions(-) rename packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/{ReactConstants.java => ReactConstants.kt} (70%) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index 2263cd1b71b7..ee18ac616e92 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -1727,10 +1727,10 @@ public final class com/facebook/react/common/MapBuilder$Builder { public fun put (Ljava/lang/Object;Ljava/lang/Object;)Lcom/facebook/react/common/MapBuilder$Builder; } -public class com/facebook/react/common/ReactConstants { +public final class com/facebook/react/common/ReactConstants { + public static final field INSTANCE Lcom/facebook/react/common/ReactConstants; public static final field TAG Ljava/lang/String; public static final field UNSET I - public fun ()V } public class com/facebook/react/common/ShakeDetector : android/hardware/SensorEventListener { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.kt similarity index 70% rename from packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.java rename to packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.kt index 98fa3b0ad0fa..265b840d957e 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/common/ReactConstants.kt @@ -5,14 +5,11 @@ * LICENSE file in the root directory of this source tree. */ -package com.facebook.react.common; +package com.facebook.react.common -import com.facebook.infer.annotation.Nullsafe; +public object ReactConstants { -@Nullsafe(Nullsafe.Mode.LOCAL) -public class ReactConstants { - - public static final String TAG = "ReactNative"; + public const val TAG: String = "ReactNative" /** * Some types have built-in support for representing a "missing" or "unset" value, for example NaN @@ -20,5 +17,5 @@ public class ReactConstants { * have such a special value. When an integer represent an inherently non-negative value, we use a * special negative value to mark it as "unset". */ - public static final int UNSET = -1; + public const val UNSET: Int = -1 }