From 78ecab8743c01b13b628432049fde5eaca568d2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timi=20Rautam=C3=A4ki?= Date: Sat, 3 Jul 2021 20:30:08 +0200 Subject: [PATCH] Messaging: allow selecting text inside the selected message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: receive a message, select it by long press, verify text is selectable. Change-Id: I9f80df970c6ee1c06b8056c78bffe942eb8eb9bf Signed-off-by: Timi Rautamäki --- .../ui/conversation/ConversationMessageView.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/com/android/messaging/ui/conversation/ConversationMessageView.java b/src/com/android/messaging/ui/conversation/ConversationMessageView.java index 928c215..282e172 100644 --- a/src/com/android/messaging/ui/conversation/ConversationMessageView.java +++ b/src/com/android/messaging/ui/conversation/ConversationMessageView.java @@ -708,6 +708,7 @@ public class ConversationMessageView extends FrameLayout implements View.OnClick textBottomPadding = textBottomPaddingDefault; textLeftPadding = messageTextLeftRightPadding; textRightPadding = messageTextLeftRightPadding; + mMessageTextView.setTextIsSelectable(isSelected()); } else { // Attachment(s) only contentLeftPadding = incoming ? arrowWidth : 0; @@ -733,6 +734,7 @@ public class ConversationMessageView extends FrameLayout implements View.OnClick textTopMargin = 0; textTopPadding = textTopPaddingDefault; textBottomPadding = textBottomPaddingDefault; + mMessageTextView.setTextIsSelectable(isSelected()); if (showArrow && incoming) { textLeftPadding = messageTextLeftRightPadding + arrowWidth; } else { @@ -1030,6 +1032,11 @@ public class ConversationMessageView extends FrameLayout implements View.OnClick @Override public boolean onLongClick(final View view) { if (view == mMessageTextView) { + // Avoid trying to reselect the message + if (isSelected()) { + return false; + } + // Preemptively handle the long click event on message text so it's not handled by // the link spans. return performLongClick(); @@ -1195,7 +1202,7 @@ public class ConversationMessageView extends FrameLayout implements View.OnClick // This touch event is a long click, preemptively handle this touch event so that // the link span won't get a onClicked() callback. mIsLongClick = false; - return true; + return false; } if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {