From a0e4b1aaf953311ea519bf065917ab6e138625a3 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 24 Apr 2023 22:45:06 -0400 Subject: [PATCH] Fix weird highlight shown after revealing a spoiler. --- .../components/spoiler/SpoilerAnnotation.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerAnnotation.kt b/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerAnnotation.kt index a46b2bf4ee..bb87b7914e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerAnnotation.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/spoiler/SpoilerAnnotation.kt @@ -2,10 +2,14 @@ package org.thoughtcrime.securesms.components.spoiler import android.graphics.Color import android.text.Annotation +import android.text.Selection +import android.text.Spannable +import android.text.SpannableString import android.text.Spanned import android.text.TextPaint import android.text.style.ClickableSpan import android.view.View +import android.widget.TextView /** * Helper for applying spans to text that should be rendered as a spoiler. Also @@ -59,6 +63,15 @@ object SpoilerAnnotation { override fun onClick(widget: View) { revealedSpoilers.add(spoiler.value) + if (widget is TextView && Selection.getSelectionStart(widget.text) != -1) { + val text: Spannable = if (widget.text is Spannable) { + widget.text as Spannable + } else { + SpannableString(widget.text) + } + Selection.removeSelection(text) + widget.text = text + } } override fun updateDrawState(ds: TextPaint) {