Open new recipient bottom sheet when accessing contact from group context.

This commit is contained in:
Alex Hart 2020-04-27 13:08:06 -03:00 committed by Greyson Parrelli
parent 0b279d1df3
commit 358d6333c3
4 changed files with 25 additions and 14 deletions

View File

@ -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<Recipient> choices);
void onInviteSharedContactClicked(@NonNull List<Recipient> choices);
void onReactionClicked(long messageId, boolean isMms);
void onGroupMemberAvatarClicked(@NonNull RecipientId recipientId, @NonNull GroupId groupId);
}
}

View File

@ -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)
RecipientBottomSheetDialogFragment.create(recipient.getId(), groupRecipient.requireGroupId())
.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());
}
}
}

View File

@ -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

View File

@ -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) {