From a302fbcaaf69c8f019a212f7b9b839fa1ddd6b2f Mon Sep 17 00:00:00 2001 From: Maddie Lord Date: Mon, 24 Feb 2025 15:58:11 -0800 Subject: [PATCH] Set ReactSurface and ReactRootView to ReactDelegate when created via ReactNavigationActivityDelegate (#49580) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49580 Add setReactSurface and setReactRootView methods for custom delegates. Reviewed By: arushikesarwani94 Differential Revision: D69925812 fbshipit-source-id: b2acd3e541bd34216d9f8cadbdf2fa5c04e46b98 --- packages/react-native/ReactAndroid/api/ReactAndroid.api | 4 ++++ .../java/com/facebook/react/ReactActivityDelegate.java | 9 +++++++++ .../src/main/java/com/facebook/react/ReactDelegate.java | 8 ++++++++ 3 files changed, 21 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index b4a6084a19c..1f7ceb4eac4 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -140,6 +140,8 @@ public class com/facebook/react/ReactActivityDelegate { public fun onUserLeaveHint ()V public fun onWindowFocusChanged (Z)V public fun requestPermissions ([Ljava/lang/String;ILcom/facebook/react/modules/core/PermissionListener;)V + public fun setReactRootView (Lcom/facebook/react/ReactRootView;)V + public fun setReactSurface (Lcom/facebook/react/interfaces/fabric/ReactSurface;)V } public abstract interface class com/facebook/react/ReactApplication { @@ -171,6 +173,8 @@ public class com/facebook/react/ReactDelegate { public fun onUserLeaveHint ()V public fun onWindowFocusChanged (Z)V public fun reload ()V + public fun setReactRootView (Lcom/facebook/react/ReactRootView;)V + public fun setReactSurface (Lcom/facebook/react/interfaces/fabric/ReactSurface;)V public fun shouldShowDevMenuOrReload (ILandroid/view/KeyEvent;)Z public fun unloadApp ()V } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 1560b269b38..22911bebf76 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -20,6 +20,7 @@ import com.facebook.infer.annotation.Assertions; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactContext; import com.facebook.react.common.annotations.DeprecatedInNewArchitecture; +import com.facebook.react.interfaces.fabric.ReactSurface; import com.facebook.react.internal.featureflags.ReactNativeFeatureFlags; import com.facebook.react.modules.core.PermissionListener; import com.facebook.systrace.Systrace; @@ -156,6 +157,14 @@ public class ReactActivityDelegate { getPlainActivity().setContentView(mReactDelegate.getReactRootView()); } + public void setReactSurface(ReactSurface reactSurface) { + mReactDelegate.setReactSurface(reactSurface); + } + + public void setReactRootView(ReactRootView reactRootView) { + mReactDelegate.setReactRootView(reactRootView); + } + public void onUserLeaveHint() { if (mReactDelegate != null) { mReactDelegate.onUserLeaveHint(); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java index b418bad2613..9d6fe30d655 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactDelegate.java @@ -318,6 +318,14 @@ public class ReactDelegate { } } + public void setReactSurface(ReactSurface reactSurface) { + mReactSurface = reactSurface; + } + + public void setReactRootView(ReactRootView reactRootView) { + mReactRootView = reactRootView; + } + @Nullable public ReactRootView getReactRootView() { if (ReactNativeFeatureFlags.enableBridgelessArchitecture()) {