diff --git a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp index d22dfb384e2..26eacc5cae0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp +++ b/ReactAndroid/src/main/java/com/facebook/react/fabric/jni/Binding.cpp @@ -266,13 +266,37 @@ void Binding::stopSurface(jint surfaceId) { } void Binding::registerSurface(SurfaceHandlerBinding *surfaceHandlerBinding) { + auto const &surfaceHandler = surfaceHandlerBinding->getSurfaceHandler(); auto scheduler = getScheduler(); - scheduler->registerSurface(surfaceHandlerBinding->getSurfaceHandler()); + if (!scheduler) { + LOG(ERROR) << "Binding::registerSurface: scheduler disappeared"; + return; + } + scheduler->registerSurface(surfaceHandler); + + auto mountingManager = + verifyMountingManager("FabricUIManagerBinding::registerSurface"); + if (!mountingManager) { + return; + } + mountingManager->onSurfaceStart(surfaceHandler.getSurfaceId()); } void Binding::unregisterSurface(SurfaceHandlerBinding *surfaceHandlerBinding) { + auto const &surfaceHandler = surfaceHandlerBinding->getSurfaceHandler(); auto scheduler = getScheduler(); - scheduler->unregisterSurface(surfaceHandlerBinding->getSurfaceHandler()); + if (!scheduler) { + LOG(ERROR) << "Binding::unregisterSurface: scheduler disappeared"; + return; + } + scheduler->unregisterSurface(surfaceHandler); + + auto mountingManager = + verifyMountingManager("FabricUIManagerBinding::unregisterSurface"); + if (!mountingManager) { + return; + } + mountingManager->onSurfaceStop(surfaceHandler.getSurfaceId()); } void Binding::setConstraints(