Fix `markupHiddenUrls` destructs original CharSequence

This commit is contained in:
kyori19 2022-11-12 23:13:15 +09:00
parent 189f436711
commit 61288dda6c
No known key found for this signature in database
GPG Key ID: F7BDE7DD42BF366A
2 changed files with 3 additions and 1 deletions

View File

@ -69,7 +69,7 @@ fun setClickableText(view: TextView, content: CharSequence, mentions: List<Menti
@VisibleForTesting @VisibleForTesting
fun markupHiddenUrls(context: Context, content: CharSequence): SpannableStringBuilder { fun markupHiddenUrls(context: Context, content: CharSequence): SpannableStringBuilder {
val spannableContent = SpannableStringBuilder.valueOf(content) val spannableContent = SpannableStringBuilder(content)
val originalSpans = spannableContent.getSpans(0, content.length, URLSpan::class.java) val originalSpans = spannableContent.getSpans(0, content.length, URLSpan::class.java)
val obscuredLinkSpans = originalSpans.filter { val obscuredLinkSpans = originalSpans.filter {
val text = spannableContent.subSequence(spannableContent.getSpanStart(it), spannableContent.getSpanEnd(it)) val text = spannableContent.subSequence(spannableContent.getSpanStart(it), spannableContent.getSpanEnd(it))

View File

@ -165,10 +165,12 @@ class LinkHelperTest {
val maliciousUrl = "https://$maliciousDomain/to/go" val maliciousUrl = "https://$maliciousDomain/to/go"
val content = SpannableStringBuilder() val content = SpannableStringBuilder()
content.append(displayedContent, URLSpan(maliciousUrl), 0) content.append(displayedContent, URLSpan(maliciousUrl), 0)
val oldContent = content.toString()
Assert.assertEquals( Assert.assertEquals(
context.getString(R.string.url_domain_notifier, displayedContent, maliciousDomain), context.getString(R.string.url_domain_notifier, displayedContent, maliciousDomain),
markupHiddenUrls(context, content).toString() markupHiddenUrls(context, content).toString()
) )
Assert.assertEquals(oldContent, content.toString())
} }
@Test @Test