diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java index 33320bb0ccc..558b946067c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/modal/ReactModalHostManager.java @@ -104,7 +104,8 @@ public class ReactModalHostManager extends ViewGroupManager public void setIdentifier(ReactModalHostView view, int value) {} @Override - protected void addEventEmitters(ThemedReactContext reactContext, final ReactModalHostView view) { + protected void addEventEmitters( + final ThemedReactContext reactContext, final ReactModalHostView view) { final EventDispatcher dispatcher = UIManagerHelper.getEventDispatcherForReactTag(reactContext, view.getId()); if (dispatcher != null) { @@ -112,7 +113,8 @@ public class ReactModalHostManager extends ViewGroupManager new ReactModalHostView.OnRequestCloseListener() { @Override public void onRequestClose(DialogInterface dialog) { - dispatcher.dispatchEvent(new RequestCloseEvent(view.getId())); + dispatcher.dispatchEvent( + new RequestCloseEvent(UIManagerHelper.getSurfaceId(reactContext), view.getId())); } }); view.setOnShowListener( diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java b/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java index ba01778ed67..aa8ed464e57 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/modal/RequestCloseEvent.java @@ -7,16 +7,23 @@ package com.facebook.react.views.modal; +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; /** {@link Event} for dismissing a Dialog. */ /* package */ class RequestCloseEvent extends Event { public static final String EVENT_NAME = "topRequestClose"; + @Deprecated protected RequestCloseEvent(int viewTag) { - super(viewTag); + this(-1, viewTag); + } + + protected RequestCloseEvent(int surfaceId, int viewTag) { + super(surfaceId, viewTag); } @Override @@ -24,8 +31,9 @@ import com.facebook.react.uimanager.events.RCTEventEmitter; return EVENT_NAME; } + @Nullable @Override - public void dispatch(RCTEventEmitter rctEventEmitter) { - rctEventEmitter.receiveEvent(getViewTag(), getEventName(), null); + protected WritableMap getEventData() { + return Arguments.createMap(); } }