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