diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/DecryptRoomEventUseCase.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/DecryptRoomEventUseCase.kt index 12255d07830..25a1ffc0053 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/DecryptRoomEventUseCase.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/DecryptRoomEventUseCase.kt @@ -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 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 { - return olmMachine.decryptRoomEvent(event) + return cryptoService.decryptEvent(event, "") } suspend fun decryptAndSaveResult(event: Event) { diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt index c0407ca4e8d..5ba74f705b2 100755 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/crypto/RustCryptoService.kt @@ -497,8 +497,11 @@ internal class RustCryptoService @Inject constructor( @Throws(MXCryptoError::class) override suspend fun decryptEvent(event: Event, timeline: String): MXEventDecryptionResult { return try { - olmMachine.decryptRoomEvent(event) + olmMachine.decryptRoomEvent(event).also { + liveEventManager.get().dispatchLiveEventDecrypted(event, it) + } } catch (mxCryptoError: MXCryptoError) { + liveEventManager.get().dispatchLiveEventDecryptionFailed(event, mxCryptoError) if (mxCryptoError is MXCryptoError.Base && ( mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_INBOUND_SESSION_ID || mxCryptoError.errorType == MXCryptoError.ErrorType.UNKNOWN_MESSAGE_INDEX)) {