Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e408b2a authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix crash due to TextView.getText() returning null."

parents 66c82b38 7c1e4258
Loading
Loading
Loading
Loading
+20 −7
Original line number Diff line number Diff line
@@ -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);

@@ -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());
@@ -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;
@@ -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());
    }
@@ -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) {
@@ -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
@@ -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);
        }

@@ -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 "";
    }
}