mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Migrate usages of RCTEventEmitter.class to EventDispatcher
Summary: This diff migrates usages of RCTEventEmitter.class to EventDispatcher.dispatchEvent. RCTEventEmitter is not compatible with Fabric, now we need to use EventDispatcher.dispatchEvent instead. changelog: [Internal] Reviewed By: JoshuaGross Differential Revision: D21982549 fbshipit-source-id: 9ea2d9a00f063a03c2e401fc1e328ce26bcf48df
This commit is contained in:
committed by
Facebook GitHub Bot
parent
a0baba654e
commit
95154a6b8b
+22
-3
@@ -31,7 +31,10 @@ import com.facebook.react.bridge.ReadableArray;
|
||||
import com.facebook.react.bridge.ReadableMap;
|
||||
import com.facebook.react.bridge.ReadableMapKeySetIterator;
|
||||
import com.facebook.react.bridge.ReadableType;
|
||||
import com.facebook.react.bridge.UIManager;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.uimanager.events.Event;
|
||||
import com.facebook.react.uimanager.events.EventDispatcher;
|
||||
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
import java.util.HashMap;
|
||||
|
||||
@@ -42,6 +45,7 @@ import java.util.HashMap;
|
||||
public class ReactAccessibilityDelegate extends AccessibilityDelegateCompat {
|
||||
|
||||
private static final String TAG = "ReactAccessibilityDelegate";
|
||||
public static final String TOP_ACCESSIBILITY_ACTION_EVENT = "topAccessibilityAction";
|
||||
private static int sCounter = 0x3f000000;
|
||||
private static final int TIMEOUT_SEND_ACCESSIBILITY_EVENT = 200;
|
||||
private static final int SEND_EVENT = 1;
|
||||
@@ -281,9 +285,24 @@ public class ReactAccessibilityDelegate extends AccessibilityDelegateCompat {
|
||||
event.putString("actionName", mAccessibilityActionsMap.get(action));
|
||||
ReactContext reactContext = (ReactContext) host.getContext();
|
||||
if (reactContext.hasActiveCatalystInstance()) {
|
||||
reactContext
|
||||
.getJSModule(RCTEventEmitter.class)
|
||||
.receiveEvent(host.getId(), "topAccessibilityAction", event);
|
||||
final int reactTag = host.getId();
|
||||
UIManager uiManager = UIManagerHelper.getUIManager(reactContext, reactTag);
|
||||
if (uiManager != null) {
|
||||
uiManager
|
||||
.<EventDispatcher>getEventDispatcher()
|
||||
.dispatchEvent(
|
||||
new Event(reactTag) {
|
||||
@Override
|
||||
public String getEventName() {
|
||||
return TOP_ACCESSIBILITY_ACTION_EVENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
||||
rctEventEmitter.receiveEvent(reactTag, TOP_ACCESSIBILITY_ACTION_EVENT, event);
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
ReactSoftException.logSoftException(
|
||||
TAG, new ReactNoCrashSoftException("Cannot get RCTEventEmitter, no CatalystInstance"));
|
||||
|
||||
Reference in New Issue
Block a user