Manual: Migrate from bridge.eventDispatcher to RCTModuleRegistry

Summary:
This is an extension of D25449795. I searched for all usages of .eventDispatcher within NativeModules, and migrated them all to the Venice-compatible RCTModuleRegistry API.

Changelog: [Internal]

Reviewed By: PeteTheHeat

Differential Revision: D25473844

fbshipit-source-id: 2b8deec236e019f3adfb59fadd745c249ff822f4
This commit is contained in:
Ramanpreet Nara 2020-12-11 10:39:18 -08:00 коммит произвёл Facebook GitHub Bot
Родитель 74fd6fb1da
Коммит 1f883192ec
5 изменённых файлов: 21 добавлений и 8 удалений

Просмотреть файл

@ -48,7 +48,7 @@ RCT_EXPORT_MODULE();
{
[super invalidate];
[_nodesManager stopAnimationLoop];
[self.bridge.eventDispatcher removeDispatchObserver:self];
[[self.moduleRegistry moduleForName:"EventDispatcher"] removeDispatchObserver:self];
[self.bridge.uiManager.observerCoordinator removeObserver:self];
[self.bridge.surfacePresenter removeObserver:self];
}
@ -65,11 +65,16 @@ RCT_EXPORT_MODULE();
{
[super setBridge:bridge];
_nodesManager = [[RCTNativeAnimatedNodesManager alloc] initWithBridge:self.bridge surfacePresenter:bridge.surfacePresenter];
[bridge.eventDispatcher addDispatchObserver:self];
[bridge.uiManager.observerCoordinator addObserver:self];
[bridge.surfacePresenter addObserver:self];
}
- (void)setModuleRegistry:(RCTModuleRegistry *)moduleRegistry
{
[super setModuleRegistry:moduleRegistry];
[[moduleRegistry moduleForName:"EventDispatcher"] addDispatchObserver:self];
}
/*
* This selector should only be invoked in bridgeless mode, which is not compatible with this non turbo module.
*/

Просмотреть файл

@ -49,7 +49,7 @@ RCT_EXPORT_MODULE();
{
[super invalidate];
[_nodesManager stopAnimationLoop];
[self.bridge.eventDispatcher removeDispatchObserver:self];
[[self.moduleRegistry moduleForName:"EventDispatcher"] removeDispatchObserver:self];
[self.bridge.uiManager.observerCoordinator removeObserver:self];
[_surfacePresenter removeObserver:self];
}
@ -67,11 +67,16 @@ RCT_EXPORT_MODULE();
[super setBridge:bridge];
_surfacePresenter = bridge.surfacePresenter;
_nodesManager = [[RCTNativeAnimatedNodesManager alloc] initWithBridge:self.bridge surfacePresenter:_surfacePresenter];
[bridge.eventDispatcher addDispatchObserver:self];
[bridge.uiManager.observerCoordinator addObserver:self];
[_surfacePresenter addObserver:self];
}
- (void)setModuleRegistry:(RCTModuleRegistry *)moduleRegistry
{
[super setModuleRegistry:moduleRegistry];
[[moduleRegistry moduleForName:"EventDispatcher"] addDispatchObserver:self];
}
/*
* In bridgeless mode, `setBridge` is never called during initializtion. Instead this selector is invoked via
* BridgelessTurboModuleSetup.

Просмотреть файл

@ -350,7 +350,7 @@ RCT_EXPORT_METHOD(toggleElementInspector)
if (_isJSLoaded) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[self.bridge.eventDispatcher sendDeviceEventWithName:@"toggleElementInspector" body:nil];
[[self.moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"toggleElementInspector" body:nil];
#pragma clang diagnostic pop
}
}
@ -463,7 +463,7 @@ RCT_EXPORT_METHOD(addMenuItem : (NSString *)title)
if ([self isElementInspectorShown]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[self.bridge.eventDispatcher sendDeviceEventWithName:@"toggleElementInspector" body:nil];
[[self.moduleRegistry moduleForName:"EventDispatcher"] sendDeviceEventWithName:@"toggleElementInspector" body:nil];
#pragma clang diagnostic pop
}
});

Просмотреть файл

@ -152,12 +152,14 @@ static NSDictionary *RCTExportedDimensions(RCTBridge *bridge, id<RCTTurboModuleR
- (void)didReceiveNewContentSizeMultiplier
{
RCTBridge *bridge = _bridge;
RCTModuleRegistry *moduleRegistry = _moduleRegistry;
RCTExecuteOnMainQueue(^{
// Report the event across the bridge.
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
[bridge.eventDispatcher sendDeviceEventWithName:@"didUpdateDimensions"
body:RCTExportedDimensions(bridge, self->_turboModuleRegistry)];
[[moduleRegistry moduleForName:"EventDispatcher"]
sendDeviceEventWithName:@"didUpdateDimensions"
body:RCTExportedDimensions(bridge, self->_turboModuleRegistry)];
#pragma clang diagnostic pop
});
}

Просмотреть файл

@ -15,6 +15,7 @@
@interface RCTEventEmitter : NSObject <RCTBridgeModule, RCTJSInvokerModule, RCTInvalidating>
@property (nonatomic, weak) RCTBridge *bridge;
@property (nonatomic, weak) RCTModuleRegistry *moduleRegistry;
- (instancetype)initWithDisabledObservation;