Add back custom identifiers for invalidated room, avoid duplicates and gaps on the room list

This commit is contained in:
Stefan Ceriu
2023-06-19 14:35:03 +03:00
committed by Stefan Ceriu
parent ee643f7a69
commit d120a53ebd
5 changed files with 26 additions and 18 deletions
@@ -141,7 +141,7 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol {
MXLog.verbose("\(name): Finished applying \(diffs.count) diffs, new room list \(rooms.compactMap { $0.id ?? "Empty" })")
}
private func buildRoomSummaryForIdentifier(_ identifier: String) -> RoomSummary {
private func buildRoomSummaryForIdentifier(_ identifier: String, invalidated: Bool) -> RoomSummary {
guard let roomListItem = try? roomListService.room(roomId: identifier) else {
MXLog.error("\(name): Failed finding room with id: \(identifier)")
return .empty
@@ -167,7 +167,7 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol {
unreadNotificationCount: UInt(roomListItem.unreadNotifications().notificationCount()),
canonicalAlias: room.canonicalAlias())
return .filled(details: details)
return invalidated ? .invalidated(details: details) : .filled(details: details)
}
private func buildSummaryForRoomListEntry(_ entry: RoomListEntry) -> RoomSummary {
@@ -175,9 +175,9 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol {
case .empty:
return .empty
case .filled(let roomId):
return buildRoomSummaryForIdentifier(roomId)
return buildRoomSummaryForIdentifier(roomId, invalidated: false)
case .invalidated(let roomId):
return buildRoomSummaryForIdentifier(roomId)
return buildRoomSummaryForIdentifier(roomId, invalidated: true)
}
}