Loading core/java/android/widget/Editor.java +3 −7 Original line number Diff line number Diff line Loading @@ -3842,14 +3842,10 @@ public class Editor { mProcessTextIntentActionsHandler.onInitializeMenu(menu); } if (menu.hasVisibleItems() || mode.getCustomView() != null) { if (mHasSelection && !mTextView.hasTransientState()) { mTextView.setHasTransientState(true); } return true; } else { return false; } } private Callback getCustomCallback() { Loading core/tests/coretests/src/android/widget/TextViewActivityTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -636,6 +636,41 @@ public class TextViewActivityTest { onView(withId(R.id.textview)).check(hasSelection("hijk")); } @Test public void testSelectionHandles_visibleEvenWithEmptyMenu() { ((TextView) mActivity.findViewById(R.id.textview)).setCustomSelectionActionModeCallback( new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.clear(); return true; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { menu.clear(); return true; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Override public void onDestroyActionMode(ActionMode mode) {} }); final String text = "abcd efg hijk lmn"; onView(withId(R.id.textview)).perform(replaceText(text)); onView(withId(R.id.textview)).perform(longPressOnTextAtIndex(text.indexOf('f'))); onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } @Test public void testSetSelectionAndActionMode() throws Throwable { final TextView textView = mActivity.findViewById(R.id.textview); Loading Loading
core/java/android/widget/Editor.java +3 −7 Original line number Diff line number Diff line Loading @@ -3842,14 +3842,10 @@ public class Editor { mProcessTextIntentActionsHandler.onInitializeMenu(menu); } if (menu.hasVisibleItems() || mode.getCustomView() != null) { if (mHasSelection && !mTextView.hasTransientState()) { mTextView.setHasTransientState(true); } return true; } else { return false; } } private Callback getCustomCallback() { Loading
core/tests/coretests/src/android/widget/TextViewActivityTest.java +35 −0 Original line number Diff line number Diff line Loading @@ -636,6 +636,41 @@ public class TextViewActivityTest { onView(withId(R.id.textview)).check(hasSelection("hijk")); } @Test public void testSelectionHandles_visibleEvenWithEmptyMenu() { ((TextView) mActivity.findViewById(R.id.textview)).setCustomSelectionActionModeCallback( new ActionMode.Callback() { @Override public boolean onCreateActionMode(ActionMode mode, Menu menu) { menu.clear(); return true; } @Override public boolean onPrepareActionMode(ActionMode mode, Menu menu) { menu.clear(); return true; } @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { return false; } @Override public void onDestroyActionMode(ActionMode mode) {} }); final String text = "abcd efg hijk lmn"; onView(withId(R.id.textview)).perform(replaceText(text)); onView(withId(R.id.textview)).perform(longPressOnTextAtIndex(text.indexOf('f'))); onHandleView(com.android.internal.R.id.selection_start_handle) .check(matches(isDisplayed())); onHandleView(com.android.internal.R.id.selection_end_handle) .check(matches(isDisplayed())); } @Test public void testSetSelectionAndActionMode() throws Throwable { final TextView textView = mActivity.findViewById(R.id.textview); Loading