Sort incoming messages client side, workaround backward stream issues (revisit later with new Rust implementation).

This commit is contained in:
Stefan Ceriu
2022-03-24 14:48:38 +02:00
parent c3e8ce7e47
commit c1ecf5cd10
2 changed files with 5 additions and 2 deletions

View File

@@ -151,10 +151,13 @@ class RoomProxy: RoomProxyProtocol, Equatable {
return
}
let messages = backwardStream.paginateBackwards(count: UInt64(count)).map { message in
var messages = backwardStream.paginateBackwards(count: UInt64(count)).map { message in
self.messageFactory.buildRoomMessageFrom(message)
}
// FIXME: Something wrong on the Rust side and these come in out of order sometimes.
messages = messages.sorted(by: { $0.originServerTs < $1.originServerTs })
DispatchQueue.main.async {
callback?(.success(messages))
if self.lastMessage == nil {

View File

@@ -36,7 +36,7 @@ class RoomTimelineProvider: RoomTimelineProviderProtocol {
self.roomProxy.paginateBackwards(count: count) { result in
switch result {
case .success(let messages):
self.messages.insert(contentsOf: messages.reversed(), at: 0)
self.messages.insert(contentsOf: messages, at: 0)
callback?(.success((self.messages)))
case .failure:
callback?(.failure(.generic))