diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt b/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt index c12b3b1261..4710d016be 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt @@ -521,6 +521,9 @@ class NameCollisionTables( val results = mutableListOf() + val cachedDisplayNames = HashMap(members.size + changed.size) + val displayName = { recipient: Recipient -> cachedDisplayNames.getOrPut(recipient.id) { recipient.getDisplayName(context) } } + for (reviewRecipient in changed) { if (results.contains(reviewRecipient)) { continue @@ -528,8 +531,10 @@ class NameCollisionTables( members.remove(reviewRecipient.recipient) + val changedDisplayName = displayName(reviewRecipient.recipient) + for (member in members) { - if (member.getDisplayName(context) == reviewRecipient.recipient.getDisplayName(context)) { + if (displayName(member) == changedDisplayName) { results.add(reviewRecipient) results.add(ReviewRecipient(member)) }