Read receipts: sort descending by timestamp
This commit is contained in:
parent
39f58d048b
commit
c313ce78cb
@ -17,6 +17,7 @@
|
|||||||
package im.vector.matrix.android.internal.database.mapper
|
package im.vector.matrix.android.internal.database.mapper
|
||||||
|
|
||||||
import im.vector.matrix.android.api.session.room.model.ReadReceipt
|
import im.vector.matrix.android.api.session.room.model.ReadReceipt
|
||||||
|
import im.vector.matrix.android.internal.database.model.ReadReceiptEntityFields
|
||||||
import im.vector.matrix.android.internal.database.model.ReadReceiptsSummaryEntity
|
import im.vector.matrix.android.internal.database.model.ReadReceiptsSummaryEntity
|
||||||
import im.vector.matrix.android.internal.database.model.UserEntity
|
import im.vector.matrix.android.internal.database.model.UserEntity
|
||||||
import im.vector.matrix.android.internal.database.query.where
|
import im.vector.matrix.android.internal.database.query.where
|
||||||
@ -25,15 +26,20 @@ import io.realm.Realm
|
|||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal class ReadReceiptsSummaryMapper @Inject constructor(@SessionDatabase private val realmConfiguration: RealmConfiguration){
|
internal class ReadReceiptsSummaryMapper @Inject constructor(@SessionDatabase private val realmConfiguration: RealmConfiguration) {
|
||||||
|
|
||||||
fun map(readReceiptsSummaryEntity: ReadReceiptsSummaryEntity): List<ReadReceipt> {
|
fun map(readReceiptsSummaryEntity: ReadReceiptsSummaryEntity): List<ReadReceipt> {
|
||||||
return Realm.getInstance(realmConfiguration).use { realm ->
|
return Realm.getInstance(realmConfiguration).use { realm ->
|
||||||
readReceiptsSummaryEntity.readReceipts.mapNotNull {
|
val readReceipts = readReceiptsSummaryEntity.readReceipts
|
||||||
val user = UserEntity.where(realm, it.userId).findFirst()
|
readReceipts
|
||||||
?: return@mapNotNull null
|
.mapNotNull {
|
||||||
ReadReceipt(user.asDomain(), it.originServerTs.toLong())
|
val user = UserEntity.where(realm, it.userId).findFirst()
|
||||||
}
|
?: return@mapNotNull null
|
||||||
|
ReadReceipt(user.asDomain(), it.originServerTs.toLong())
|
||||||
|
}
|
||||||
|
.sortedByDescending {
|
||||||
|
it.originServerTs
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user