From 2cdd05072b5e6a7363ec30d24d47dcf00e1e1896 Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 5 Aug 2022 19:28:31 +0200 Subject: [PATCH] Realm: fix upsert on other dbs --- .../matrix/android/sdk/internal/raw/RawCacheStore.kt | 1 + .../contentscanner/db/RealmContentScannerStore.kt | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/raw/RawCacheStore.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/raw/RawCacheStore.kt index f20e2668e0..21f4dbde0b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/raw/RawCacheStore.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/raw/RawCacheStore.kt @@ -45,6 +45,7 @@ internal class RawCacheStore @Inject constructor( } else { val newCacheEntity = RawCacheEntity() .apply { + this.url = url this.data = data this.lastUpdatedTimestamp = timestamp } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/RealmContentScannerStore.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/RealmContentScannerStore.kt index 6cd3f2e273..f5d27be318 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/RealmContentScannerStore.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/contentscanner/db/RealmContentScannerStore.kt @@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.session.contentscanner.db import io.realm.kotlin.TypedRealm import io.realm.kotlin.query.RealmQuery import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.flatMapConcat import kotlinx.coroutines.flow.map import org.matrix.android.sdk.api.extensions.orFalse @@ -27,6 +26,7 @@ import org.matrix.android.sdk.api.session.contentscanner.ScanState import org.matrix.android.sdk.api.session.contentscanner.ScanStatusInfo import org.matrix.android.sdk.api.util.Optional import org.matrix.android.sdk.internal.database.RealmInstance +import org.matrix.android.sdk.internal.database.andIf import org.matrix.android.sdk.internal.database.await import org.matrix.android.sdk.internal.di.ContentScannerDatabase import org.matrix.android.sdk.internal.session.SessionScope @@ -101,6 +101,8 @@ internal class RealmContentScannerStore @Inject constructor( operation(contentScanResultEntity) } else { val newContentScanResultEntity = ContentScanResultEntity().apply { + this.mediaUrl = mxcUrl + this.scannerUrl = scannerUrl operation(this) } copyToRealm(newContentScanResultEntity) @@ -148,10 +150,8 @@ internal class RealmContentScannerStore @Inject constructor( private fun TypedRealm.queryContentScanResultEntity(mxcUrl: String, scannerUrl: String?): RealmQuery { return query(ContentScanResultEntity::class, "mediaUrl == $0", mxcUrl) - .apply { - if (scannerUrl != null) { - query("scannerUrl == $0", scannerUrl) - } + .andIf(scannerUrl != null) { + query("scannerUrl == $0", scannerUrl) } }