From b4296c1e4b944a474f8d10ba4df1c3f21f8a7bd2 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 18 Mar 2026 09:51:30 -0400 Subject: [PATCH] Fix name collision clean up bug and flakey test. --- .../securesms/database/NameCollisionTablesTest.kt | 11 +++++++++++ .../securesms/database/NameCollisionTables.kt | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/database/NameCollisionTablesTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/database/NameCollisionTablesTest.kt index a30282d4be..5ce5aea97d 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/database/NameCollisionTablesTest.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/database/NameCollisionTablesTest.kt @@ -14,6 +14,7 @@ import org.junit.Test import org.junit.runner.RunWith import org.signal.storageservice.storage.protos.groups.Member import org.signal.storageservice.storage.protos.groups.local.DecryptedMember +import org.thoughtcrime.securesms.dependencies.AppDependencies import org.thoughtcrime.securesms.mms.IncomingMessage import org.thoughtcrime.securesms.profiles.ProfileName import org.thoughtcrime.securesms.recipients.Recipient @@ -53,6 +54,8 @@ class NameCollisionTablesTest { setProfileName(bob, ProfileName.fromParts("Bob", "Android")) setProfileName(alice, ProfileName.fromParts("Bob", "Android")) + AppDependencies.recipientCache.clear() + val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice) val actualBob = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob) @@ -80,6 +83,8 @@ class NameCollisionTablesTest { setProfileName(charlie, ProfileName.fromParts("Bob", "Android")) setProfileName(alice, ProfileName.fromParts("Alice", "Android")) + AppDependencies.recipientCache.clear() + val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice) val actualBob = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob) val actualCharlie = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(charlie) @@ -98,6 +103,8 @@ class NameCollisionTablesTest { setProfileName(alice, ProfileName.fromParts("Alice", "Android")) setProfileName(alice, ProfileName.fromParts("Bob", "Android")) + AppDependencies.recipientCache.clear() + val actualAlice = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(alice) assertThat(actualAlice).hasSize(2) @@ -136,6 +143,8 @@ class NameCollisionTablesTest { setProfileName(bob, ProfileName.fromParts("Bob", "Android")) SignalDatabase.nameCollisions.markCollisionsForThreadRecipientDismissed(alice) + AppDependencies.recipientCache.clear() + val actualCollisions = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(bob) assertThat(actualCollisions).hasSize(2) @@ -153,6 +162,8 @@ class NameCollisionTablesTest { SignalDatabase.threads.getOrCreateThreadIdFor(Recipient.resolved(info.recipientId)) SignalDatabase.messages.insertProfileNameChangeMessages(alice, "Bob Android", "Alice Android") + AppDependencies.recipientCache.clear() + val collisions = SignalDatabase.nameCollisions.getCollisionsForThreadRecipientId(info.recipientId) assertThat(collisions).hasSize(2) 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 d365aaaca5..abea03881c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/NameCollisionTables.kt @@ -366,7 +366,7 @@ class NameCollisionTables( writableDatabase .delete(NameCollisionMembershipTable.TABLE_NAME) - .where("${NameCollisionMembershipTable.COLLISION_ID} = ?") + .where("${NameCollisionMembershipTable.COLLISION_ID} = ?", collision.id) .run() if (collision.members.size < 2) {