diff options
| -rw-r--r-- | core/java/android/text/InputFilter.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/core/java/android/text/InputFilter.java b/core/java/android/text/InputFilter.java index 2f55677ee24f..8d4b08e3c40f 100644 --- a/core/java/android/text/InputFilter.java +++ b/core/java/android/text/InputFilter.java @@ -88,7 +88,14 @@ public interface InputFilter } else if (keep >= end - start) { return null; // keep original } else { - return source.subSequence(start, start + keep); + keep += start; + if (Character.isHighSurrogate(source.charAt(keep - 1))) { + --keep; + if (keep == start) { + return ""; + } + } + return source.subSequence(start, keep); } } |