diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java index b17ad7e2a67..be7c47f1611 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/LazyTurboModuleManagerDelegate.java @@ -74,6 +74,11 @@ public abstract class LazyTurboModuleManagerDelegate throw new UnsupportedOperationException("unstable_isModuleRegistered is not supported"); } + @Override + public boolean unstable_isLazyTurboModuleDelegate() { + return true; + } + @Override public boolean unstable_shouldEnableLegacyModuleInterop() { return false; diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java index a872660e006..50b1c6fd320 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactPackageTurboModuleManagerDelegate.java @@ -178,6 +178,11 @@ public abstract class ReactPackageTurboModuleManagerDelegate extends TurboModule return (TurboModule) resolvedModule; } + @Override + public boolean unstable_isLazyTurboModuleDelegate() { + return false; + } + @Override public boolean unstable_isModuleRegistered(String moduleName) { for (final ModuleProvider moduleProvider : mModuleProviders) { diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java index 3aa451f43d3..74efb5c2c48 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManager.java @@ -20,7 +20,6 @@ import com.facebook.react.bridge.NativeModule; import com.facebook.react.bridge.ReactNoCrashSoftException; import com.facebook.react.bridge.ReactSoftExceptionLogger; import com.facebook.react.bridge.RuntimeExecutor; -import com.facebook.react.config.ReactFeatureFlags; import com.facebook.react.internal.turbomodule.core.interfaces.CallInvokerHolder; import com.facebook.react.internal.turbomodule.core.interfaces.NativeMethodCallInvokerHolder; import com.facebook.react.internal.turbomodule.core.interfaces.TurboModule; @@ -196,7 +195,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry { * This API is invoked from global.__turboModuleProxy. * Only call getModule if the native module is a turbo module. */ - if (!ReactFeatureFlags.enableTurboModuleStableAPI && !isTurboModule(moduleName)) { + if (!isTurboModuleStableAPIEnabled() && !isTurboModule(moduleName)) { return null; } @@ -206,6 +205,10 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry { : null; } + public boolean isTurboModuleStableAPIEnabled() { + return mDelegate != null && mDelegate.unstable_isLazyTurboModuleDelegate(); + } + // used from TurboModuleManager.cpp @SuppressWarnings("unused") @DoNotStrip @@ -219,7 +222,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry { * This API is invoked from global.__turboModuleProxy. * Only call getModule if the native module is a turbo module. */ - if (!ReactFeatureFlags.enableTurboModuleStableAPI && !isTurboModule(moduleName)) { + if (!isTurboModuleStableAPIEnabled() && !isTurboModule(moduleName)) { return null; } @@ -250,7 +253,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry { + "\", but TurboModuleManager was tearing down. Returning null. Was legacy: " + isLegacyModule(moduleName) + ". Was turbo: " - + (ReactFeatureFlags.enableTurboModuleStableAPI + + (isTurboModuleStableAPIEnabled() ? "[TurboModuleStableAPI enabled for " + moduleName + "]" : isTurboModule(moduleName)) + "."); @@ -336,7 +339,7 @@ public class TurboModuleManager implements JSIModule, TurboModuleRegistry { + "\". Was legacy: " + isLegacyModule(moduleName) + ". Was turbo: " - + (ReactFeatureFlags.enableTurboModuleStableAPI + + (isTurboModuleStableAPIEnabled() ? "[TurboModuleStableAPI enabled for " + moduleName + "]" : isTurboModule(moduleName)) + "."); diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java index 53208dbe266..2740fa7208a 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/internal/turbomodule/core/TurboModuleManagerDelegate.java @@ -40,6 +40,8 @@ public abstract class TurboModuleManagerDelegate { public abstract boolean unstable_isModuleRegistered(String moduleName); + public abstract boolean unstable_isLazyTurboModuleDelegate(); + /** * Create an return a legacy NativeModule with name `moduleName`. If `moduleName` is a * TurboModule, return null.