From 3a3f3e6232d6eec7d8863a910e1f76a1c6003ccb Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Tue, 16 Apr 2024 10:12:54 -0700 Subject: [PATCH] Introduce ReactContext.hasReactInstance() (#44116) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/44116 This is just the bridgeless analogue to .hasCatalystInstance() Changelog: [Android][Added] - Introduced ReactContext.hasReactInstance() to replace .hasCatalystInstance() Reviewed By: fabriziocucci Differential Revision: D56164488 fbshipit-source-id: 8be4676e18dc7df4765746f46cf36e62405b4ffa --- .../react-native/ReactAndroid/api/ReactAndroid.api | 1 + .../java/com/facebook/react/bridge/ReactContext.java | 10 ++++++++++ .../facebook/react/runtime/BridgelessReactContext.java | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/packages/react-native/ReactAndroid/api/ReactAndroid.api b/packages/react-native/ReactAndroid/api/ReactAndroid.api index b0eda7bd6ce..9cbb56bc609 100644 --- a/packages/react-native/ReactAndroid/api/ReactAndroid.api +++ b/packages/react-native/ReactAndroid/api/ReactAndroid.api @@ -1114,6 +1114,7 @@ public abstract class com/facebook/react/bridge/ReactContext : android/content/C public fun hasCatalystInstance ()Z public fun hasCurrentActivity ()Z public fun hasNativeModule (Ljava/lang/Class;)Z + public fun hasReactInstance ()Z protected fun initializeInteropModules ()V protected fun initializeInteropModules (Lcom/facebook/react/bridge/ReactContext;)V public fun initializeMessageQueueThreads (Lcom/facebook/react/bridge/queue/ReactQueueConfiguration;)V diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index 9111da5ebd9..08a8896b2d8 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -262,10 +262,20 @@ public abstract class ReactContext extends ContextWrapper { return mCatalystInstance != null && !mCatalystInstance.isDestroyed(); } + /** + * This API has been deprecated due to naming consideration, please use hasReactInstance() instead + * + * @return + */ + @Deprecated public boolean hasCatalystInstance() { return mCatalystInstance != null; } + public boolean hasReactInstance() { + return mCatalystInstance != null; + } + public LifecycleState getLifecycleState() { return mLifecycleState; } diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java index 853cf74be64..4a179e38917 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/runtime/BridgelessReactContext.java @@ -95,6 +95,11 @@ class BridgelessReactContext extends ReactApplicationContext implements EventDis return mReactHost.isInstanceInitialized(); } + @Override + public boolean hasReactInstance() { + return mReactHost.isInstanceInitialized(); + } + DevSupportManager getDevSupportManager() { return mReactHost.getDevSupportManager(); }