diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/profile/GetProfileInfoTask.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/profile/GetProfileInfoTask.kt index 22bb3d37b0..cd83474a20 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/profile/GetProfileInfoTask.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/profile/GetProfileInfoTask.kt @@ -17,15 +17,15 @@ package org.matrix.android.sdk.internal.session.profile -import com.zhuinden.monarchy.Monarchy +import io.realm.kotlin.UpdatePolicy import org.matrix.android.sdk.api.session.user.model.User import org.matrix.android.sdk.api.util.JsonDict +import org.matrix.android.sdk.internal.database.RealmInstance import org.matrix.android.sdk.internal.di.SessionDatabase import org.matrix.android.sdk.internal.network.GlobalErrorReceiver import org.matrix.android.sdk.internal.network.executeRequest import org.matrix.android.sdk.internal.session.user.UserEntityFactory import org.matrix.android.sdk.internal.task.Task -import org.matrix.android.sdk.internal.util.awaitTransaction import javax.inject.Inject internal abstract class GetProfileInfoTask : Task { @@ -38,7 +38,7 @@ internal abstract class GetProfileInfoTask : Task if (params.storeInDatabase) { // Insert into DB - monarchy.awaitTransaction { - it.insertOrUpdate(UserEntityFactory.create(User.fromJson(params.userId, user))) + realmInstance.write { + copyToRealm( + instance = UserEntityFactory.create(User.fromJson(params.userId, user)), + updatePolicy = UpdatePolicy.ALL + ) } } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UpdateUserWorker.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UpdateUserWorker.kt index 330a9d7693..15d81de297 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UpdateUserWorker.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/sync/handler/UpdateUserWorker.kt @@ -18,6 +18,7 @@ package org.matrix.android.sdk.internal.session.sync.handler import android.content.Context import androidx.work.WorkerParameters +import io.realm.kotlin.UpdatePolicy import org.matrix.android.sdk.api.extensions.tryOrNull import org.matrix.android.sdk.api.session.user.model.User import org.matrix.android.sdk.internal.SessionManager @@ -89,7 +90,7 @@ internal class UpdateUserWorker(context: Context, params: WorkerParameters, sess realmInstance.write { Timber.d("## saveLocally() - in transaction") userEntities.forEach { - copyToRealm(it) + copyToRealm(it, updatePolicy = UpdatePolicy.ALL) } } Timber.d("## saveLocally() - END")