From 0ebe6bd5da3b7f3ca7fcc7c80cf4589e194fc698 Mon Sep 17 00:00:00 2001 From: Phil Weaver Date: Tue, 21 Feb 2017 16:24:31 -0800 Subject: [PATCH] Avoid copying NoCopySpans. Move from Spannable to SpannableStringBuilder, as the latter doesn't copy NoCopySpans. Bug: 34712634 Test: CTS tests that verify clickable spans still work. Change-Id: I0ab029a7c79cb7d0b48724890c5cabe841390f4a --- .../java/android/view/accessibility/AccessibilityNodeInfo.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java index 67d7ff8da25b1..d866927b3deea 100644 --- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java +++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java @@ -28,6 +28,7 @@ import android.os.Parcel; import android.os.Parcelable; import android.text.InputType; import android.text.Spannable; +import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.style.AccessibilityClickableSpan; @@ -2421,7 +2422,7 @@ public class AccessibilityNodeInfo implements Parcelable { ClickableSpan[] spans = ((Spanned) text).getSpans(0, text.length(), ClickableSpan.class); if (spans.length > 0) { - Spannable spannable = Spannable.Factory.getInstance().newSpannable(text); + Spannable spannable = new SpannableStringBuilder(text); for (int i = 0; i < spans.length; i++) { ClickableSpan span = spans[i]; if ((span instanceof AccessibilityClickableSpan)