From 1d13a620884d22bf76d34ee4010183aa9ce23162 Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Mon, 20 Oct 2025 16:45:45 -0400 Subject: [PATCH] Fix read more button on stories. --- .../viewer/page/StoryViewerPageFragment.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt index 45f43bc6fb..8e6ef9e794 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/StoryViewerPageFragment.kt @@ -33,6 +33,7 @@ import androidx.core.os.bundleOf import androidx.core.text.util.LinkifyCompat import androidx.core.view.GestureDetectorCompat import androidx.core.view.animation.PathInterpolatorCompat +import androidx.core.view.doOnNextLayout import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -968,12 +969,14 @@ class StoryViewerPageFragment : caption.text = displayBody caption.setMaxLength(SMALL_CAPTION_TEXT_MAX_LENGTH) - if (displayBody.length <= SMALL_CAPTION_TEXT_MAX_LENGTH) { - caption.setOnClickListener(null) - caption.isClickable = false - } else { - caption.setOnClickListener { - onShowCaptionOverlay(caption, largeCaption, largeCaptionOverlay) + caption.doOnNextLayout { + if (displayBody.length <= SMALL_CAPTION_TEXT_MAX_LENGTH && caption.lineCount <= SMALL_CAPTION_TEXT_MAX_LINES) { + caption.setOnClickListener(null) + caption.isClickable = false + } else { + caption.setOnClickListener { + onShowCaptionOverlay(caption, largeCaption, largeCaptionOverlay) + } } } } @@ -1299,6 +1302,7 @@ class StoryViewerPageFragment : private val DEFAULT_DURATION = TimeUnit.SECONDS.toMillis(5) private val ONBOARDING_DURATION = TimeUnit.SECONDS.toMillis(10) private const val SMALL_CAPTION_TEXT_MAX_LENGTH = 280 + private const val SMALL_CAPTION_TEXT_MAX_LINES = 5 private const val CAPTION_LINK_PATTERN = Linkify.WEB_URLS or Linkify.EMAIL_ADDRESSES or Linkify.PHONE_NUMBERS private const val ARGS = "args"