File tree 5 files changed +49
-0
lines changed
packages/react-native/ReactCommon/react/renderer
5 files changed +49
-0
lines changed Original file line number Diff line number Diff line change @@ -326,6 +326,16 @@ void Scheduler::uiManagerShouldSynchronouslyUpdateViewOnUIThread(
326
326
}
327
327
}
328
328
329
+ void Scheduler::uiManagerShouldAddEventListener (
330
+ std::shared_ptr<const EventListener> listener) {
331
+ addEventListener (listener);
332
+ }
333
+
334
+ void Scheduler::uiManagerShouldRemoveEventListener (
335
+ const std::shared_ptr<const EventListener>& listener) {
336
+ removeEventListener (listener);
337
+ }
338
+
329
339
void Scheduler::reportMount (SurfaceId surfaceId) const {
330
340
uiManager_->reportMount (surfaceId);
331
341
}
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) final ;
102
+ void uiManagerShouldRemoveEventListener (
103
+ const std::shared_ptr<const EventListener>& listener) final ;
100
104
101
105
#pragma mark - ContextContainer
102
106
ContextContainer::Shared getContextContainer () const ;
Original file line number Diff line number Diff line change @@ -681,4 +681,20 @@ void UIManager::synchronouslyUpdateViewOnUIThread(
681
681
}
682
682
}
683
683
684
+ #pragma mark - Add & Remove event listener
685
+
686
+ void UIManager::addEventListener (
687
+ std::shared_ptr<const EventListener> listener) {
688
+ if (delegate_ != nullptr ) {
689
+ delegate_->uiManagerShouldAddEventListener (listener);
690
+ }
691
+ }
692
+
693
+ void UIManager::removeEventListener (
694
+ const std::shared_ptr<const EventListener>& listener) {
695
+ if (delegate_ != nullptr ) {
696
+ delegate_->uiManagerShouldRemoveEventListener (listener);
697
+ }
698
+ }
699
+
684
700
} // namespace facebook::react
Original file line number Diff line number Diff line change @@ -205,6 +205,13 @@ class UIManager final : public ShadowTreeDelegate {
205
205
void updateShadowTree (
206
206
const std::unordered_map<Tag, folly::dynamic>& tagToProps);
207
207
208
+ #pragma mark - Add & Remove event listener
209
+
210
+ void addEventListener (std::shared_ptr<const EventListener> listener);
211
+
212
+ void removeEventListener (
213
+ const std::shared_ptr<const EventListener>& listener);
214
+
208
215
private:
209
216
friend class UIManagerBinding ;
210
217
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