Support RCTModernEventEmitter+RCTEventEmitter in ScrollEvent Event class

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: PeteTheHeat, mdvacca

Differential Revision: D26056720

fbshipit-source-id: f36a6caf4e748c915b66f66fd9b4cad6826ecacf
This commit is contained in:
Joshua Gross 2021-01-28 14:01:07 -08:00 коммит произвёл Facebook GitHub Bot
Родитель 583d6229c6
Коммит 1575e7ffe3
1 изменённых файлов: 28 добавлений и 13 удалений

Просмотреть файл

@ -14,8 +14,6 @@ import com.facebook.react.bridge.Arguments;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.uimanager.PixelUtil;
import com.facebook.react.uimanager.events.Event;
import com.facebook.react.uimanager.events.RCTEventEmitter;
import com.facebook.react.uimanager.events.RCTModernEventEmitter;
/** A event dispatched from a ScrollView scrolling. */
public class ScrollEvent extends Event<ScrollEvent> {
@ -33,6 +31,32 @@ public class ScrollEvent extends Event<ScrollEvent> {
private int mScrollViewHeight;
private @Nullable ScrollEventType mScrollEventType;
@Deprecated
public static ScrollEvent obtain(
int viewTag,
ScrollEventType scrollEventType,
int scrollX,
int scrollY,
float xVelocity,
float yVelocity,
int contentWidth,
int contentHeight,
int scrollViewWidth,
int scrollViewHeight) {
return obtain(
-1,
viewTag,
scrollEventType,
scrollX,
scrollY,
xVelocity,
yVelocity,
contentWidth,
contentHeight,
scrollViewWidth,
scrollViewHeight);
}
public static ScrollEvent obtain(
int surfaceId,
int viewTag,
@ -115,18 +139,9 @@ public class ScrollEvent extends Event<ScrollEvent> {
return false;
}
@Nullable
@Override
public void dispatch(RCTEventEmitter rctEventEmitter) {
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData());
}
@Override
public void dispatchModern(RCTModernEventEmitter rctEventEmitter) {
rctEventEmitter.receiveEvent(
getSurfaceId(), getViewTag(), getEventName(), serializeEventData());
}
private WritableMap serializeEventData() {
protected WritableMap getEventData() {
WritableMap contentInset = Arguments.createMap();
contentInset.putDouble("top", 0);
contentInset.putDouble("bottom", 0);