diff options
| -rw-r--r-- | core/java/android/widget/Editor.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/core/java/android/widget/Editor.java b/core/java/android/widget/Editor.java index c5fb1cee54d6..749d6214a9c6 100644 --- a/core/java/android/widget/Editor.java +++ b/core/java/android/widget/Editor.java @@ -3284,10 +3284,18 @@ public class Editor { com.android.internal.R.id.addToDictionaryButton); mAddToDictionaryButton.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { + final SuggestionSpan misspelledSpan = + findEquivalentSuggestionSpan(mMisspelledSpanInfo); + if (misspelledSpan == null) { + // Span has been removed. + return; + } final Editable editable = (Editable) mTextView.getText(); - final int spanStart = editable.getSpanStart( - mMisspelledSpanInfo.mSuggestionSpan); - final int spanEnd = editable.getSpanEnd(mMisspelledSpanInfo.mSuggestionSpan); + final int spanStart = editable.getSpanStart(misspelledSpan); + final int spanEnd = editable.getSpanEnd(misspelledSpan); + if (spanStart < 0 || spanEnd <= spanStart) { + return; + } final String originalText = TextUtils.substring(editable, spanStart, spanEnd); final Intent intent = new Intent(Settings.ACTION_USER_DICTIONARY_INSERT); |