Skip to content

Commit 614aa86

Browse files
cortinicofacebook-github-bot
authored andcommitted
Expose scheduler through RCTSurfacePresenter
Summary: Exposes event listener through iOS scheduler wrapper (`RCTScheduler`) and exposes scheduler itself through `RCTSurfacePresenter`. Changelog: [Changed] Exposed `RCTScheduler` to allow setting event listeners. Reviewed By: philIip Differential Revision: D35313398 fbshipit-source-id: 794179d47f407fee5692a98b13ac08f92e85a61c
1 parent 1730949 commit 614aa86

File tree

4 files changed

+22
-5
lines changed

4 files changed

+22
-5
lines changed

React/Fabric/RCTScheduler.h

+5
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
#import <react/renderer/componentregistry/ComponentDescriptorFactory.h>
1212
#import <react/renderer/core/ComponentDescriptor.h>
13+
#import <react/renderer/core/EventListener.h>
1314
#import <react/renderer/core/LayoutConstraints.h>
1415
#import <react/renderer/core/LayoutContext.h>
1516
#import <react/renderer/mounting/MountingCoordinator.h>
@@ -64,6 +65,10 @@ NS_ASSUME_NONNULL_BEGIN
6465

6566
- (void)animationTick;
6667

68+
- (void)addEventListener:(std::shared_ptr<facebook::react::EventListener> const &)listener;
69+
70+
- (void)removeEventListener:(std::shared_ptr<facebook::react::EventListener> const &)listener;
71+
6772
@end
6873

6974
NS_ASSUME_NONNULL_END

React/Fabric/RCTScheduler.mm

+10
Original file line numberDiff line numberDiff line change
@@ -193,4 +193,14 @@ - (void)onAllAnimationsComplete
193193
}
194194
}
195195

196+
- (void)addEventListener:(std::shared_ptr<EventListener> const &)listener
197+
{
198+
return _scheduler->addEventListener(listener);
199+
}
200+
201+
- (void)removeEventListener:(std::shared_ptr<EventListener> const &)listener
202+
{
203+
return _scheduler->removeEventListener(listener);
204+
}
205+
196206
@end

React/Fabric/RCTSurfacePresenter.h

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ NS_ASSUME_NONNULL_BEGIN
1919
@class RCTFabricSurface;
2020
@class RCTImageLoader;
2121
@class RCTMountingManager;
22+
@class RCTScheduler;
2223

2324
/**
2425
* Coordinates presenting of React Native Surfaces and represents application
@@ -53,6 +54,7 @@ NS_ASSUME_NONNULL_BEGIN
5354
- (void)unregisterSurface:(RCTFabricSurface *)surface;
5455

5556
@property (readonly) RCTMountingManager *mountingManager;
57+
@property (readonly, nullable) RCTScheduler *scheduler;
5658

5759
/*
5860
* Allow callers to initialize a new fabric surface without adding Fabric as a Buck dependency.

React/Fabric/RCTSurfacePresenter.mm

+5-5
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ - (RCTMountingManager *)mountingManager
115115
return _mountingManager;
116116
}
117117

118-
- (RCTScheduler *_Nullable)_scheduler
118+
- (RCTScheduler *_Nullable)scheduler
119119
{
120120
std::lock_guard<std::mutex> lock(_schedulerAccessMutex);
121121
return _scheduler;
@@ -151,15 +151,15 @@ - (void)setRuntimeExecutor:(RuntimeExecutor)runtimeExecutor
151151
- (void)registerSurface:(RCTFabricSurface *)surface
152152
{
153153
[_surfaceRegistry registerSurface:surface];
154-
RCTScheduler *scheduler = [self _scheduler];
154+
RCTScheduler *scheduler = [self scheduler];
155155
if (scheduler) {
156156
[scheduler registerSurface:surface.surfaceHandler];
157157
}
158158
}
159159

160160
- (void)unregisterSurface:(RCTFabricSurface *)surface
161161
{
162-
RCTScheduler *scheduler = [self _scheduler];
162+
RCTScheduler *scheduler = [self scheduler];
163163
if (scheduler) {
164164
[scheduler unregisterSurface:surface.surfaceHandler];
165165
}
@@ -188,7 +188,7 @@ - (UIView *)findComponentViewWithTag_DO_NOT_USE_DEPRECATED:(NSInteger)tag
188188

189189
- (BOOL)synchronouslyUpdateViewOnUIThread:(NSNumber *)reactTag props:(NSDictionary *)props
190190
{
191-
RCTScheduler *scheduler = [self _scheduler];
191+
RCTScheduler *scheduler = [self scheduler];
192192
if (!scheduler) {
193193
return NO;
194194
}
@@ -212,7 +212,7 @@ - (BOOL)synchronouslyUpdateViewOnUIThread:(NSNumber *)reactTag props:(NSDictiona
212212

213213
- (void)setupAnimationDriverWithSurfaceHandler:(facebook::react::SurfaceHandler const &)surfaceHandler
214214
{
215-
[[self _scheduler] setupAnimationDriver:surfaceHandler];
215+
[[self scheduler] setupAnimationDriver:surfaceHandler];
216216
}
217217

218218
- (BOOL)suspend

0 commit comments

Comments
 (0)