That fuck shit the fascists are using
1package org.tm.archive;
2
3import androidx.annotation.NonNull;
4import androidx.appcompat.app.AlertDialog;
5import androidx.fragment.app.FragmentActivity;
6import androidx.lifecycle.LiveData;
7
8import com.google.android.material.dialog.MaterialAlertDialogBuilder;
9
10import org.tm.archive.groups.LiveGroup;
11import org.tm.archive.groups.ui.GroupMemberEntry;
12import org.tm.archive.groups.ui.GroupMemberListView;
13import org.tm.archive.recipients.Recipient;
14import org.tm.archive.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment;
15
16import java.util.List;
17
18public final class GroupMembersDialog {
19
20 private final FragmentActivity fragmentActivity;
21 private final Recipient groupRecipient;
22
23 public GroupMembersDialog(@NonNull FragmentActivity activity,
24 @NonNull Recipient groupRecipient)
25 {
26 this.fragmentActivity = activity;
27 this.groupRecipient = groupRecipient;
28 }
29
30 public void display() {
31 AlertDialog dialog = new MaterialAlertDialogBuilder(fragmentActivity)
32 .setTitle(R.string.ConversationActivity_group_members)
33 .setIcon(R.drawable.ic_group_24)
34 .setCancelable(true)
35 .setView(R.layout.dialog_group_members)
36 .setPositiveButton(android.R.string.ok, null)
37 .show();
38
39 GroupMemberListView memberListView = dialog.findViewById(R.id.list_members);
40 memberListView.initializeAdapter(fragmentActivity);
41
42 LiveGroup liveGroup = new LiveGroup(groupRecipient.requireGroupId());
43 LiveData<List<GroupMemberEntry.FullMember>> fullMembers = liveGroup.getFullMembers();
44
45 //noinspection ConstantConditions
46 fullMembers.observe(fragmentActivity, memberListView::setMembers);
47
48 dialog.setOnDismissListener(d -> fullMembers.removeObservers(fragmentActivity));
49
50 memberListView.setRecipientClickListener(recipient -> {
51 dialog.dismiss();
52 contactClick(recipient);
53 });
54 }
55
56 private void contactClick(@NonNull Recipient recipient) {
57 RecipientBottomSheetDialogFragment.show(fragmentActivity.getSupportFragmentManager(), recipient.getId(), groupRecipient.requireGroupId());
58 }
59}