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