Restore group profile pictures after restore.
This commit is contained in:
parent
f1782d06a4
commit
2f381863ed
2 changed files with 20 additions and 8 deletions
|
@ -66,6 +66,8 @@ import org.thoughtcrime.securesms.database.SignalDatabase
|
||||||
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
|
import org.thoughtcrime.securesms.database.model.InAppPaymentSubscriberRecord
|
||||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||||
import org.thoughtcrime.securesms.groups.GroupId
|
import org.thoughtcrime.securesms.groups.GroupId
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.Job
|
||||||
|
import org.thoughtcrime.securesms.jobs.AvatarGroupsV2DownloadJob
|
||||||
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob
|
import org.thoughtcrime.securesms.jobs.RequestGroupV2InfoJob
|
||||||
import org.thoughtcrime.securesms.jobs.RestoreAttachmentJob
|
import org.thoughtcrime.securesms.jobs.RestoreAttachmentJob
|
||||||
import org.thoughtcrime.securesms.keyvalue.KeyValueStore
|
import org.thoughtcrime.securesms.keyvalue.KeyValueStore
|
||||||
|
@ -890,16 +892,18 @@ object BackupRepository {
|
||||||
AppDependencies.recipientCache.warmUp()
|
AppDependencies.recipientCache.warmUp()
|
||||||
|
|
||||||
val groupJobs = SignalDatabase.groups.getGroups().use { groups ->
|
val groupJobs = SignalDatabase.groups.getGroups().use { groups ->
|
||||||
|
val jobs = mutableListOf<Job>()
|
||||||
groups
|
groups
|
||||||
.asSequence()
|
.asSequence()
|
||||||
.mapNotNull { group ->
|
.filter { it.id.isV2 }
|
||||||
if (group.id.isV2) {
|
.forEach { group ->
|
||||||
RequestGroupV2InfoJob(group.id as GroupId.V2)
|
jobs.add(RequestGroupV2InfoJob(group.id as GroupId.V2))
|
||||||
} else {
|
val avatarKey = group.requireV2GroupProperties().avatarKey
|
||||||
null
|
if (avatarKey.isNotEmpty()) {
|
||||||
|
jobs.add(AvatarGroupsV2DownloadJob(group.id.requireV2(), avatarKey))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.toList()
|
jobs
|
||||||
}
|
}
|
||||||
AppDependencies.jobManager.addAll(groupJobs)
|
AppDependencies.jobManager.addAll(groupJobs)
|
||||||
stopwatch.split("group-jobs")
|
stopwatch.split("group-jobs")
|
||||||
|
|
|
@ -78,7 +78,9 @@ import java.util.stream.Collectors
|
||||||
import javax.annotation.CheckReturnValue
|
import javax.annotation.CheckReturnValue
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
|
|
||||||
class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseTable(context, databaseHelper), RecipientIdDatabaseReference {
|
class GroupTable(context: Context?, databaseHelper: SignalDatabase?) :
|
||||||
|
DatabaseTable(context, databaseHelper),
|
||||||
|
RecipientIdDatabaseReference {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = Log.tag(GroupTable::class.java)
|
private val TAG = Log.tag(GroupTable::class.java)
|
||||||
|
@ -1097,7 +1099,9 @@ class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseT
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Reader(val cursor: Cursor?) : Closeable, ContactSearchIterator<GroupRecord> {
|
class Reader(val cursor: Cursor?) :
|
||||||
|
Closeable,
|
||||||
|
ContactSearchIterator<GroupRecord> {
|
||||||
|
|
||||||
fun getNext(): GroupRecord? {
|
fun getNext(): GroupRecord? {
|
||||||
return if (cursor == null || !cursor.moveToNext()) {
|
return if (cursor == null || !cursor.moveToNext()) {
|
||||||
|
@ -1163,6 +1167,10 @@ class GroupTable(context: Context?, databaseHelper: SignalDatabase?) : DatabaseT
|
||||||
DecryptedGroupUtil.bannedMembersToServiceIdSet(decryptedGroup.bannedMembers)
|
DecryptedGroupUtil.bannedMembersToServiceIdSet(decryptedGroup.bannedMembers)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val avatarKey: String by lazy {
|
||||||
|
decryptedGroup.avatar
|
||||||
|
}
|
||||||
|
|
||||||
fun isAdmin(recipient: Recipient): Boolean {
|
fun isAdmin(recipient: Recipient): Boolean {
|
||||||
val aci = recipient.aci
|
val aci = recipient.aci
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue