diff options
| author | Victoria Lease <violets@google.com> | 2013-10-24 12:35:42 -0700 |
|---|---|---|
| committer | Victoria Lease <violets@google.com> | 2013-10-24 12:35:42 -0700 |
| commit | af7dcdf35a37d7a7dbaad7d9869c1c91bce2272b (patch) | |
| tree | 7e5ea86a18535037f2ee22d17d49ce59e91a7031 /core/java/android/widget/TextView.java | |
| parent | 7408234985707f98d4800cdd43a6fcaa35cb628a (diff) | |
use SpannedStringBuilder to build a SpannedString
It turns out that copy constructors do not respect NoCopySpan. Using
SpannedStringBuilder addresses this oversight.
Bug: 11326070
Change-Id: I949ef4f477d65cf645f3b1b2651f8ce423995237
Diffstat (limited to 'core/java/android/widget/TextView.java')
| -rw-r--r-- | core/java/android/widget/TextView.java | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index cb930d6fbcb2..7a9809fda605 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -56,6 +56,7 @@ import android.text.Selection; import android.text.SpanWatcher; import android.text.Spannable; import android.text.SpannableString; +import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.SpannedString; import android.text.StaticLayout; @@ -3494,19 +3495,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener ss.selEnd = end; if (mText instanceof Spanned) { - /* - * Calling setText() strips off any ChangeWatchers; - * strip them now to avoid leaking references. - * But do it to a copy so that if there are any - * further changes to the text of this view, it - * won't get into an inconsistent state. - */ - - Spannable sp = new SpannableString(mText); - - for (ChangeWatcher cw : sp.getSpans(0, sp.length(), ChangeWatcher.class)) { - sp.removeSpan(cw); - } + Spannable sp = new SpannableStringBuilder(mText); if (mEditor != null) { removeMisspelledSpans(sp); |
