From 358d6333c3fe7b655f387bc171c6ae2552bf5ced Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 27 Apr 2020 13:08:06 -0300 Subject: [PATCH] Open new recipient bottom sheet when accessing contact from group context. --- .../securesms/BindableConversationItem.java | 2 ++ .../securesms/GroupMembersDialog.java | 15 ++------------- .../conversation/ConversationFragment.java | 9 +++++++++ .../securesms/conversation/ConversationItem.java | 13 ++++++++++++- 4 files changed, 25 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java index f820c652e8..38b732ce7f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/BindableConversationItem.java @@ -8,6 +8,7 @@ import org.thoughtcrime.securesms.contactshare.Contact; import org.thoughtcrime.securesms.database.model.MessageRecord; import org.thoughtcrime.securesms.database.model.MmsMessageRecord; import org.thoughtcrime.securesms.database.model.ReactionRecord; +import org.thoughtcrime.securesms.groups.GroupId; import org.thoughtcrime.securesms.linkpreview.LinkPreview; import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; @@ -45,5 +46,6 @@ public interface BindableConversationItem extends Unbindable { void onMessageSharedContactClicked(@NonNull List choices); void onInviteSharedContactClicked(@NonNull List choices); void onReactionClicked(long messageId, boolean isMms); + void onGroupMemberAvatarClicked(@NonNull RecipientId recipientId, @NonNull GroupId groupId); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java b/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java index c390f31508..808f3f5ea1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java +++ b/app/src/main/java/org/thoughtcrime/securesms/GroupMembersDialog.java @@ -72,18 +72,7 @@ public final class GroupMembersDialog { } private void contactClick(@NonNull Recipient recipient) { - GroupId groupId = groupRecipient.requireGroupId(); - - if (groupId.isV2()) { - RecipientBottomSheetDialogFragment.create(recipient.getId(), groupId) - .show(fragmentActivity.getSupportFragmentManager(), "BOTTOM"); - } else if (recipient.getContactUri() != null) { - Intent intent = new Intent(fragmentActivity, RecipientPreferenceActivity.class); - intent.putExtra(RecipientPreferenceActivity.RECIPIENT_ID, recipient.getId()); - - fragmentActivity.startActivity(intent); - } else { - fragmentActivity.startActivity(RecipientExporter.export(recipient).asAddContactIntent()); - } + RecipientBottomSheetDialogFragment.create(recipient.getId(), groupRecipient.requireGroupId()) + .show(fragmentActivity.getSupportFragmentManager(), "BOTTOM"); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java index 44bf835c3c..f34b210ebc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java @@ -65,6 +65,8 @@ import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.MessageDetailsActivity; import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.groups.GroupId; +import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment; import org.thoughtcrime.securesms.sharing.ShareActivity; import org.thoughtcrime.securesms.attachments.Attachment; import org.thoughtcrime.securesms.components.ConversationTypingView; @@ -1301,6 +1303,13 @@ public class ConversationFragment extends Fragment ReactionsBottomSheetDialogFragment.create(messageId, isMms).show(requireFragmentManager(), null); } + + @Override + public void onGroupMemberAvatarClicked(@NonNull RecipientId recipientId, @NonNull GroupId groupId) { + if (getContext() == null) return; + + RecipientBottomSheetDialogFragment.create(recipientId, groupId).show(requireFragmentManager(), "BOTTOM"); + } } @Override 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 137dd674c7..423ea0b2b2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -103,6 +103,8 @@ import org.thoughtcrime.securesms.reactions.ReactionsConversationView; import org.thoughtcrime.securesms.recipients.LiveRecipient; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientForeverObserver; +import org.thoughtcrime.securesms.recipients.RecipientId; +import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment; import org.thoughtcrime.securesms.revealable.ViewOnceMessageView; import org.thoughtcrime.securesms.revealable.ViewOnceUtil; import org.thoughtcrime.securesms.stickers.StickerUrl; @@ -823,7 +825,16 @@ public class ConversationItem extends LinearLayout implements BindableConversati private void setContactPhoto(@NonNull Recipient recipient) { if (contactPhoto == null) return; - contactPhoto.setAvatar(glideRequests, recipient, true); + + final RecipientId recipientId = recipient.getId(); + + contactPhoto.setOnClickListener(v -> { + if (eventListener != null) { + eventListener.onGroupMemberAvatarClicked(recipientId, conversationRecipient.get().requireGroupId()); + } + }); + + contactPhoto.setAvatar(glideRequests, recipient, false); } private SpannableString linkifyMessageBody(SpannableString messageBody, boolean shouldLinkifyAllLinks) {