From 51602ed23196b73a2188b4873ca4e918bef8b2f2 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 17 Aug 2023 14:38:45 -0300 Subject: [PATCH] Wrap thread get/create into a transaction. --- .../org/thoughtcrime/securesms/database/ThreadTable.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt index 5928ae1459..1244318e83 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/ThreadTable.kt @@ -1162,13 +1162,14 @@ class ThreadTable(context: Context, databaseHelper: SignalDatabase) : DatabaseTa } fun getOrCreateThreadIdFor(recipient: Recipient, distributionType: Int): Long { - val threadId = getThreadIdFor(recipient.id) - return threadId ?: createThreadForRecipient(recipient.id, recipient.isGroup, distributionType) + return getOrCreateThreadIdFor(recipient.id, recipient.isGroup, distributionType) } fun getOrCreateThreadIdFor(recipientId: RecipientId, isGroup: Boolean, distributionType: Int = DistributionTypes.DEFAULT): Long { - val threadId = getThreadIdFor(recipientId) - return threadId ?: createThreadForRecipient(recipientId, isGroup, distributionType) + return writableDatabase.withinTransaction { + val threadId = getThreadIdFor(recipientId) + threadId ?: createThreadForRecipient(recipientId, isGroup, distributionType) + } } fun areThreadIdAndRecipientAssociated(threadId: Long, recipient: Recipient): Boolean {