Loading core/java/android/widget/SelectionActionModeHelper.java +20 −7 Original line number Diff line number Diff line Loading @@ -85,7 +85,8 @@ public final class SelectionActionModeHelper { mEditor = Preconditions.checkNotNull(editor); mTextView = mEditor.getTextView(); mTextClassificationHelper = new TextClassificationHelper( mTextView.getTextClassifier(), mTextView.getText(), mTextView.getTextClassifier(), getText(mTextView), 0, 1, mTextView.getTextLocales()); mSelectionTracker = new SelectionTracker(mTextView); Loading @@ -99,7 +100,7 @@ public final class SelectionActionModeHelper { public void startActionModeAsync(boolean adjustSelection) { mSelectionTracker.onOriginalSelection( mTextView.getText(), getText(mTextView), mTextView.getSelectionStart(), mTextView.getSelectionEnd(), mTextView.isTextEditable()); Loading Loading @@ -197,7 +198,7 @@ public final class SelectionActionModeHelper { } private void startActionMode(@Nullable SelectionResult result) { final CharSequence text = mTextView.getText(); final CharSequence text = getText(mTextView); if (result != null && text instanceof Spannable) { Selection.setSelection((Spannable) text, result.mStart, result.mEnd); mTextClassification = result.mClassification; Loading Loading @@ -358,7 +359,9 @@ public final class SelectionActionModeHelper { } private void resetTextClassificationHelper() { mTextClassificationHelper.reset(mTextView.getTextClassifier(), mTextView.getText(), mTextClassificationHelper.reset( mTextView.getTextClassifier(), getText(mTextView), mTextView.getSelectionStart(), mTextView.getSelectionEnd(), mTextView.getTextLocales()); } Loading Loading @@ -467,7 +470,7 @@ public final class SelectionActionModeHelper { if (isSelectionStarted() && mAllowReset && textIndex >= mSelectionStart && textIndex <= mSelectionEnd && textView.getText() instanceof Spannable) { && getText(textView) instanceof Spannable) { mAllowReset = false; boolean selected = editor.selectCurrentWord(); if (selected) { Loading Loading @@ -723,7 +726,7 @@ public final class SelectionActionModeHelper { mSelectionResultSupplier = Preconditions.checkNotNull(selectionResultSupplier); mSelectionResultCallback = Preconditions.checkNotNull(selectionResultCallback); // Make a copy of the original text. mOriginalText = mTextView.getText().toString(); mOriginalText = getText(mTextView).toString(); } @Override Loading @@ -739,7 +742,7 @@ public final class SelectionActionModeHelper { @Override @UiThread protected void onPostExecute(SelectionResult result) { result = TextUtils.equals(mOriginalText, mTextView.getText()) ? result : null; result = TextUtils.equals(mOriginalText, getText(mTextView)) ? result : null; mSelectionResultCallback.accept(result); } Loading Loading @@ -888,4 +891,14 @@ public final class SelectionActionModeHelper { return SelectionEvent.ActionType.OTHER; } } private static CharSequence getText(TextView textView) { // Extracts the textView's text. // TODO: Investigate why/when TextView.getText() is null. final CharSequence text = textView.getText(); if (text != null) { return text; } return ""; } } Loading
core/java/android/widget/SelectionActionModeHelper.java +20 −7 Original line number Diff line number Diff line Loading @@ -85,7 +85,8 @@ public final class SelectionActionModeHelper { mEditor = Preconditions.checkNotNull(editor); mTextView = mEditor.getTextView(); mTextClassificationHelper = new TextClassificationHelper( mTextView.getTextClassifier(), mTextView.getText(), mTextView.getTextClassifier(), getText(mTextView), 0, 1, mTextView.getTextLocales()); mSelectionTracker = new SelectionTracker(mTextView); Loading @@ -99,7 +100,7 @@ public final class SelectionActionModeHelper { public void startActionModeAsync(boolean adjustSelection) { mSelectionTracker.onOriginalSelection( mTextView.getText(), getText(mTextView), mTextView.getSelectionStart(), mTextView.getSelectionEnd(), mTextView.isTextEditable()); Loading Loading @@ -197,7 +198,7 @@ public final class SelectionActionModeHelper { } private void startActionMode(@Nullable SelectionResult result) { final CharSequence text = mTextView.getText(); final CharSequence text = getText(mTextView); if (result != null && text instanceof Spannable) { Selection.setSelection((Spannable) text, result.mStart, result.mEnd); mTextClassification = result.mClassification; Loading Loading @@ -358,7 +359,9 @@ public final class SelectionActionModeHelper { } private void resetTextClassificationHelper() { mTextClassificationHelper.reset(mTextView.getTextClassifier(), mTextView.getText(), mTextClassificationHelper.reset( mTextView.getTextClassifier(), getText(mTextView), mTextView.getSelectionStart(), mTextView.getSelectionEnd(), mTextView.getTextLocales()); } Loading Loading @@ -467,7 +470,7 @@ public final class SelectionActionModeHelper { if (isSelectionStarted() && mAllowReset && textIndex >= mSelectionStart && textIndex <= mSelectionEnd && textView.getText() instanceof Spannable) { && getText(textView) instanceof Spannable) { mAllowReset = false; boolean selected = editor.selectCurrentWord(); if (selected) { Loading Loading @@ -723,7 +726,7 @@ public final class SelectionActionModeHelper { mSelectionResultSupplier = Preconditions.checkNotNull(selectionResultSupplier); mSelectionResultCallback = Preconditions.checkNotNull(selectionResultCallback); // Make a copy of the original text. mOriginalText = mTextView.getText().toString(); mOriginalText = getText(mTextView).toString(); } @Override Loading @@ -739,7 +742,7 @@ public final class SelectionActionModeHelper { @Override @UiThread protected void onPostExecute(SelectionResult result) { result = TextUtils.equals(mOriginalText, mTextView.getText()) ? result : null; result = TextUtils.equals(mOriginalText, getText(mTextView)) ? result : null; mSelectionResultCallback.accept(result); } Loading Loading @@ -888,4 +891,14 @@ public final class SelectionActionModeHelper { return SelectionEvent.ActionType.OTHER; } } private static CharSequence getText(TextView textView) { // Extracts the textView's text. // TODO: Investigate why/when TextView.getText() is null. final CharSequence text = textView.getText(); if (text != null) { return text; } return ""; } }