From 689ee243aae28394d65c54b2a71f29a1ead2852e Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Fri, 17 May 2024 11:57:45 -0400 Subject: [PATCH] Fix potential sqlite conflict in dlist on recipient remap. --- .../securesms/database/DistributionListTables.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListTables.kt b/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListTables.kt index 04fe2c431d..e39d9f3774 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListTables.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListTables.kt @@ -15,6 +15,7 @@ import org.signal.core.util.requireNonNullString import org.signal.core.util.requireObject import org.signal.core.util.requireString import org.signal.core.util.select +import org.signal.core.util.update import org.signal.core.util.withinTransaction import org.thoughtcrime.securesms.database.model.DistributionListId import org.thoughtcrime.securesms.database.model.DistributionListPrivacyData @@ -524,10 +525,11 @@ class DistributionListTables constructor(context: Context?, databaseHelper: Sign } override fun remapRecipient(oldId: RecipientId, newId: RecipientId) { - val values = ContentValues().apply { - put(MembershipTable.RECIPIENT_ID, newId.serialize()) - } - writableDatabase.update(MembershipTable.TABLE_NAME, values, "${MembershipTable.RECIPIENT_ID} = ?", SqlUtil.buildArgs(oldId)) + writableDatabase + .update(MembershipTable.TABLE_NAME) + .values(MembershipTable.RECIPIENT_ID to newId.serialize()) + .where("${MembershipTable.RECIPIENT_ID} = ?", oldId) + .run(SQLiteDatabase.CONFLICT_REPLACE) } fun deleteList(distributionListId: DistributionListId, deletionTimestamp: Long = System.currentTimeMillis()) {