Bring back downstream "Update room previews once we have decryption keys"
This reverts commit 130fe7f887fe4851ec35305da23c5ffdbecad591. Also update to some newer decryption logic, and disable the new upstream logic, to avoid duplicate decryption attempts. Change-Id: Ibcea8b825d94284dfcf2d305b5f57423366601e5
This commit is contained in:
parent
73feba72f5
commit
0393dd51c9
@ -17,6 +17,9 @@
|
||||
package org.matrix.android.sdk.internal.crypto.actions
|
||||
|
||||
import androidx.annotation.WorkerThread
|
||||
import com.zhuinden.monarchy.Monarchy
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||
import org.matrix.android.sdk.api.listeners.ProgressListener
|
||||
import org.matrix.android.sdk.api.logger.LoggerTag
|
||||
@ -27,6 +30,11 @@ import org.matrix.android.sdk.internal.crypto.OutgoingKeyRequestManager
|
||||
import org.matrix.android.sdk.internal.crypto.RoomDecryptorProvider
|
||||
import org.matrix.android.sdk.internal.crypto.algorithms.megolm.MXMegolmDecryption
|
||||
import org.matrix.android.sdk.internal.crypto.store.IMXCryptoStore
|
||||
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
|
||||
import org.matrix.android.sdk.internal.database.query.where
|
||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryUpdater
|
||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||
import org.matrix.android.sdk.internal.util.time.Clock
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
@ -35,6 +43,9 @@ private val loggerTag = LoggerTag("MegolmSessionDataImporter", LoggerTag.CRYPTO)
|
||||
|
||||
internal class MegolmSessionDataImporter @Inject constructor(private val olmDevice: MXOlmDevice,
|
||||
private val roomDecryptorProvider: RoomDecryptorProvider,
|
||||
@SessionDatabase private val monarchy: Monarchy,
|
||||
private val roomSummaryUpdater: RoomSummaryUpdater,
|
||||
private val cryptoCoroutineScope: CoroutineScope,
|
||||
private val outgoingKeyRequestManager: OutgoingKeyRequestManager,
|
||||
private val cryptoStore: IMXCryptoStore,
|
||||
private val clock: Clock,
|
||||
@ -117,6 +128,15 @@ internal class MegolmSessionDataImporter @Inject constructor(private val olmDevi
|
||||
|
||||
Timber.tag(loggerTag.value).v("## importMegolmSessionsData : sessions import " + (t1 - t0) + " ms (" + megolmSessionsData.size + " sessions)")
|
||||
|
||||
// SC: Retry decrypting room previews for the room list
|
||||
cryptoCoroutineScope.launch {
|
||||
monarchy.awaitTransaction { realm ->
|
||||
RoomSummaryEntity.where(realm).findAll().forEach { entity ->
|
||||
roomSummaryUpdater.refreshLatestPreviewContent(realm, entity.roomId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ImportRoomKeysResult(totalNumbersOfKeys, totalNumbersOfImportedKeys)
|
||||
}
|
||||
}
|
||||
|
@ -99,7 +99,8 @@ class HomeDetailViewModel @AssistedInject constructor(
|
||||
|
||||
private val refreshRoomSummariesOnCryptoSessionChange = object : NewSessionListener {
|
||||
override fun onNewSession(roomId: String?, senderKey: String, sessionId: String) {
|
||||
session.roomService().refreshJoinedRoomSummaryPreviews(roomId)
|
||||
// SC: we're doing this directly in MegolmSessionDataImporter
|
||||
//session.roomService().refreshJoinedRoomSummaryPreviews(roomId)
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user