Support RCTModernEventEmitter+RCTEventEmitter in PickerItemSelectEvent 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: D26056813

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

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

@ -91,7 +91,9 @@ public abstract class ReactPickerManager extends SimpleViewManager<ReactPicker>
@Override
public void onItemSelected(int position) {
mEventDispatcher.dispatchEvent(new PickerItemSelectEvent(mReactPicker.getId(), position));
mEventDispatcher.dispatchEvent(
new PickerItemSelectEvent(
UIManagerHelper.getSurfaceId(mReactPicker), mReactPicker.getId(), position));
}
}
}

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

@ -7,18 +7,23 @@
package com.facebook.react.views.picker.events;
import androidx.annotation.Nullable;
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 PickerItemSelectEvent extends Event<PickerItemSelectEvent> {
public static final String EVENT_NAME = "topSelect";
private final int mPosition;
public PickerItemSelectEvent(int id, int position) {
super(id);
@Deprecated
public PickerItemSelectEvent(int reactTag, int position) {
this(-1, reactTag, position);
}
public PickerItemSelectEvent(int surfaceId, int reactTag, int position) {
super(surfaceId, reactTag);
mPosition = position;
}
@ -27,12 +32,9 @@ public class PickerItemSelectEvent extends Event<PickerItemSelectEvent> {
return EVENT_NAME;
}
@Nullable
@Override
public void dispatch(RCTEventEmitter rctEventEmitter) {
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData());
}
private WritableMap serializeEventData() {
protected WritableMap getEventData() {
WritableMap eventData = Arguments.createMap();
eventData.putInt("position", mPosition);
return eventData;