From 263ddb0d1e66a48300da13749de65f96a114e31d Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 16 Jun 2021 13:32:15 -0400 Subject: [PATCH] Fix main thread recipient resolve in contact selection. --- .../contacts/ContactSelectionListItem.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) 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 8c3e2f0b4..970541c09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/ContactSelectionListItem.java @@ -38,6 +38,10 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF private String number; private String chipName; private int contactType; + private String contactName; + private String contactNumber; + private String contactLabel; + private String contactAbout; private LiveRecipient recipient; private GlideRequests glideRequests; @@ -74,6 +78,10 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF this.glideRequests = glideRequests; this.number = number; this.contactType = type; + this.contactName = name; + this.contactNumber = number; + this.contactLabel = label; + this.contactAbout = about; if (type == ContactRepository.NEW_PHONE_TYPE || type == ContactRepository.NEW_USERNAME_TYPE) { this.recipient = null; @@ -88,9 +96,13 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF this.nameView.setTextColor(color); this.numberView.setTextColor(color); - this.contactPhotoImage.setAvatar(glideRequests, recipientSnapshot, false); - - setText(recipientSnapshot, type, name, number, label, about); + if (recipientSnapshot == null || recipientSnapshot.isResolving()) { + this.contactPhotoImage.setAvatar(glideRequests, null, false); + setText(null, type, name, number, label, about); + } else { + this.contactPhotoImage.setAvatar(glideRequests, recipientSnapshot, false); + setText(recipientSnapshot, type, name, number, label, about); + } this.checkBox.setVisibility(checkboxVisible ? View.VISIBLE : View.GONE); } @@ -178,9 +190,6 @@ public class ContactSelectionListItem extends LinearLayout implements RecipientF @Override public void onRecipientChanged(@NonNull Recipient recipient) { contactPhotoImage.setAvatar(glideRequests, recipient, false); - nameView.setText(recipient); - if (recipient.isGroup()) { - numberView.setText(getGroupMemberCount(recipient)); - } + setText(recipient, contactType, contactName, contactNumber, contactLabel, contactAbout); } }