diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java index 44596513318..1edee99465d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/BaseViewManager.java @@ -429,9 +429,17 @@ public abstract class BaseViewManager getExportedCustomDirectEventTypeConstants() { - return MapBuilder.builder() - .put("topAccessibilityAction", MapBuilder.of("registrationName", "onAccessibilityAction")) - .build(); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.builder() + .put( + "topAccessibilityAction", + MapBuilder.of("registrationName", "onAccessibilityAction")) + .build()); + return eventTypeConstants; } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java index 218cf10436f..67066aa5299 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/drawer/ReactDrawerLayoutManager.java @@ -31,6 +31,7 @@ import com.facebook.react.views.drawer.events.DrawerClosedEvent; import com.facebook.react.views.drawer.events.DrawerOpenedEvent; import com.facebook.react.views.drawer.events.DrawerSlideEvent; import com.facebook.react.views.drawer.events.DrawerStateChangedEvent; +import java.util.HashMap; import java.util.Map; /** View Manager for {@link ReactDrawerLayout} components. */ @@ -210,12 +211,18 @@ public class ReactDrawerLayoutManager extends ViewGroupManager baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.of( + DrawerSlideEvent.EVENT_NAME, MapBuilder.of("registrationName", "onDrawerSlide"), + DrawerOpenedEvent.EVENT_NAME, MapBuilder.of("registrationName", "onDrawerOpen"), + DrawerClosedEvent.EVENT_NAME, MapBuilder.of("registrationName", "onDrawerClose"), + DrawerStateChangedEvent.EVENT_NAME, + MapBuilder.of("registrationName", "onDrawerStateChanged"))); + return eventTypeConstants; } /** diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java index 3cef2275af8..187958c6ee4 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/image/ReactImageManager.java @@ -24,6 +24,7 @@ import com.facebook.react.uimanager.ViewProps; import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.annotations.ReactPropGroup; import com.facebook.yoga.YogaConstants; +import java.util.HashMap; import java.util.Map; @ReactModule(name = ReactImageManager.REACT_CLASS) @@ -245,17 +246,23 @@ public class ReactImageManager extends SimpleViewManager { @Override public @Nullable Map getExportedCustomDirectEventTypeConstants() { - return MapBuilder.of( - ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD_START), - MapBuilder.of("registrationName", "onLoadStart"), - ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_PROGRESS), - MapBuilder.of("registrationName", "onProgress"), - ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD), - MapBuilder.of("registrationName", "onLoad"), - ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_ERROR), - MapBuilder.of("registrationName", "onError"), - ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD_END), - MapBuilder.of("registrationName", "onLoadEnd")); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.of( + ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD_START), + MapBuilder.of("registrationName", "onLoadStart"), + ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_PROGRESS), + MapBuilder.of("registrationName", "onProgress"), + ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD), + MapBuilder.of("registrationName", "onLoad"), + ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_ERROR), + MapBuilder.of("registrationName", "onError"), + ImageLoadEvent.eventNameForType(ImageLoadEvent.ON_LOAD_END), + MapBuilder.of("registrationName", "onLoadEnd"))); + return eventTypeConstants; } @Override 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 cff999c6a88..9a6e1c033c6 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 @@ -24,6 +24,7 @@ import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.events.EventDispatcher; import com.facebook.react.viewmanagers.ModalHostViewManagerDelegate; import com.facebook.react.viewmanagers.ModalHostViewManagerInterface; +import java.util.HashMap; import java.util.Map; /** View manager for {@link ReactModalHostView} components. */ @@ -137,10 +138,16 @@ public class ReactModalHostManager extends ViewGroupManager @Override public Map getExportedCustomDirectEventTypeConstants() { - return MapBuilder.builder() - .put(RequestCloseEvent.EVENT_NAME, MapBuilder.of("registrationName", "onRequestClose")) - .put(ShowEvent.EVENT_NAME, MapBuilder.of("registrationName", "onShow")) - .build(); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.builder() + .put(RequestCloseEvent.EVENT_NAME, MapBuilder.of("registrationName", "onRequestClose")) + .put(ShowEvent.EVENT_NAME, MapBuilder.of("registrationName", "onShow")) + .build()); + return eventTypeConstants; } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java index 8e1a25e0d0e..3eb8aefafe7 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/scroll/ReactScrollViewManager.java @@ -30,6 +30,7 @@ import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.annotations.ReactPropGroup; import com.facebook.yoga.YogaConstants; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -335,7 +336,12 @@ public class ReactScrollViewManager extends ViewGroupManager @Override public @Nullable Map getExportedCustomDirectEventTypeConstants() { - return createExportedCustomDirectEventTypeConstants(); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll(createExportedCustomDirectEventTypeConstants()); + return eventTypeConstants; } public static Map createExportedCustomDirectEventTypeConstants() { diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java index 35ae1d3678d..f8040636a00 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/slider/ReactSliderManager.java @@ -37,6 +37,7 @@ import com.facebook.yoga.YogaMeasureFunction; import com.facebook.yoga.YogaMeasureMode; import com.facebook.yoga.YogaMeasureOutput; import com.facebook.yoga.YogaNode; +import java.util.HashMap; import java.util.Map; /** @@ -246,9 +247,15 @@ public class ReactSliderManager extends SimpleViewManager @Override public Map getExportedCustomDirectEventTypeConstants() { - return MapBuilder.of( - ReactSlidingCompleteEvent.EVENT_NAME, - MapBuilder.of("registrationName", "onSlidingComplete")); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.of( + ReactSlidingCompleteEvent.EVENT_NAME, + MapBuilder.of("registrationName", "onSlidingComplete"))); + return eventTypeConstants; } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java index 0f2be380eaf..255855f3cab 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/swiperefresh/SwipeRefreshLayoutManager.java @@ -29,6 +29,7 @@ import com.facebook.react.uimanager.annotations.ReactProp; import com.facebook.react.uimanager.events.EventDispatcher; import com.facebook.react.viewmanagers.AndroidSwipeRefreshLayoutManagerDelegate; import com.facebook.react.viewmanagers.AndroidSwipeRefreshLayoutManagerInterface; +import java.util.HashMap; import java.util.Map; /** @@ -175,9 +176,15 @@ public class SwipeRefreshLayoutManager extends ViewGroupManager getExportedCustomDirectEventTypeConstants() { - return MapBuilder.builder() - .put("topRefresh", MapBuilder.of("registrationName", "onRefresh")) - .build(); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.builder() + .put("topRefresh", MapBuilder.of("registrationName", "onRefresh")) + .build()); + return eventTypeConstants; } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java index eac8c312719..04af66144bb 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/text/ReactTextViewManager.java @@ -22,6 +22,7 @@ import com.facebook.react.uimanager.ReactStylesDiffMap; import com.facebook.react.uimanager.StateWrapper; import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.yoga.YogaMeasureMode; +import java.util.HashMap; import java.util.Map; /** @@ -152,9 +153,15 @@ public class ReactTextViewManager @Override public @Nullable Map getExportedCustomDirectEventTypeConstants() { - return MapBuilder.of( - "topTextLayout", MapBuilder.of("registrationName", "onTextLayout"), - "topInlineViewLayout", MapBuilder.of("registrationName", "onInlineViewLayout")); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.of( + "topTextLayout", MapBuilder.of("registrationName", "onTextLayout"), + "topInlineViewLayout", MapBuilder.of("registrationName", "onInlineViewLayout"))); + return eventTypeConstants; } @Override diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java index 79e78e4db57..df6cc09407b 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactTextInputManager.java @@ -202,48 +202,62 @@ public class ReactTextInputManager extends BaseViewManager getExportedCustomBubblingEventTypeConstants() { - return MapBuilder.builder() - .put( - "topSubmitEditing", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onSubmitEditing", "captured", "onSubmitEditingCapture"))) - .put( - "topEndEditing", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onEndEditing", "captured", "onEndEditingCapture"))) - .put( - "topTextInput", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onTextInput", "captured", "onTextInputCapture"))) - .put( - "topFocus", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onFocus", "captured", "onFocusCapture"))) - .put( - "topBlur", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onBlur", "captured", "onBlurCapture"))) - .put( - "topKeyPress", - MapBuilder.of( - "phasedRegistrationNames", - MapBuilder.of("bubbled", "onKeyPress", "captured", "onKeyPressCapture"))) - .build(); + @Nullable + Map baseEventTypeConstants = + super.getExportedCustomBubblingEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.builder() + .put( + "topSubmitEditing", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of( + "bubbled", "onSubmitEditing", "captured", "onSubmitEditingCapture"))) + .put( + "topEndEditing", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onEndEditing", "captured", "onEndEditingCapture"))) + .put( + "topTextInput", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onTextInput", "captured", "onTextInputCapture"))) + .put( + "topFocus", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onFocus", "captured", "onFocusCapture"))) + .put( + "topBlur", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onBlur", "captured", "onBlurCapture"))) + .put( + "topKeyPress", + MapBuilder.of( + "phasedRegistrationNames", + MapBuilder.of("bubbled", "onKeyPress", "captured", "onKeyPressCapture"))) + .build()); + return eventTypeConstants; } @Nullable @Override public Map getExportedCustomDirectEventTypeConstants() { - return MapBuilder.builder() - .put( - ScrollEventType.getJSEventName(ScrollEventType.SCROLL), - MapBuilder.of("registrationName", "onScroll")) - .build(); + @Nullable + Map baseEventTypeConstants = super.getExportedCustomDirectEventTypeConstants(); + Map eventTypeConstants = + baseEventTypeConstants == null ? new HashMap() : baseEventTypeConstants; + eventTypeConstants.putAll( + MapBuilder.builder() + .put( + ScrollEventType.getJSEventName(ScrollEventType.SCROLL), + MapBuilder.of("registrationName", "onScroll")) + .build()); + return eventTypeConstants; } @Override