From 30b048976c73877e57b4d94b50bf4b2dd1db0a60 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Tue, 28 Jul 2026 16:32:54 +0000 Subject: [PATCH] Cache display names when checking for group name collisions. --- .../thoughtcrime/securesms/database/NameCollisionTables.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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)) }