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
This commit is contained in:
Joshua Gross
2021-01-28 14:07:26 -08:00
committed by Facebook GitHub Bot
parent 46df827c7e
commit 5d2f77553c
5 changed files with 50 additions and 32 deletions
@@ -253,22 +253,30 @@ public class ReactDrawerLayoutManager extends ViewGroupManager<ReactDrawerLayout
@Override
public void onDrawerSlide(@NonNull View view, float v) {
mEventDispatcher.dispatchEvent(new DrawerSlideEvent(mDrawerLayout.getId(), v));
mEventDispatcher.dispatchEvent(
new DrawerSlideEvent(
UIManagerHelper.getSurfaceId(mDrawerLayout), mDrawerLayout.getId(), v));
}
@Override
public void onDrawerOpened(@NonNull View view) {
mEventDispatcher.dispatchEvent(new DrawerOpenedEvent(mDrawerLayout.getId()));
mEventDispatcher.dispatchEvent(
new DrawerOpenedEvent(
UIManagerHelper.getSurfaceId(mDrawerLayout), mDrawerLayout.getId()));
}
@Override
public void onDrawerClosed(@NonNull View view) {
mEventDispatcher.dispatchEvent(new DrawerClosedEvent(mDrawerLayout.getId()));
mEventDispatcher.dispatchEvent(
new DrawerClosedEvent(
UIManagerHelper.getSurfaceId(mDrawerLayout), mDrawerLayout.getId()));
}
@Override
public void onDrawerStateChanged(int i) {
mEventDispatcher.dispatchEvent(new DrawerStateChangedEvent(mDrawerLayout.getId(), i));
mEventDispatcher.dispatchEvent(
new DrawerStateChangedEvent(
UIManagerHelper.getSurfaceId(mDrawerLayout), mDrawerLayout.getId(), i));
}
}
}
@@ -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 DrawerClosedEvent extends Event<DrawerClosedEvent> {
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<DrawerClosedEvent> {
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());
}
}
@@ -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<DrawerOpenedEvent> {
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<DrawerOpenedEvent> {
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());
}
}
@@ -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<DrawerSlideEvent> {
@@ -19,8 +18,13 @@ public class DrawerSlideEvent extends Event<DrawerSlideEvent> {
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<DrawerSlideEvent> {
}
@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;
@@ -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<DrawerStateChangedEvent> {
@@ -18,8 +17,13 @@ public class DrawerStateChangedEvent extends Event<DrawerStateChangedEvent> {
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<DrawerStateChangedEvent> {
}
@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;