From 026d389b46f7b0fbb182409cd287dcc0aa974785 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Thu, 23 May 2024 20:26:55 -0500 Subject: [PATCH] Snip quotes from preview --- .../java/eu/siacs/conversations/utils/UIHelper.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/siacs/conversations/utils/UIHelper.java b/src/main/java/eu/siacs/conversations/utils/UIHelper.java index 7dab05d6fbd45597d99aa34aabdfc3e267e98dac..229602ffc22a16221b93d61d1f74cd800a5154d5 100644 --- a/src/main/java/eu/siacs/conversations/utils/UIHelper.java +++ b/src/main/java/eu/siacs/conversations/utils/UIHelper.java @@ -15,6 +15,7 @@ import androidx.annotation.ColorRes; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; +import com.google.common.collect.Lists; import com.google.android.material.color.MaterialColors; import com.google.common.base.Strings; import com.google.common.primitives.Ints; @@ -249,10 +250,19 @@ public class UIHelper { Drawable fallbackImg = ResourcesCompat.getDrawable(context.getResources(), R.drawable.ic_photo_24dp, null); fallbackImg.setBounds(0, 0, fallbackImg.getIntrinsicWidth(), fallbackImg.getIntrinsicHeight()); SpannableStringBuilder styledBody = message.getSpannableBody(null, fallbackImg); - if (textColor != 0) { + final var processMarkup = styledBody.getSpans(0, body.length(), Message.PlainTextSpan.class).length > 0; + if (textColor != 0 && processMarkup) { StylingHelper.format(styledBody, 0, styledBody.length() - 1, textColor, false); } MyLinkify.addLinks(styledBody, message.getConversation().getAccount(), message.getConversation().getJid()); + + for (final android.text.style.QuoteSpan quote : Lists.reverse(Lists.newArrayList(styledBody.getSpans(0, styledBody.length(), android.text.style.QuoteSpan.class)))) { + int start = styledBody.getSpanStart(quote); + int end = styledBody.getSpanEnd(quote); + styledBody.delete(start, end); + } + if (!processMarkup) return new Pair<>(styledBody, false); + SpannableStringBuilder builder = new SpannableStringBuilder(); for (CharSequence l : CharSequenceUtils.split(styledBody, '\n')) { if (l.length() > 0) {