diff --git a/React/Fabric/RCTSurfacePresenter.h b/React/Fabric/RCTSurfacePresenter.h index 746af8a2810..9e19318359d 100644 --- a/React/Fabric/RCTSurfacePresenter.h +++ b/React/Fabric/RCTSurfacePresenter.h @@ -27,6 +27,12 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithBridge:(RCTBridge *)bridge; +/* + * Deprecated. Do not use. + */ +@property (nonatomic) std::function uiManagerInstaller; +@property (nonatomic) std::function uiManagerUninstaller; + @end @interface RCTSurfacePresenter (Surface) @@ -60,9 +66,6 @@ NS_ASSUME_NONNULL_BEGIN @interface RCTSurfacePresenter (Deprecated) -@property (nonatomic) std::function uiManagerInstaller; -@property (nonatomic) std::function uiManagerUninstaller; - /** * We need to expose `uiManager` for registration * purposes. Eventually, we will move this down to C++ side. diff --git a/React/Fabric/RCTSurfacePresenter.mm b/React/Fabric/RCTSurfacePresenter.mm index e164998f39c..977cfbbae67 100644 --- a/React/Fabric/RCTSurfacePresenter.mm +++ b/React/Fabric/RCTSurfacePresenter.mm @@ -43,7 +43,6 @@ using namespace facebook::react; RCTBridge *_bridge; RCTBridge *_batchedBridge; RCTSurfaceRegistry *_surfaceRegistry; - SharedContextContainer _contextContainer; } - (instancetype)initWithBridge:(RCTBridge *)bridge @@ -52,26 +51,6 @@ using namespace facebook::react; _bridge = bridge; _batchedBridge = [_bridge batchedBridge] ?: _bridge; - auto contextContainer = std::make_shared(); - - auto messageQueueThread = _batchedBridge.jsMessageThread; - - EventBeatFactory synchronousBeatFactory = [messageQueueThread]() { - return std::make_unique(messageQueueThread); - }; - - EventBeatFactory asynchronousBeatFactory = [messageQueueThread]() { - return std::make_unique(messageQueueThread); - }; - - contextContainer->registerInstance(synchronousBeatFactory, "synchronous"); - contextContainer->registerInstance(asynchronousBeatFactory, "asynchronous"); - - void *imageLoader = (__bridge void *)[[RCTBridge currentBridge] imageLoader]; - contextContainer->registerInstance(std::make_shared(imageLoader)); - - _contextContainer = contextContainer; - _surfaceRegistry = [[RCTSurfaceRegistry alloc] init]; _mountingManager = [[RCTMountingManager alloc] init]; @@ -101,7 +80,27 @@ using namespace facebook::react; return; } - _scheduler = [[RCTScheduler alloc] initWithContextContainer:_contextContainer]; + auto contextContainer = std::make_shared(); + + auto messageQueueThread = _batchedBridge.jsMessageThread; + + EventBeatFactory synchronousBeatFactory = [messageQueueThread]() { + return std::make_unique(messageQueueThread); + }; + + EventBeatFactory asynchronousBeatFactory = [messageQueueThread]() { + return std::make_unique(messageQueueThread); + }; + + contextContainer->registerInstance(synchronousBeatFactory, "synchronous"); + contextContainer->registerInstance(asynchronousBeatFactory, "asynchronous"); + + contextContainer->registerInstance(_uiManagerInstaller, "uimanager-installer"); + contextContainer->registerInstance(_uiManagerUninstaller, "uimanager-uninstaller"); + + contextContainer->registerInstance(std::make_shared((__bridge void *)[_bridge imageLoader])); + + _scheduler = [[RCTScheduler alloc] initWithContextContainer:contextContainer]; _scheduler.delegate = self; } @@ -294,26 +293,6 @@ using namespace facebook::react; return _bridge; } -- (void)setUiManagerInstaller:(std::function)uiManagerInstaller -{ - _contextContainer->registerInstance(uiManagerInstaller, "uimanager-installer"); -} - -- (std::function)uiManagerInstaller -{ - return _contextContainer->getInstance>("uimanager-installer"); -} - -- (void)setUiManagerUninstaller:(std::function)uiManagerUninstaller -{ - _contextContainer->registerInstance(uiManagerUninstaller, "uimanager-uninstaller"); -} - -- (std::function)uiManagerUninstaller -{ - return _contextContainer->getInstance>("uimanager-uninstaller"); -} - @end @implementation RCTBridge (RCTSurfacePresenter)