From 84253c4e2008460f18ea5d64f77a4b9ba634f12c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateo=20Guzm=C3=A1n?= Date: Wed, 7 May 2025 10:09:35 -0700 Subject: [PATCH] Add missing `ReplaceWith` on deprecations (#51144) Summary: Static code analysis detected several missing `ReplaceWith` on deprecated methods. This diff addresses some of them by adding the most accurate suggestions based on the implementations. ## Changelog: [INTERNAL] - Add missing ReplaceWith on deprecations Pull Request resolved: https://github.com/facebook/react-native/pull/51144 Test Plan: ```sh yarn android yarn test-android ``` Reviewed By: fabriziocucci Differential Revision: D74327121 Pulled By: javache fbshipit-source-id: 5b338531210bef104208d14cbd0e3320dc566b8e --- .../main/java/com/facebook/react/MemoryPressureRouter.kt | 3 ++- .../com/facebook/react/animated/EventAnimationDriver.kt | 3 ++- .../facebook/react/fabric/events/FabricEventEmitter.kt | 4 +++- .../facebook/react/runtime/BridgelessCatalystInstance.kt | 4 ++-- .../com/facebook/react/uimanager/ViewManagerDelegate.kt | 8 ++++++-- .../java/com/facebook/react/uimanager/events/Event.kt | 6 ++++-- .../facebook/react/uimanager/events/EventEmitterImpl.kt | 4 +++- .../react/views/image/ReactImageDownloadListener.kt | 3 ++- .../views/scroll/ReactHorizontalScrollViewManager.kt | 4 +++- .../com/facebook/react/modules/share/ShareModuleTest.kt | 2 +- 10 files changed, 28 insertions(+), 13 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt index 892c7acac61..1d6a7653aa4 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/MemoryPressureRouter.kt @@ -43,7 +43,8 @@ public class MemoryPressureRouter(context: Context) : ComponentCallbacks2 { override public fun onConfigurationChanged(newConfig: Configuration): Unit = Unit - @Deprecated("onLowMemory is deprecated in the underlying API") + @Deprecated( + "onLowMemory is deprecated, use onTrimMemory instead.", ReplaceWith("onTrimMemory(level)")) override public fun onLowMemory(): Unit = Unit private fun dispatchMemoryPressure(level: Int) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt index 067a3506f6e..ad6d49edd9d 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/animated/EventAnimationDriver.kt @@ -23,7 +23,8 @@ internal class EventAnimationDriver( private val eventPath: List, @JvmField internal var valueNode: ValueAnimatedNode ) : RCTModernEventEmitter { - @Deprecated("Deprecated in Java") + @Deprecated( + "Deprecated in Java", ReplaceWith("receiveEvent(surfaceId, targetTag, eventName, params)")) override fun receiveEvent(targetTag: Int, eventName: String, params: WritableMap?) = receiveEvent(-1, targetTag, eventName, params) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt index 607fa607c82..93c812bc1eb 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/events/FabricEventEmitter.kt @@ -16,7 +16,9 @@ import com.facebook.react.uimanager.events.RCTModernEventEmitter import com.facebook.systrace.Systrace internal class FabricEventEmitter(private val uiManager: FabricUIManager) : RCTModernEventEmitter { - @Deprecated("Deprecated in Java") + @Deprecated( + "Use receiveEvent with surfaceId instead.", + ReplaceWith("receiveEvent(surfaceId, targetTag, eventName, params)")) override fun receiveEvent(targetTag: Int, eventName: String, params: WritableMap?): Unit { receiveEvent(ViewUtil.NO_SURFACE_ID, targetTag, eventName, params) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt index da8ec612e67..f535ef0d939 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessCatalystInstance.kt @@ -154,14 +154,14 @@ internal class BridgelessCatalystInstance(private val reactHost: ReactHostImpl) @Deprecated( message = - "This class is deprecated, please to migrate to new architecture using [com.facebook.react.defaults.DefaultReactHost] instead.") + "This class is deprecated, please migrate to new architecture using [com.facebook.react.defaults.DefaultReactHost] instead.") override fun setTurboModuleRegistry(turboModuleRegistry: TurboModuleRegistry) { throw UnsupportedOperationException("Unimplemented method 'setTurboModuleRegistry'") } @Deprecated( message = - "This class is deprecated, please to migrate to new architecture using [com.facebook.react.defaults.DefaultReactHost] instead.") + "This class is deprecated, please migrate to new architecture using [com.facebook.react.defaults.DefaultReactHost] instead.") override fun setFabricUIManager(fabricUIManager: UIManager) { throw UnsupportedOperationException("Unimplemented method 'setFabricUIManager'") } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt index 4e453238bfd..bffd01672e9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagerDelegate.kt @@ -35,7 +35,9 @@ public interface ViewManagerDelegate { public fun setProperty(view: T, propName: String, value: Any?) @Suppress("INAPPLICABLE_JVM_NAME") - @Deprecated(message = "propName is not nullable, please update your method signature") + @Deprecated( + message = "propName is not nullable, please update your method signature", + replaceWith = ReplaceWith("setProperty(view, propName, value)")) @JvmName("setProperty") public fun javaCompat_setProperty(view: T, propName: String?, value: Any?): Unit = setProperty(view, checkNotNull(propName), value) @@ -56,7 +58,9 @@ public interface ViewManagerDelegate { public fun receiveCommand(view: T, commandName: String, args: ReadableArray?) @Suppress("INAPPLICABLE_JVM_NAME") - @Deprecated(message = "commandName is not nullable, please update your method signature") + @Deprecated( + message = "commandName is not nullable, please update your method signature", + replaceWith = ReplaceWith("receiveCommand(view, commandName, args)")) @JvmName("receiveCommand") public fun javaCompat_receiveCommand(view: T, commandName: String?, args: ReadableArray?): Unit = receiveCommand(view, checkNotNull(commandName), args) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt index e976528f6bf..86362723eb1 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/Event.kt @@ -52,7 +52,8 @@ public abstract class Event> { protected constructor() - @Deprecated("Use constructor with explicit surfaceId instead") + @Deprecated( + "Use constructor with explicit surfaceId instead", ReplaceWith("Event(surfaceId, viewTag)")) protected constructor(viewTag: Int) { init(viewTag) } @@ -61,7 +62,8 @@ public abstract class Event> { init(surfaceId, viewTag) } - @Deprecated("Use version with explicit surfaceId instead") + @Deprecated( + "Use version with explicit surfaceId instead", ReplaceWith("init(surfaceId, viewTag)")) protected fun init(viewTag: Int) { init(-1, viewTag) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt index 49a751599a5..657646f71ae 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/events/EventEmitterImpl.kt @@ -40,7 +40,9 @@ internal class EventEmitterImpl( fabricEventEmitter = eventEmitter } - @Deprecated("Please use RCTModernEventEmitter") + @Deprecated( + "Please use RCTModernEventEmitter instead", + ReplaceWith("RCTModernEventEmitter.receiveEvent(surfaceId, targetTag, eventName, params)")) override fun receiveEvent(targetTag: Int, eventName: String, params: WritableMap?) { receiveEvent(-1, targetTag, eventName, params) } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt index a6cf0551fe8..281a7382c9b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageDownloadListener.kt @@ -44,7 +44,8 @@ internal open class ReactImageDownloadListener : override fun setColorFilter(colorFilter: ColorFilter?) = Unit - @Deprecated("Deprecated in Java") override fun getOpacity(): Int = PixelFormat.OPAQUE + @Deprecated("Deprecated in Java", ReplaceWith("PixelFormat.OPAQUE")) + override fun getOpacity(): Int = PixelFormat.OPAQUE } companion object { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt index 76db9af096f..253d67ac3d8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactHorizontalScrollViewManager.kt @@ -178,7 +178,9 @@ constructor(private val fpsListener: FpsListener? = null) : } } - @Deprecated("Use different receiveCommand overloads") + @Deprecated( + "Use receiveCommand with String commandId instead", + ReplaceWith("receiveCommand(scrollView, commandId, args)")) override fun receiveCommand( scrollView: ReactHorizontalScrollView, commandId: Int, diff --git a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/share/ShareModuleTest.kt b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/share/ShareModuleTest.kt index 2db67251031..db668f62a1f 100644 --- a/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/share/ShareModuleTest.kt +++ b/packages/react-native/ReactAndroid/src/test/java/com/facebook/react/modules/share/ShareModuleTest.kt @@ -152,7 +152,7 @@ class ShareModuleTest { errorMessage = message ?: throwable?.message ?: ERROR_DEFAULT_MESSAGE } - @Deprecated("Method deprecated") + @Deprecated("Method deprecated", ReplaceWith("reject(code, message)")) override fun reject(message: String) { reject(null, message, null, null) }