mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-25 05:27:42 +00:00
Fix storage sync bug for distribution lists.
This commit is contained in:
committed by
Greyson Parrelli
parent
8a2f89b4f6
commit
f10d5651f0
@@ -183,7 +183,8 @@ class DistributionListDatabase constructor(context: Context?, databaseHelper: Si
|
||||
members: List<RecipientId>,
|
||||
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
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user