Pagination: fix some timeline issue

This commit is contained in:
ganfra 2019-12-04 19:07:01 +01:00
parent 990a266d83
commit 20559b9fc4
3 changed files with 6 additions and 2 deletions

View File

@ -22,6 +22,7 @@ import im.vector.matrix.android.internal.database.helper.deleteOnCascade
import im.vector.matrix.android.internal.database.model.ChunkEntity import im.vector.matrix.android.internal.database.model.ChunkEntity
import im.vector.matrix.android.internal.database.model.ChunkEntityFields import im.vector.matrix.android.internal.database.model.ChunkEntityFields
import im.vector.matrix.android.internal.database.model.EventEntityFields import im.vector.matrix.android.internal.database.model.EventEntityFields
import im.vector.matrix.android.internal.database.model.RoomEntity
import im.vector.matrix.android.internal.database.query.where import im.vector.matrix.android.internal.database.query.where
import im.vector.matrix.android.internal.task.Task import im.vector.matrix.android.internal.task.Task
import im.vector.matrix.android.internal.util.awaitTransaction import im.vector.matrix.android.internal.util.awaitTransaction
@ -43,6 +44,9 @@ internal class DefaultClearUnlinkedEventsTask @Inject constructor(private val mo
unlinkedChunks.forEach { unlinkedChunks.forEach {
it.deleteOnCascade() it.deleteOnCascade()
} }
val roomEntity = RoomEntity.where(localRealm, roomId = params.roomId).findFirst()
?: return@awaitTransaction
roomEntity.untimelinedStateEvents.where().equalTo(EventEntityFields.IS_UNLINKED, true).findAll().deleteAllFromRealm()
} }
} }
} }

View File

@ -41,6 +41,6 @@ internal class DefaultGetContextOfEventTask @Inject constructor(private val room
val response = executeRequest<EventContextResponse> { val response = executeRequest<EventContextResponse> {
apiCall = roomAPI.getContextOfEvent(params.roomId, params.eventId, params.limit, filter) apiCall = roomAPI.getContextOfEvent(params.roomId, params.eventId, params.limit, filter)
} }
return tokenChunkEventPersistor.insertInDb(response, params.roomId, PaginationDirection.BACKWARDS) return tokenChunkEventPersistor.insertInDb(response, params.roomId, PaginationDirection.FORWARDS)
} }
} }

View File

@ -31,6 +31,6 @@ data class EventContextResponse(
) : TokenChunkEvent { ) : TokenChunkEvent {
override val events: List<Event> by lazy { override val events: List<Event> by lazy {
eventsAfter.reversed() + listOf(event) + eventsBefore eventsBefore.reversed() + listOf(event) + eventsAfter
} }
} }