From 4d10be2aa553bd02a345766a7f12b6091792a390 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 24 Apr 2023 21:27:11 -0400 Subject: [PATCH] Fix spoiler reveal in full screen media viewer. --- .../components/emoji/EmojiTextView.java | 5 +++++ .../caption/ExpandingCaptionView.kt | 22 +++++++++++-------- app/src/main/res/values/strings.xml | 2 +- 3 files changed, 19 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java index 3a8ef3ff92..cd79e39ebb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiTextView.java @@ -108,6 +108,11 @@ public class EmojiTextView extends AppCompatTextView { setEmojiCompatEnabled(useSystemEmoji()); } + public void setMaxLength(int maxLength) { + this.maxLength = maxLength; + setText(getText()); + } + public void enableSpoilerFiltering() { spoilerFilteringSpannableFactory = new SpoilerFilteringSpannableFactory(() -> isInOnDraw); setSpannableFactory(spoilerFilteringSpannableFactory); diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/caption/ExpandingCaptionView.kt b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/caption/ExpandingCaptionView.kt index 7f55d4a9dc..d7d4b7e01f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediapreview/caption/ExpandingCaptionView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediapreview/caption/ExpandingCaptionView.kt @@ -1,7 +1,11 @@ package org.thoughtcrime.securesms.mediapreview.caption import android.content.Context -import android.text.method.ScrollingMovementMethod +import android.graphics.Typeface +import android.text.SpannableString +import android.text.Spanned +import android.text.method.LinkMovementMethod +import android.text.style.StyleSpan import android.util.AttributeSet import android.view.ViewGroup import androidx.core.view.updateLayoutParams @@ -26,7 +30,10 @@ class ExpandingCaptionView @JvmOverloads constructor( } init { - setOnClickListener { toggleExpansion() } + movementMethod = LinkMovementMethod.getInstance() + val overflow = SpannableString(context.getString(R.string.MediaPreviewFragment_read_more_overflow_text)) + overflow.setSpan(StyleSpan(Typeface.BOLD), 0, overflow.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + setOverflowText(overflow) } private fun toggleExpansion() { @@ -40,19 +47,16 @@ class ExpandingCaptionView @JvmOverloads constructor( private fun updateExpansionState(expand: Boolean) { if (expand) { + setMaxLength(-1) text = fullCaptionText - movementMethod = ScrollingMovementMethod() scrollTo(0, 0) updateLayoutParams { height = expandedHeight } } else { - text = if (isExpandable()) { - context.getString(R.string.MediaPreviewFragment_see_more, fullCaptionText.substring(0, CHAR_LIMIT_MESSAGE_PREVIEW)) - } else { - fullCaptionText - } - movementMethod = null + setMaxLength(CHAR_LIMIT_MESSAGE_PREVIEW) + text = fullCaptionText updateLayoutParams { height = ViewGroup.LayoutParams.WRAP_CONTENT } } + if (isExpandable()) { setOnClickListener { toggleExpansion() } } else { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9cdb09aaa6..7cad656564 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2153,7 +2153,7 @@ Error Deleting Message, Message May Still Exist - %1$s… Read More + Read More %1$d new messages in %2$d conversations