From 4c45d8722cbe8c0eb4edd000f286ef96cf173ffb Mon Sep 17 00:00:00 2001 From: Stefan Ceriu Date: Mon, 26 Jun 2023 12:27:14 +0300 Subject: [PATCH] Reuse previously build room summaries for diffs that contain invalidations --- .../Room/RoomSummary/RoomSummaryProvider.swift | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift b/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift index aeceb478f..e78c765b0 100644 --- a/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift +++ b/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift @@ -177,7 +177,18 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol { case .filled(let roomId): return buildRoomSummaryForIdentifier(roomId, invalidated: false) case .invalidated(let roomId): - return buildRoomSummaryForIdentifier(roomId, invalidated: true) + guard let cachedRoom = rooms.first(where: { $0.id == roomId }) else { + return buildRoomSummaryForIdentifier(roomId, invalidated: true) + } + + switch cachedRoom { + case .empty: + return .empty + case .filled(let details): + return .invalidated(details: details) + case .invalidated: + return cachedRoom + } } }