From 5d2f77553c0104c9ea9d273e6b8890a634da14e1 Mon Sep 17 00:00:00 2001 From: Joshua Gross Date: Thu, 28 Jan 2021 14:01:07 -0800 Subject: [PATCH] Support RCTModernEventEmitter+RCTEventEmitter in DrawerClosedEvent, DrawerOpenedEvent, DrawerSlideEvent, DrawerStateChangedEvent Event classes Summary: Support RCTModernEventEmitter +RCTEventEmitter in an Event class(es). This improves perf in Fabric. Migrate any constructor callsites to the new constructor and deprecate the previous one. Changelog: [Internal] Reviewed By: mdvacca Differential Revision: D26043861 fbshipit-source-id: 37757508c835cbd1181f0e0e774abc62fdbfee2b --- .../drawer/ReactDrawerLayoutManager.java | 16 ++++++++++++---- .../drawer/events/DrawerClosedEvent.java | 19 ++++++++++++------- .../drawer/events/DrawerOpenedEvent.java | 19 ++++++++++++------- .../views/drawer/events/DrawerSlideEvent.java | 14 +++++++------- .../events/DrawerStateChangedEvent.java | 14 +++++++------- 5 files changed, 50 insertions(+), 32 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java index 38e79af50c7..b3d9cc11bcd 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java @@ -253,22 +253,30 @@ public class ReactDrawerLayoutManager extends ViewGroupManager { public static final String EVENT_NAME = "topDrawerClose"; + @Deprecated public DrawerClosedEvent(int viewId) { - super(viewId); + this(-1, viewId); + } + + public DrawerClosedEvent(int surfaceId, int viewId) { + super(surfaceId, viewId); } @Override @@ -24,14 +29,14 @@ public class DrawerClosedEvent extends Event { return EVENT_NAME; } + @Override + protected WritableMap getEventData() { + return Arguments.createMap(); + } + @Override public short getCoalescingKey() { // All events for a given view can be coalesced. return 0; } - - @Override - public void dispatch(RCTEventEmitter rctEventEmitter) { - rctEventEmitter.receiveEvent(getViewTag(), getEventName(), Arguments.createMap()); - } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java index 2e754dc5207..35adbe6b71b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerOpenedEvent.java @@ -8,15 +8,20 @@ package com.facebook.react.views.drawer.events; import com.facebook.react.bridge.Arguments; +import com.facebook.react.bridge.WritableMap; import com.facebook.react.uimanager.events.Event; -import com.facebook.react.uimanager.events.RCTEventEmitter; public class DrawerOpenedEvent extends Event { public static final String EVENT_NAME = "topDrawerOpen"; + @Deprecated public DrawerOpenedEvent(int viewId) { - super(viewId); + this(-1, viewId); + } + + public DrawerOpenedEvent(int surfaceId, int viewId) { + super(surfaceId, viewId); } @Override @@ -24,14 +29,14 @@ public class DrawerOpenedEvent extends Event { return EVENT_NAME; } + @Override + protected WritableMap getEventData() { + return Arguments.createMap(); + } + @Override public short getCoalescingKey() { // All events for a given view can be coalesced. return 0; } - - @Override - public void dispatch(RCTEventEmitter rctEventEmitter) { - rctEventEmitter.receiveEvent(getViewTag(), getEventName(), Arguments.createMap()); - } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java index 7d3a0af18dd..d8dda5c560a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerSlideEvent.java @@ -10,7 +10,6 @@ package com.facebook.react.views.drawer.events; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.WritableMap; import com.facebook.react.uimanager.events.Event; -import com.facebook.react.uimanager.events.RCTEventEmitter; /** Event emitted by a DrawerLayout as it is being moved open/closed. */ public class DrawerSlideEvent extends Event { @@ -19,8 +18,13 @@ public class DrawerSlideEvent extends Event { private final float mOffset; + @Deprecated public DrawerSlideEvent(int viewId, float offset) { - super(viewId); + this(-1, viewId, offset); + } + + public DrawerSlideEvent(int surfaceId, int viewId, float offset) { + super(surfaceId, viewId); mOffset = offset; } @@ -40,11 +44,7 @@ public class DrawerSlideEvent extends Event { } @Override - public void dispatch(RCTEventEmitter rctEventEmitter) { - rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData()); - } - - private WritableMap serializeEventData() { + protected WritableMap getEventData() { WritableMap eventData = Arguments.createMap(); eventData.putDouble("offset", getOffset()); return eventData; diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java index 009217934d3..abdb8a38a76 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/events/DrawerStateChangedEvent.java @@ -10,7 +10,6 @@ package com.facebook.react.views.drawer.events; import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.WritableMap; import com.facebook.react.uimanager.events.Event; -import com.facebook.react.uimanager.events.RCTEventEmitter; public class DrawerStateChangedEvent extends Event { @@ -18,8 +17,13 @@ public class DrawerStateChangedEvent extends Event { private final int mDrawerState; + @Deprecated public DrawerStateChangedEvent(int viewId, int drawerState) { - super(viewId); + this(-1, viewId, drawerState); + } + + public DrawerStateChangedEvent(int surfaceId, int viewId, int drawerState) { + super(surfaceId, viewId); mDrawerState = drawerState; } @@ -39,11 +43,7 @@ public class DrawerStateChangedEvent extends Event { } @Override - public void dispatch(RCTEventEmitter rctEventEmitter) { - rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData()); - } - - private WritableMap serializeEventData() { + protected WritableMap getEventData() { WritableMap eventData = Arguments.createMap(); eventData.putDouble("drawerState", getDrawerState()); return eventData;