diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListDatabase.kt index 943e53d039..40a99fd96c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/DistributionListDatabase.kt @@ -183,7 +183,8 @@ class DistributionListDatabase constructor(context: Context?, databaseHelper: Si members: List, distributionId: DistributionId = DistributionId.from(UUID.randomUUID()), allowsReplies: Boolean = true, - deletionTimestamp: Long = 0L + deletionTimestamp: Long = 0L, + storageId: ByteArray? = null ): DistributionListId? { val db = writableDatabase @@ -203,7 +204,7 @@ class DistributionListDatabase constructor(context: Context?, databaseHelper: Si return null } - val recipientId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.from(id)) + val recipientId = SignalDatabase.recipients.getOrInsertFromDistributionListId(DistributionListId.from(id), storageId) writableDatabase.update( ListTable.TABLE_NAME, ContentValues().apply { put(ListTable.RECIPIENT_ID, recipientId.serialize()) }, @@ -422,7 +423,8 @@ class DistributionListDatabase constructor(context: Context?, databaseHelper: Si members = insert.recipients.map(RecipientId::from), distributionId = distributionId, allowsReplies = insert.allowsReplies(), - deletionTimestamp = insert.deletedAtTimestamp + deletionTimestamp = insert.deletedAtTimestamp, + storageId = insert.id.raw ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.kt b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.kt index 3b328d5c78..e3da2eff09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/RecipientDatabase.kt @@ -614,14 +614,15 @@ open class RecipientDatabase(context: Context, databaseHelper: SignalDatabase) : return getOrInsertByColumn(EMAIL, email).recipientId } - fun getOrInsertFromDistributionListId(distributionListId: DistributionListId): RecipientId { + @JvmOverloads + fun getOrInsertFromDistributionListId(distributionListId: DistributionListId, storageId: ByteArray? = null): RecipientId { return getOrInsertByColumn( DISTRIBUTION_LIST_ID, distributionListId.serialize(), ContentValues().apply { put(GROUP_TYPE, GroupType.DISTRIBUTION_LIST.id) put(DISTRIBUTION_LIST_ID, distributionListId.serialize()) - put(STORAGE_SERVICE_ID, Base64.encodeBytes(StorageSyncHelper.generateKey())) + put(STORAGE_SERVICE_ID, Base64.encodeBytes(storageId ?: StorageSyncHelper.generateKey())) put(PROFILE_SHARING, 1) } ).recipientId