Merge pull request #8777 from element-hq/fix_eventstream_rust
Fix StreamEventsManager not signaling event decryptions
This commit is contained in:
commit
4231b32cc2
|
@ -22,10 +22,12 @@ import org.matrix.android.sdk.api.session.crypto.model.OlmDecryptionResult
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal class DecryptRoomEventUseCase @Inject constructor(private val olmMachine: OlmMachine) {
|
internal class DecryptRoomEventUseCase @Inject constructor(
|
||||||
|
private val cryptoService: RustCryptoService
|
||||||
|
) {
|
||||||
|
|
||||||
suspend operator fun invoke(event: Event): MXEventDecryptionResult {
|
suspend operator fun invoke(event: Event): MXEventDecryptionResult {
|
||||||
return olmMachine.decryptRoomEvent(event)
|
return cryptoService.decryptEvent(event, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun decryptAndSaveResult(event: Event) {
|
suspend fun decryptAndSaveResult(event: Event) {
|
||||||
|
|
|
@ -497,8 +497,11 @@ internal class RustCryptoService @Inject constructor(
|
||||||
@Throws(MXCryptoError::class)
|
@Throws(MXCryptoError::class)
|
||||||
override suspend fun decryptEvent(event: Event, timeline: String): MXEventDecryptionResult {
|
override suspend fun decryptEvent(event: Event, timeline: String): MXEventDecryptionResult {
|
||||||
return try {
|
return try {
|
||||||
olmMachine.decryptRoomEvent(event)
|
olmMachine.decryptRoomEvent(event).also {
|
||||||
|
liveEventManager.get().dispatchLiveEventDecrypted(event, it)
|
||||||
|
}
|
||||||
} catch (mxCryptoError: MXCryptoError) {
|
} catch (mxCryptoError: MXCryptoError) {
|
||||||
|
liveEventManager.get().dispatchLiveEventDecryptionFailed(event, mxCryptoError)
|
||||||
if (mxCryptoError is MXCryptoError.Base && (
|
if (mxCryptoError is MXCryptoError.Base && (
|
||||||
mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID ||
|
mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID ||
|
||||||
mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_MESSAGE_INDEX)) {
|
mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_MESSAGE_INDEX)) {
|
||||||
|
|
Loading…
Reference in New Issue