Sort incoming messages client side, workaround backward stream issues (revisit later with new Rust implementation).
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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))
|
||||
|
||||
Reference in New Issue
Block a user