Merge "Support resetting "smart selection" to any word in the selection." into oc-dev

am: 3cb61255ab

Change-Id: Ie089ed63df8064798fa98a8a2378b81d09cf3b1c
This commit is contained in:
Abodunrinwa Toki
2017-05-02 20:17:18 +00:00
committed by android-build-merger
2 changed files with 11 additions and 11 deletions

View File

@@ -841,7 +841,7 @@ public class Editor {
* Adjusts selection to the word under last touch offset. Return true if the operation was
* successfully performed.
*/
private boolean selectCurrentWord() {
boolean selectCurrentWord() {
if (!mTextView.canSelectText()) {
return false;
}
@@ -2186,7 +2186,7 @@ public class Editor {
}
void onTouchUpEvent(MotionEvent event) {
if (getSelectionActionModeHelper().resetOriginalSelection(
if (getSelectionActionModeHelper().resetSelection(
getTextView().getOffsetForPosition(event.getX(), event.getY()))) {
return;
}

View File

@@ -98,8 +98,8 @@ final class SelectionActionModeHelper {
}
}
public boolean resetOriginalSelection(int textIndex) {
if (mSelectionInfo.resetOriginalSelection(textIndex, mEditor.getTextView().getText())) {
public boolean resetSelection(int textIndex) {
if (mSelectionInfo.resetSelection(textIndex, mEditor)) {
invalidateActionModeAsync();
return true;
}
@@ -177,9 +177,9 @@ final class SelectionActionModeHelper {
/**
* Holds information about the selection and uses it to decide on whether or not to update
* the selection when resetOriginalSelection is called.
* The expected UX here is to allow the user to re-snap the selection back to the original word
* that was selected with one tap on that word.
* the selection when resetSelection is called.
* The expected UX here is to allow the user to select a word inside of the "smart selection" on
* a single tap.
*/
private static final class SelectionInfo {
@@ -212,14 +212,14 @@ final class SelectionActionModeHelper {
mResetOriginal = false;
}
public boolean resetOriginalSelection(int textIndex, CharSequence text) {
public boolean resetSelection(int textIndex, Editor editor) {
final CharSequence text = editor.getTextView().getText();
if (mResetOriginal
&& textIndex >= mOriginalStart && textIndex <= mOriginalEnd
&& textIndex >= mSelectionStart && textIndex <= mSelectionEnd
&& text instanceof Spannable) {
Selection.setSelection((Spannable) text, mOriginalStart, mOriginalEnd);
// Only allow a reset once.
mResetOriginal = false;
return true;
return editor.selectCurrentWord();
}
return false;
}