Fix compilation issue and ensure we update existing data.
This commit is contained in:
parent
c43b50b675
commit
e7587a6f47
@ -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<GetProfileInfoTask.Params, JsonDict> {
|
||||
@ -38,7 +38,7 @@ internal abstract class GetProfileInfoTask : Task<GetProfileInfoTask.Params, Jso
|
||||
internal class DefaultGetProfileInfoTask @Inject constructor(
|
||||
private val profileAPI: ProfileAPI,
|
||||
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||
@SessionDatabase private val monarchy: Monarchy,
|
||||
@SessionDatabase private val realmInstance: RealmInstance,
|
||||
) : GetProfileInfoTask() {
|
||||
|
||||
override suspend fun execute(params: Params): JsonDict {
|
||||
@ -47,8 +47,11 @@ internal class DefaultGetProfileInfoTask @Inject constructor(
|
||||
}.also { user ->
|
||||
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
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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")
|
||||
|
Loading…
x
Reference in New Issue
Block a user