From 6b6dea0c457ae0dd5a26bf4b20a6158ddf17dbb8 Mon Sep 17 00:00:00 2001 From: Maxime NATUREL <46314705+mnaturel@users.noreply.github.com> Date: Thu, 19 Jan 2023 17:48:19 +0100 Subject: [PATCH] Store in DB events which failed to be decrypted --- .../internal/session/room/event/FilterAndStoreEventsTask.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/event/FilterAndStoreEventsTask.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/event/FilterAndStoreEventsTask.kt index aa836c8491..e6e169b9b4 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/event/FilterAndStoreEventsTask.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/room/event/FilterAndStoreEventsTask.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.room.event import com.zhuinden.monarchy.Monarchy import org.matrix.android.sdk.api.session.events.model.Event +import org.matrix.android.sdk.api.session.events.model.EventType import org.matrix.android.sdk.api.session.room.send.SendState import org.matrix.android.sdk.internal.crypto.EventDecryptor import org.matrix.android.sdk.internal.database.mapper.toEntity @@ -48,7 +49,9 @@ internal class DefaultFilterAndStoreEventsTask @Inject constructor( override suspend fun execute(params: FilterAndStoreEventsTask.Params) { val filteredEvents = params.events .map { decryptEventIfNeeded(it) } - .filter { params.filterPredicate(it) } + // we also filter in the encrypted events since it means there was decryption error for them + // and they may be decrypted later + .filter { params.filterPredicate(it) || it.getClearType() == EventType.ENCRYPTED } addMissingEventsInDB(params.roomId, filteredEvents) }