From e26092aec34ed3ff3f4b9598b36486f7c584510e Mon Sep 17 00:00:00 2001 From: Lulu Wu Date: Thu, 9 Mar 2023 15:10:00 -0800 Subject: [PATCH] Enable Venice Summary: Make Venice available in Catalyst Android, to enable set ```ReactFeatureFlags.enableBridgelessArchitecture``` to true in CatalystApplication.java **Note**: right now not every piece works with Venice enabled, but the main functionalities (Fabric components, playground) mostly work, the rest issues will be gradually fixed. Changelog: [Internal][Changed] - Enable Venice in Catalyst Android Reviewed By: NickGerleman Differential Revision: D43711737 fbshipit-source-id: 6ecb7e2b09c5b7feaa00b90076a2a894c08affc9 --- .../java/com/facebook/react/ReactActivityDelegate.java | 8 ++++++-- .../main/java/com/facebook/react/bridge/ReactContext.java | 5 ++++- .../com/facebook/react/modules/blob/BlobCollector.java | 2 +- .../react/modules/devloading/DevLoadingModule.java | 4 +++- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 11a469278b5..2d61f97cf80 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -56,7 +56,7 @@ public class ReactActivityDelegate { return null; } - private @NonNull Bundle composeLaunchOptions() { + protected @NonNull Bundle composeLaunchOptions() { Bundle composedLaunchOptions = getLaunchOptions(); if (isFabricEnabled()) { if (composedLaunchOptions == null) { @@ -71,6 +71,10 @@ public class ReactActivityDelegate { return new ReactRootView(getContext()); } + protected ReactRootView createRootView(Bundle initialProps) { + return new ReactRootView(getContext()); + } + /** * Get the {@link ReactNativeHost} used by this app. By default, assumes {@link * Activity#getApplication()} is an instance of {@link ReactApplication} and calls {@link @@ -98,7 +102,7 @@ public class ReactActivityDelegate { getPlainActivity(), getReactNativeHost(), mainComponentName, launchOptions) { @Override protected ReactRootView createRootView() { - return ReactActivityDelegate.this.createRootView(); + return ReactActivityDelegate.this.createRootView(launchOptions); } }; if (mainComponentName != null) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java index 8e68d025913..9143b9c36a8 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -511,7 +511,10 @@ public class ReactContext extends ContextWrapper { * synchronized(jsContext) { nativeThingNeedingJsContext(jsContext.get()); } */ public JavaScriptContextHolder getJavaScriptContextHolder() { - return mCatalystInstance.getJavaScriptContextHolder(); + if (mCatalystInstance != null) { + return mCatalystInstance.getJavaScriptContextHolder(); + } + return null; } public @Nullable JSIModule getJSIModule(JSIModuleType moduleType) { diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java b/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java index 60e05a404d7..51881ebc4a5 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/blob/BlobCollector.java @@ -23,7 +23,7 @@ import com.facebook.soloader.SoLoader; public void run() { JavaScriptContextHolder jsContext = reactContext.getJavaScriptContextHolder(); // When debugging in chrome the JS context is not available. - if (jsContext.get() != 0) { + if (jsContext != null && jsContext.get() != 0) { nativeInstall(blobModule, jsContext.get()); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java index 8ad1004f414..4eaa3f2d0b9 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/devloading/DevLoadingModule.java @@ -58,7 +58,9 @@ public class DevLoadingModule extends NativeDevLoadingViewSpec { new Runnable() { @Override public void run() { - mDevLoadingViewManager.hide(); + if (mDevLoadingViewManager != null) { + mDevLoadingViewManager.hide(); + } } }); }