From 7f09a37503a3b3dab670686ddbbe037581c2a2e1 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 21 Apr 2022 14:27:17 +0200 Subject: [PATCH] Move code to TimelineEventEntityQueries.kt (#5810) --- .../database/query/TimelineEventEntityQueries.kt | 11 +++++++++++ .../sync/handler/UserAccountDataSyncHandler.kt | 7 ++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/TimelineEventEntityQueries.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/TimelineEventEntityQueries.kt index 81d5ac835f..f216e93b07 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/TimelineEventEntityQueries.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/query/TimelineEventEntityQueries.kt @@ -132,3 +132,14 @@ internal fun RealmQuery.filterSendStates(sendStates: List): RealmResults { + return realm.where(TimelineEventEntity::class.java) + .`in`(TimelineEventEntityFields.ROOT.SENDER, senderIds.toTypedArray()) + .isNull(TimelineEventEntityFields.ROOT.STATE_KEY) + .findAll() +} diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UserAccountDataSyncHandler.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UserAccountDataSyncHandler.kt index ce827c2311..fa9ba371f7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UserAccountDataSyncHandler.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UserAccountDataSyncHandler.kt @@ -43,10 +43,10 @@ import org.matrix.android.sdk.internal.database.model.PushRulesEntity import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity import org.matrix.android.sdk.internal.database.model.RoomSummaryEntityFields import org.matrix.android.sdk.internal.database.model.TimelineEventEntity -import org.matrix.android.sdk.internal.database.model.TimelineEventEntityFields import org.matrix.android.sdk.internal.database.model.UserAccountDataEntity import org.matrix.android.sdk.internal.database.model.UserAccountDataEntityFields import org.matrix.android.sdk.internal.database.model.deleteOnCascade +import org.matrix.android.sdk.internal.database.query.findAllFrom import org.matrix.android.sdk.internal.database.query.getDirectRooms import org.matrix.android.sdk.internal.database.query.getOrCreate import org.matrix.android.sdk.internal.database.query.where @@ -206,10 +206,7 @@ internal class UserAccountDataSyncHandler @Inject constructor( // See https://spec.matrix.org/latest/client-server-api/#client-behaviour-22 : // "Once ignored, the client will no longer receive events sent by that user, with the exception of state events" // So just delete all non-state events from our local storage. - realm.where(TimelineEventEntity::class.java) - .`in`(TimelineEventEntityFields.ROOT.SENDER, userIds.toTypedArray()) - .isNull(TimelineEventEntityFields.ROOT.STATE_KEY) - .findAll() + TimelineEventEntity.findAllFrom(realm, userIds) .also { Timber.d("Deleting ${it.size} TimelineEventEntity from ignored users") } .forEach { it.deleteOnCascade(true)