Skip to content
Snippets Groups Projects
Commit cf9c58ec authored by Taras's avatar Taras
Browse files

Update user entity on presence update

parent fdb5ac4d
No related branches found
No related tags found
No related merge requests found
......@@ -21,11 +21,13 @@ import org.matrix.android.sdk.api.MatrixConfiguration
import org.matrix.android.sdk.api.session.events.model.EventType
import org.matrix.android.sdk.api.session.events.model.getPresenceContent
import org.matrix.android.sdk.api.session.sync.model.PresenceSyncResponse
import org.matrix.android.sdk.api.session.user.model.User
import org.matrix.android.sdk.internal.database.model.RoomMemberSummaryEntity
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
import org.matrix.android.sdk.internal.database.model.presence.UserPresenceEntity
import org.matrix.android.sdk.internal.database.query.updateDirectUserPresence
import org.matrix.android.sdk.internal.database.query.updateUserPresence
import org.matrix.android.sdk.internal.session.user.UserEntityFactory
import javax.inject.Inject
internal class PresenceSyncHandler @Inject constructor(private val matrixConfiguration: MatrixConfiguration) {
......@@ -53,10 +55,15 @@ internal class PresenceSyncHandler @Inject constructor(private val matrixConfigu
/**
* Store user presence to DB and update Direct Rooms and Room Member Summaries accordingly.
* Changed for Circles - added userEntity update
*/
private fun storePresenceToDB(realm: Realm, userPresenceEntity: UserPresenceEntity) =
realm.copyToRealmOrUpdate(userPresenceEntity)?.apply {
RoomSummaryEntity.updateDirectUserPresence(realm, userPresenceEntity.userId, this)
RoomMemberSummaryEntity.updateUserPresence(realm, userPresenceEntity.userId, this)
}
private fun storePresenceToDB(realm: Realm, userPresenceEntity: UserPresenceEntity) {
val userId = userPresenceEntity.userId
val updatedPresence = realm.copyToRealmOrUpdate(userPresenceEntity)?.apply {
RoomSummaryEntity.updateDirectUserPresence(realm, userId, this)
RoomMemberSummaryEntity.updateUserPresence(realm, userId, this)
}
val userEntity = UserEntityFactory.create(User(userId, updatedPresence?.displayName, userPresenceEntity.avatarUrl))
realm.insertOrUpdate(userEntity)
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment