From bdd1858602e40388d415b25f0a82f5fd1c91d95c Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 17 Jun 2026 14:30:14 -0400 Subject: [PATCH] Allow text to be selectable in message details. --- .../conversation/ConversationItem.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index 565026f509..a12d0f7064 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -1074,7 +1074,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo * Whether interactions like swipe-to-reply and direct media opening should be suppressed. */ private boolean isSuppressedInteractionMode() { - return isCondensedMode() || displayMode instanceof ConversationItemDisplayMode.Starred; + return isCondensedMode() || displayMode instanceof ConversationItemDisplayMode.Starred || displayMode == ConversationItemDisplayMode.Detailed.INSTANCE; } private boolean isStoryReaction(MessageRecord messageRecord) { @@ -1154,10 +1154,21 @@ public final class ConversationItem extends RelativeLayout implements BindableCo boolean messageRequestAccepted, boolean hasWallpaper) { - bodyText.setClickable(false); - bodyText.setFocusable(false); - bodyText.setTextSize(TypedValue.COMPLEX_UNIT_SP, SignalStore.settings().getMessageFontSize()); - bodyText.setMovementMethod(LongClickMovementMethod.getInstance(getContext())); + boolean isMessageDetails = displayMode == ConversationItemDisplayMode.Detailed.INSTANCE; + + bodyText.setTextIsSelectable(isMessageDetails); + if (isMessageDetails) { + bodyText.setOnTouchListener(null); + bodyText.setOnLongClickListener(null); + bodyText.setOnClickListener(null); + } else { + bodyText.setClickable(false); + bodyText.setFocusable(false); + bodyText.setOnTouchListener(doubleTapEditTouchListener); + bodyText.setOnLongClickListener(passthroughClickListener); + bodyText.setOnClickListener(passthroughClickListener); + bodyText.setMovementMethod(LongClickMovementMethod.getInstance(getContext())); + } bodyText.setOverflowText(null); bodyText.setMaxLength(-1);