From cea6a83d8af5403b0b9ecb0a494856241664656c Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 9 Jun 2020 13:32:48 -0400 Subject: [PATCH] Show member count in contact selection list. --- .../contacts/ContactSelectionListItem.java | 17 ++++++++++++++++- app/src/main/res/values/strings.xml | 6 ++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java index dc8aa3b2500..e36733b856b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java @@ -112,10 +112,14 @@ public void unbind(GlideRequests glideRequests) { @SuppressLint("SetTextI18n") private void setText(@Nullable Recipient recipient, int type, String name, String number, String label) { - if (number == null || number.isEmpty() || GroupId.isEncodedGroup(number)) { + if (number == null || number.isEmpty()) { this.nameView.setEnabled(false); this.numberView.setText(""); this.labelView.setVisibility(View.GONE); + } else if (recipient != null && recipient.isGroup()) { + this.nameView.setEnabled(false); + this.numberView.setText(getGroupMemberCount(recipient)); + this.labelView.setVisibility(View.GONE); } else if (type == ContactRepository.PUSH_TYPE) { this.numberView.setText(number); this.nameView.setEnabled(true); @@ -149,6 +153,14 @@ public String getChipName() { return chipName; } + private String getGroupMemberCount(@NonNull Recipient recipient) { + if (!recipient.isGroup()) { + throw new AssertionError(); + } + int memberCount = recipient.getParticipants().size(); + return getContext().getResources().getQuantityString(R.plurals.contact_selection_list_item__number_of_members, memberCount, memberCount); + } + public @Nullable LiveRecipient getRecipient() { return recipient; } @@ -165,5 +177,8 @@ public Optional getRecipientId() { public void onRecipientChanged(@NonNull Recipient recipient) { contactPhotoImage.setAvatar(glideRequests, recipient, false); nameView.setText(recipient); + if (recipient.isGroup()) { + numberView.setText(getGroupMemberCount(recipient)); + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b495b0609c8..bbcf64f80d0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1417,6 +1417,12 @@ Signal needs access to your contacts in order to display them. Show Contacts + + + %1$d member + %1$d members + + Signal message Unsecured SMS