summaryrefslogtreecommitdiff
path: root/core/java/android/widget/TextView.java
diff options
context:
space:
mode:
authorVictoria Lease <violets@google.com>2013-10-24 12:35:42 -0700
committerVictoria Lease <violets@google.com>2013-10-24 12:35:42 -0700
commitaf7dcdf35a37d7a7dbaad7d9869c1c91bce2272b (patch)
tree7e5ea86a18535037f2ee22d17d49ce59e91a7031 /core/java/android/widget/TextView.java
parent7408234985707f98d4800cdd43a6fcaa35cb628a (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.java15
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);