From f01d1d5dcbeb25e53a9d15ea4a35617140bbddf2 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Mon, 13 Jun 2016 13:08:32 -0400 Subject: [PATCH] Make linkify handle emptys urls better DO NOT MERGE Change-Id: I60029b02e6cda334a8c66ba8453be28b35a818a3 Fixes: 29045818 --- .../FingerprintEnrollIntroduction.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java index d1bd3f7d99a..4cbf9632d7d 100644 --- a/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java @@ -29,11 +29,13 @@ import android.text.Annotation; import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.TextPaint; +import android.text.TextUtils; import android.text.style.URLSpan; import android.util.Log; import android.view.View; import com.android.internal.logging.MetricsProto.MetricsEvent; +import com.android.internal.util.CharSequences; import com.android.settings.ChooseLockGeneric; import com.android.settings.ChooseLockSettingsHelper; import com.android.settingslib.HelpUtils; @@ -205,14 +207,25 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase public static CharSequence linkify(CharSequence rawText, String uri) { SpannableString msg = new SpannableString(rawText); Annotation[] spans = msg.getSpans(0, msg.length(), Annotation.class); - SpannableStringBuilder builder = new SpannableStringBuilder(msg); - for (Annotation annotation : spans) { - int start = msg.getSpanStart(annotation); - int end = msg.getSpanEnd(annotation); - LearnMoreSpan link = new LearnMoreSpan(uri); - builder.setSpan(link, start, end, msg.getSpanFlags(link)); + if (TextUtils.isEmpty(uri)) { + CharSequence ret = rawText; + for (Annotation annotation : spans) { + int start = msg.getSpanStart(annotation); + int end = msg.getSpanEnd(annotation); + ret = TextUtils.concat(ret.subSequence(0, start), + msg.subSequence(end, msg.length())); + } + return ret; + } else { + SpannableStringBuilder builder = new SpannableStringBuilder(msg); + for (Annotation annotation : spans) { + int start = msg.getSpanStart(annotation); + int end = msg.getSpanEnd(annotation); + LearnMoreSpan link = new LearnMoreSpan(uri); + builder.setSpan(link, start, end, msg.getSpanFlags(link)); + } + return builder; } - return builder; } } }