diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java index 3c2070910a0..9b9c6f78107 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java @@ -128,18 +128,13 @@ public class FabricUIManager implements UIManager, LifecycleEventListener { @Override public int addRootView( - final T rootView, final WritableMap initialProps, final @Nullable String initialUITemplate) { - return addRootView(rootView, null, initialProps, initialUITemplate); - } - - public int addRootView( - final T rootView, final @Nullable String moduleName, final WritableMap initialProps, final @Nullable String initialUITemplate) { + final T rootView, final WritableMap initialProps, final @Nullable String initialUITemplate) { final int rootTag = ReactRootViewTagGenerator.getNextRootViewTag(); ThemedReactContext reactContext = new ThemedReactContext(mReactApplicationContext, rootView.getContext()); mMountingManager.addRootView(rootTag, rootView); mReactContextForRootTag.put(rootTag, reactContext); - mBinding.startSurface(rootTag, moduleName == null ? "" : moduleName, (NativeMap) initialProps); + mBinding.startSurface(rootTag, (NativeMap) initialProps); if (initialUITemplate != null) { mBinding.renderTemplateToSurface(rootTag, initialUITemplate); } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/Binding.java b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/Binding.java index 664cd6d94da..441e9809110 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/Binding.java +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/Binding.java @@ -40,7 +40,7 @@ public class Binding { ComponentFactoryDelegate componentsRegistry, Object reactNativeConfig); - public native void startSurface(int surfaceId, String moduleName, NativeMap initialProps); + public native void startSurface(int surfaceId, NativeMap initialProps); public native void renderTemplateToSurface(int surfaceId, String uiTemplate); diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp index 171935a1aca..286392d5590 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.cpp @@ -45,13 +45,9 @@ jni::local_ref Binding::initHybrid( return makeCxxInstance(); } -void Binding::startSurface( - jint surfaceId, - jni::alias_ref moduleName, - NativeMap *initialProps) { +void Binding::startSurface(jint surfaceId, NativeMap *initialProps) { if (scheduler_) { - scheduler_->startSurface( - surfaceId, moduleName->toStdString(), initialProps->consume()); + scheduler_->startSurface(surfaceId, "", initialProps->consume()); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.h b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.h index 6981de4937a..6486763e7ee 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.h +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jsi/jni/Binding.h @@ -50,10 +50,7 @@ class Binding : public jni::HybridClass, public SchedulerDelegate { ComponentFactoryDelegate *componentsRegistry, jni::alias_ref reactNativeConfig); - void startSurface( - jint surfaceId, - jni::alias_ref moduleName, - NativeMap *initialProps); + void startSurface(jint surfaceId, NativeMap *initialProps); void renderTemplateToSurface(jint surfaceId, jstring uiTemplate); diff --git a/ReactCommon/fabric/uimanager/Scheduler.cpp b/ReactCommon/fabric/uimanager/Scheduler.cpp index aab1121d934..c4637c1a3d5 100644 --- a/ReactCommon/fabric/uimanager/Scheduler.cpp +++ b/ReactCommon/fabric/uimanager/Scheduler.cpp @@ -96,10 +96,12 @@ void Scheduler::startSurface( shadowTreeRegistry_.add(std::move(shadowTree)); +#ifndef ANDROID runtimeExecutor_([=](jsi::Runtime &runtime) { uiManagerBinding_->startSurface( runtime, surfaceId, moduleName, initialProps); }); +#endif } void Scheduler::renderTemplateToSurface( @@ -169,9 +171,11 @@ void Scheduler::stopSurface(SurfaceId surfaceId) const { auto shadowTree = shadowTreeRegistry_.remove(surfaceId); shadowTree->setDelegate(nullptr); +#ifndef ANDROID runtimeExecutor_([=](jsi::Runtime &runtime) { uiManagerBinding_->stopSurface(runtime, surfaceId); }); +#endif } Size Scheduler::measureSurface( diff --git a/ReactCommon/fabric/uimanager/UIManagerBinding.cpp b/ReactCommon/fabric/uimanager/UIManagerBinding.cpp index ac72b2437be..afcb6aff7d4 100644 --- a/ReactCommon/fabric/uimanager/UIManagerBinding.cpp +++ b/ReactCommon/fabric/uimanager/UIManagerBinding.cpp @@ -46,25 +46,14 @@ void UIManagerBinding::startSurface( parameters["initialProps"] = initalProps; parameters["fabric"] = true; - if (runtime.global().hasProperty(runtime, "RN$SurfaceRegistry")) { - auto registry = - runtime.global().getPropertyAsObject(runtime, "RN$SurfaceRegistry"); - auto method = registry.getPropertyAsFunction(runtime, "renderSurface"); + auto module = getModule(runtime, "AppRegistry"); + auto method = module.getPropertyAsFunction(runtime, "runApplication"); - method.call( - runtime, - {jsi::String::createFromUtf8(runtime, moduleName), - jsi::valueFromDynamic(runtime, parameters)}); - } else { - auto module = getModule(runtime, "AppRegistry"); - auto method = module.getPropertyAsFunction(runtime, "runApplication"); - - method.callWithThis( - runtime, - module, - {jsi::String::createFromUtf8(runtime, moduleName), - jsi::valueFromDynamic(runtime, parameters)}); - } + method.callWithThis( + runtime, + module, + {jsi::String::createFromUtf8(runtime, moduleName), + jsi::valueFromDynamic(runtime, parameters)}); } void UIManagerBinding::stopSurface(jsi::Runtime &runtime, SurfaceId surfaceId)