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:
Родитель
583d6229c6
Коммит
1575e7ffe3
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче