diff --git a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java index 1e676fa7df9..719b903f4ce 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java +++ b/ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java @@ -331,10 +331,20 @@ public class ReactEditText extends AppCompatEditText } if (start != UNSET && end != UNSET) { + // clamp selection values for safety + start = clampToTextLength(start); + end = clampToTextLength(end); + setSelection(start, end); } } + private int clampToTextLength(int value) { + int textLength = getText() == null ? 0 : getText().length(); + + return Math.max(0, Math.min(value, textLength)); + } + @Override public void setSelection(int start, int end) { if (DEBUG_MODE) { 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 52d0b3b7640..de88cb84ced 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 @@ -328,9 +328,22 @@ public class ReactTextInputManager extends BaseViewManager