diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 0b1e0819b2f992ab13c7dcea6b8c2951677e9659..59253fa1fc330a0a217fc7bf18a52348c2c4930e 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -1252,6 +1252,11 @@ public class ConversationFragment extends XmppFragment new EditMessageActionModeCallback(this.binding.textinput)); } + messageListAdapter.setOnMessageBoxClicked(message -> { + setThread(message.getThread()); + conversation.setUserSelectedThread(true); + }); + binding.threadIdenticon.setOnClickListener(v -> { newThread(); conversation.setUserSelectedThread(true); 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 a5d6c900127c6ea7e4834bd4d62962b100e744ba..1e44e08373324f97beea339a7e92eb8fd1d048b8 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -109,6 +109,7 @@ public class MessageAdapter extends ArrayAdapter { private List highlightedTerm = null; private final DisplayMetrics metrics; private OnContactPictureClicked mOnContactPictureClickedListener; + private OnContactPictureClicked mOnMessageBoxClickedListener; private OnContactPictureLongClicked mOnContactPictureLongClickedListener; private boolean mUseGreenBackground = false; private final boolean mForceNames; @@ -148,6 +149,10 @@ public class MessageAdapter extends ArrayAdapter { this.mOnContactPictureClickedListener = listener; } + public void setOnMessageBoxClicked(OnContactPictureClicked listener) { + this.mOnMessageBoxClickedListener = listener; + } + public Activity getActivity() { return activity; } @@ -839,6 +844,18 @@ public class MessageAdapter extends ArrayAdapter { resetClickListener(viewHolder.message_box, viewHolder.messageBody); + viewHolder.message_box.setOnClickListener(v -> { + if (MessageAdapter.this.mOnMessageBoxClickedListener != null) { + MessageAdapter.this.mOnMessageBoxClickedListener + .onContactPictureClicked(message); + } + }); + viewHolder.messageBody.setOnClickListener(v -> { + if (MessageAdapter.this.mOnMessageBoxClickedListener != null) { + MessageAdapter.this.mOnMessageBoxClickedListener + .onContactPictureClicked(message); + } + }); viewHolder.contact_picture.setOnClickListener(v -> { if (MessageAdapter.this.mOnContactPictureClickedListener != null) { MessageAdapter.this.mOnContactPictureClickedListener