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 4767db367ce..44849d3b00e 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 @@ -737,23 +737,25 @@ public class ReactTextInputManager extends BaseViewManager Generate `submit` event; clear focus; prevent default behaviour (return true); - // * blurOnSubmit && !isMultiline => Generate `submit` event; clear focus; prevent default behaviour (return true); + // * blurOnSubmit && isMultiline => Clear focus; prevent default behaviour (return true); + // * blurOnSubmit && !isMultiline => Clear focus; prevent default behaviour (return true); // * !blurOnSubmit && isMultiline => Perform default behaviour (return false); // * !blurOnSubmit && !isMultiline => Prevent default behaviour (return true). + // Additionally we always generate a `submit` event. + + EventDispatcher eventDispatcher = + reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher(); + + eventDispatcher.dispatchEvent( + new ReactTextInputSubmitEditingEvent( + editText.getId(), + editText.getText().toString())); if (blurOnSubmit) { - EventDispatcher eventDispatcher = - reactContext.getNativeModule(UIManagerModule.class).getEventDispatcher(); - - eventDispatcher.dispatchEvent( - new ReactTextInputSubmitEditingEvent( - editText.getId(), - editText.getText().toString())); - editText.clearFocus(); } + // Prevent default behavior except when we want it to insert a newline. return blurOnSubmit || !isMultiline; }