summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Keisuke Kuroyanagi <ksk@google.com> 2016-03-15 06:47:09 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2016-03-15 06:47:10 +0000
commit794f70f1728123608a2bcbf2a508b31b79a931b2 (patch)
tree602e1da5a8309bcb247d2e0ca5b7a209a78a9cc8
parent3e540b95d751c19c846ee209a0ce425700fef203 (diff)
parent6e0860d9596314230bb9bcbe2e82467b0251ab9a (diff)
Merge "Add a check for misspelled span change." into nyc-dev
-rw-r--r--core/java/android/widget/Editor.java14
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);