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 c9b4f15c835..7db7e1c16fe 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactContext.java @@ -445,7 +445,7 @@ public class ReactContext extends ContextWrapper { return mCatalystInstance.getJavaScriptContextHolder(); } - public JSIModule getJSIModule(JSIModuleType moduleType) { + public @Nullable JSIModule getJSIModule(JSIModuleType moduleType) { if (!hasActiveCatalystInstance()) { throw new IllegalStateException( "Unable to retrieve a JSIModule if CatalystInstance is not active."); diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java index 039798dcaf3..834208a962e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ThemedReactContext.java @@ -10,6 +10,8 @@ package com.facebook.react.uimanager; import android.app.Activity; import android.content.Context; import androidx.annotation.Nullable; +import com.facebook.react.bridge.JSIModule; +import com.facebook.react.bridge.JSIModuleType; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContext; @@ -77,4 +79,12 @@ public class ThemedReactContext extends ReactContext { public boolean isBridgeless() { return mReactApplicationContext.isBridgeless(); } + + @Override + public JSIModule getJSIModule(JSIModuleType moduleType) { + if (isBridgeless()) { + return mReactApplicationContext.getJSIModule(moduleType); + } + return super.getJSIModule(moduleType); + } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java index 30133a53888..954dfe95edf 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/UIManagerHelper.java @@ -51,6 +51,22 @@ public class UIManagerHelper { ReactContext context, @UIManagerType int uiManagerType, boolean returnNullIfCatalystIsInactive) { + if (context.isBridgeless()) { + @Nullable + UIManager uiManager = + context.getJSIModule(JSIModuleType.UIManager) != null + ? (UIManager) context.getJSIModule(JSIModuleType.UIManager) + : null; + if (uiManager == null) { + ReactSoftException.logSoftException( + "UIManagerHelper", + new ReactNoCrashSoftException( + "Cannot get UIManager because the instance hasn't been initialized yet.")); + return null; + } + return uiManager; + } + if (!context.hasCatalystInstance()) { ReactSoftException.logSoftException( "UIManagerHelper",