diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index dc3c7b74f3e3828dc0fdfbb0d809e56b320fa0ef..09ae3adb0c019c3d5a41b267095cf159861046aa 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -1020,9 +1020,23 @@ public class MessageAdapter extends ArrayAdapter { } }); viewHolder.message_box.setOnTouchListener(swipeDetector); - viewHolder.messageBody.setOnTouchListener(swipeDetector); viewHolder.image.setOnTouchListener(swipeDetector); viewHolder.time.setOnTouchListener(swipeDetector); + + // Treat touch-up as click so we don't have to touch twice + // (touch twice is because it's waiting to see if you double-touch for text selection) + viewHolder.messageBody.setOnTouchListener((v, event) -> { + if (event.getAction() == MotionEvent.ACTION_UP) { + if (MessageAdapter.this.mOnMessageBoxClickedListener != null) { + MessageAdapter.this.mOnMessageBoxClickedListener + .onContactPictureClicked(message); + } + } + + swipeDetector.onTouch(v, event); + + return false; + }); viewHolder.messageBody.setOnClickListener(v -> { if (MessageAdapter.this.mOnMessageBoxClickedListener != null) { MessageAdapter.this.mOnMessageBoxClickedListener