Back out "[Venice][Fabric] Use startSurface on Android"

Summary: Original commit changeset: 4a506a589108

Reviewed By: ejanzer

Differential Revision: D15497094

fbshipit-source-id: 47e5d0c3c69cc56cc3dd56d28e23e1db5b562fa4
This commit is contained in:
David Vacca
2019-05-24 11:30:29 -07:00
committed by Facebook Github Bot
parent 9f8305a837
commit bbf1a7d085
6 changed files with 17 additions and 36 deletions
@@ -128,18 +128,13 @@ public class FabricUIManager implements UIManager, LifecycleEventListener {
@Override
public <T extends View> int addRootView(
final T rootView, final WritableMap initialProps, final @Nullable String initialUITemplate) {
return addRootView(rootView, null, initialProps, initialUITemplate);
}
public <T extends View> 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);
}
@@ -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);
@@ -45,13 +45,9 @@ jni::local_ref<Binding::jhybriddata> Binding::initHybrid(
return makeCxxInstance();
}
void Binding::startSurface(
jint surfaceId,
jni::alias_ref<jstring> moduleName,
NativeMap *initialProps) {
void Binding::startSurface(jint surfaceId, NativeMap *initialProps) {
if (scheduler_) {
scheduler_->startSurface(
surfaceId, moduleName->toStdString(), initialProps->consume());
scheduler_->startSurface(surfaceId, "", initialProps->consume());
}
}
@@ -50,10 +50,7 @@ class Binding : public jni::HybridClass<Binding>, public SchedulerDelegate {
ComponentFactoryDelegate *componentsRegistry,
jni::alias_ref<jobject> reactNativeConfig);
void startSurface(
jint surfaceId,
jni::alias_ref<jstring> moduleName,
NativeMap *initialProps);
void startSurface(jint surfaceId, NativeMap *initialProps);
void renderTemplateToSurface(jint surfaceId, jstring uiTemplate);
@@ -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(
@@ -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)