Merge "Fix the empty selection issue when onCreateActionMode returns false"
This commit is contained in:
commit
78abed41f6
@ -297,12 +297,12 @@ public final class SelectionActionModeHelper {
|
||||
} else {
|
||||
mTextClassification = null;
|
||||
}
|
||||
final SelectionModifierCursorController controller = mEditor.getSelectionController();
|
||||
if (controller != null
|
||||
&& (mTextView.isTextSelectable() || mTextView.isTextEditable())) {
|
||||
controller.show();
|
||||
}
|
||||
if (mEditor.startActionModeInternal(actionMode)) {
|
||||
final SelectionModifierCursorController controller = mEditor.getSelectionController();
|
||||
if (controller != null
|
||||
&& (mTextView.isTextSelectable() || mTextView.isTextEditable())) {
|
||||
controller.show();
|
||||
}
|
||||
if (result != null) {
|
||||
switch (actionMode) {
|
||||
case Editor.TextActionMode.SELECTION:
|
||||
|
@ -17,6 +17,7 @@
|
||||
package android.widget;
|
||||
|
||||
import static android.widget.espresso.CustomViewActions.longPressAtRelativeCoordinates;
|
||||
import static android.widget.espresso.DragHandleUtils.assertNoSelectionHandles;
|
||||
import static android.widget.espresso.DragHandleUtils.onHandleView;
|
||||
import static android.widget.espresso.FloatingToolbarEspressoUtils.assertFloatingToolbarContainsItem;
|
||||
import static android.widget.espresso.FloatingToolbarEspressoUtils.assertFloatingToolbarDoesNotContainItem;
|
||||
@ -425,6 +426,41 @@ public class TextViewActivityTest {
|
||||
assertEquals(latestItem[0], clickedItem[0]);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelectionOnCreateActionModeReturnsFalse() throws Throwable {
|
||||
final String text = "hello world";
|
||||
mActivityRule.runOnUiThread(() -> {
|
||||
final TextView textView = mActivity.findViewById(R.id.textview);
|
||||
textView.setText(text);
|
||||
textView.setCustomSelectionActionModeCallback(
|
||||
new ActionMode.Callback() {
|
||||
@Override
|
||||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDestroyActionMode(ActionMode mode) {
|
||||
}
|
||||
});
|
||||
});
|
||||
mInstrumentation.waitForIdleSync();
|
||||
onView(withId(R.id.textview)).perform(longPressOnTextAtIndex(text.indexOf("d")));
|
||||
mInstrumentation.waitForIdleSync();
|
||||
assertNoSelectionHandles();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSelectionRemovedWhenNonselectableTextLosesFocus() throws Throwable {
|
||||
final TextLinks.TextLink textLink = addLinkifiedTextToTextView(R.id.nonselectable_textview);
|
||||
|
Loading…
x
Reference in New Issue
Block a user