Support RCTModernEventEmitter+RCTEventEmitter in ReactSlidingCompleteEvent 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: D26056808

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

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

@ -118,6 +118,7 @@ public class ReactSliderManager extends SimpleViewManager<ReactSlider>
if (eventDispatcher != null) {
eventDispatcher.dispatchEvent(
new ReactSlidingCompleteEvent(
UIManagerHelper.getSurfaceId(seekbar),
seekbar.getId(),
((ReactSlider) seekbar).toRealProgress(seekbar.getProgress())));
}

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

@ -7,10 +7,10 @@
package com.facebook.react.views.slider;
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;
/** Event emitted when the user finishes dragging the slider. */
public class ReactSlidingCompleteEvent extends Event<ReactSlidingCompleteEvent> {
@ -19,8 +19,13 @@ public class ReactSlidingCompleteEvent extends Event<ReactSlidingCompleteEvent>
private final double mValue;
@Deprecated
public ReactSlidingCompleteEvent(int viewId, double value) {
super(viewId);
this(-1, viewId, value);
}
public ReactSlidingCompleteEvent(int surfaceId, int viewId, double value) {
super(surfaceId, viewId);
mValue = value;
}
@ -33,6 +38,15 @@ public class ReactSlidingCompleteEvent extends Event<ReactSlidingCompleteEvent>
return EVENT_NAME;
}
@Nullable
@Override
protected WritableMap getEventData() {
WritableMap eventData = Arguments.createMap();
eventData.putInt("target", getViewTag());
eventData.putDouble("value", getValue());
return eventData;
}
@Override
public short getCoalescingKey() {
return 0;
@ -42,16 +56,4 @@ public class ReactSlidingCompleteEvent extends Event<ReactSlidingCompleteEvent>
public boolean canCoalesce() {
return false;
}
@Override
public void dispatch(RCTEventEmitter rctEventEmitter) {
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), serializeEventData());
}
private WritableMap serializeEventData() {
WritableMap eventData = Arguments.createMap();
eventData.putInt("target", getViewTag());
eventData.putDouble("value", getValue());
return eventData;
}
}