File tree Expand file tree Collapse file tree 5 files changed +49
-0
lines changed
packages/react-native/ReactCommon/react/renderer Expand file tree Collapse file tree 5 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -328,6 +328,16 @@ void Scheduler::uiManagerShouldSynchronouslyUpdateViewOnUIThread(
328
328
}
329
329
}
330
330
331
+ void Scheduler::uiManagerShouldAddEventListener (
332
+ std::shared_ptr<const EventListener> listener) {
333
+ addEventListener (listener);
334
+ }
335
+
336
+ void Scheduler::uiManagerShouldRemoveEventListener (
337
+ const std::shared_ptr<const EventListener>& listener) {
338
+ removeEventListener (listener);
339
+ }
340
+
331
341
void Scheduler::reportMount (SurfaceId surfaceId) const {
332
342
uiManager_->reportMount (surfaceId);
333
343
}
Original file line number Diff line number Diff line change @@ -97,6 +97,10 @@ class Scheduler final : public UIManagerDelegate {
97
97
void uiManagerShouldSynchronouslyUpdateViewOnUIThread (
98
98
Tag tag,
99
99
const folly::dynamic& props) override ;
100
+ void uiManagerShouldAddEventListener (
101
+ std::shared_ptr<const EventListener> listener) override final ;
102
+ void uiManagerShouldRemoveEventListener (
103
+ const std::shared_ptr<const EventListener>& listener) override final ;
100
104
101
105
#pragma mark - ContextContainer
102
106
ContextContainer::Shared getContextContainer () const ;
Original file line number Diff line number Diff line change @@ -698,4 +698,20 @@ void UIManager::synchronouslyUpdateViewOnUIThread(
698
698
}
699
699
}
700
700
701
+ #pragma mark - Add & Remove event listener
702
+
703
+ void UIManager::addEventListener (
704
+ std::shared_ptr<const EventListener> listener) {
705
+ if (delegate_ != nullptr ) {
706
+ delegate_->uiManagerShouldAddEventListener (listener);
707
+ }
708
+ }
709
+
710
+ void UIManager::removeEventListener (
711
+ const std::shared_ptr<const EventListener>& listener) {
712
+ if (delegate_ != nullptr ) {
713
+ delegate_->uiManagerShouldRemoveEventListener (listener);
714
+ }
715
+ }
716
+
701
717
} // namespace facebook::react
Original file line number Diff line number Diff line change @@ -206,6 +206,13 @@ class UIManager final : public ShadowTreeDelegate {
206
206
void updateShadowTree (
207
207
const std::unordered_map<Tag, folly::dynamic>& tagToProps);
208
208
209
+ #pragma mark - Add & Remove event listener
210
+
211
+ void addEventListener (std::shared_ptr<const EventListener> listener);
212
+
213
+ void removeEventListener (
214
+ const std::shared_ptr<const EventListener>& listener);
215
+
209
216
private:
210
217
friend class UIManagerBinding ;
211
218
friend class Scheduler ;
Original file line number Diff line number Diff line change @@ -65,6 +65,18 @@ class UIManagerDelegate {
65
65
Tag tag,
66
66
const folly::dynamic& props) = 0;
67
67
68
+ /*
69
+ * Add event listener.
70
+ */
71
+ virtual void uiManagerShouldAddEventListener (
72
+ std::shared_ptr<const EventListener> listener) = 0;
73
+
74
+ /*
75
+ * Remove event listener.
76
+ */
77
+ virtual void uiManagerShouldRemoveEventListener (
78
+ const std::shared_ptr<const EventListener>& listener) = 0;
79
+
68
80
virtual ~UIManagerDelegate () noexcept = default ;
69
81
};
70
82
You can’t perform that action at this time.
0 commit comments