diff options
| -rw-r--r-- | core/java/android/widget/TextView.java | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 53d17cb7c9e9..40d8a779c914 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -9754,11 +9754,12 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener public void show() { if (!(mText instanceof Editable)) return; - updateSuggestions(); - mCursorWasVisibleBeforeSuggestions = mCursorVisible; - setCursorVisible(false); - mIsShowingUp = true; - super.show(); + if (updateSuggestions()) { + mCursorWasVisibleBeforeSuggestions = mCursorVisible; + setCursorVisible(false); + mIsShowingUp = true; + super.show(); + } } @Override @@ -9814,11 +9815,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener super.hide(); } - private void updateSuggestions() { + private boolean updateSuggestions() { Spannable spannable = (Spannable) TextView.this.mText; SuggestionSpan[] suggestionSpans = getSuggestionSpans(); final int nbSpans = suggestionSpans.length; + // Suggestions are shown after a delay: the underlying spans may have been removed + if (nbSpans == 0) return false; mNumberOfSuggestions = 0; int spanUnionStart = mText.length(); @@ -9921,6 +9924,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); mSuggestionsAdapter.notifyDataSetChanged(); + return true; } private void highlightTextDifferences(SuggestionInfo suggestionInfo, int unionStart, |