That fuck shit the fascists are using
at master 59 lines 2.3 kB view raw
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}