diff options
| -rw-r--r-- | core/java/android/widget/Editor.java | 6 | ||||
| -rw-r--r-- | core/tests/coretests/src/android/widget/TextViewActivityTest.java | 15 |
2 files changed, 19 insertions, 2 deletions
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index bf49048078c5..cbac6970c442 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -5477,10 +5477,12 @@ public class Editor { // Expanding with start handle. offset = getWordStart(offset); startOffset = getWordEnd(mStartOffset); + if (startOffset == offset) { + offset = getNextCursorOffset(offset, false); + } } mLineSelectionIsOn = currLine; - Selection.setSelection((Spannable) mTextView.getText(), - startOffset, offset); + Selection.setSelection((Spannable) mTextView.getText(), startOffset, offset); } private void updateParagraphBasedSelection(MotionEvent event) { diff --git a/core/tests/coretests/src/android/widget/TextViewActivityTest.java b/core/tests/coretests/src/android/widget/TextViewActivityTest.java index ea22cd1b7119..d0802a07d829 100644 --- a/core/tests/coretests/src/android/widget/TextViewActivityTest.java +++ b/core/tests/coretests/src/android/widget/TextViewActivityTest.java @@ -170,6 +170,21 @@ public class TextViewActivityTest extends ActivityInstrumentationTestCase2<TextV } @SmallTest + public void testLongPressAndDragToSelect_emoji() throws Exception { + final String text = "\uD83D\uDE00\uD83D\uDE01\uD83D\uDE02\uD83D\uDE03"; + onView(withId(R.id.textview)).perform(click()); + onView(withId(R.id.textview)).perform(replaceText(text)); + + onView(withId(R.id.textview)).perform(longPressAndDragOnText(4, 6)); + onView(withId(R.id.textview)).check(hasSelection("\uD83D\uDE02")); + + onView(withId(R.id.textview)).perform(click()); + + onView(withId(R.id.textview)).perform(longPressAndDragOnText(4, 2)); + onView(withId(R.id.textview)).check(hasSelection("\uD83D\uDE01")); + } + + @SmallTest public void testDragAndDrop() throws Exception { final String text = "abc def ghi."; onView(withId(R.id.textview)).perform(click()); |