From 19414172b4efeeb1f3517262c89d366ba00a8642 Mon Sep 17 00:00:00 2001 From: manuroe Date: Thu, 13 Apr 2023 20:46:44 +0200 Subject: [PATCH] Display the room list even if the room count is not exact (#800) * Add log to know why HomeScreenViewModel.roomListMode is .skeletons To better understand issue #796 * Display the room list even if the room count is not exact This is a workaround for #796 --- .../Sources/Screens/HomeScreen/HomeScreenViewModel.swift | 5 ++++- .../Services/Room/RoomSummary/RoomSummaryProvider.swift | 2 +- changelog.d/796.bugfix | 1 + 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 changelog.d/796.bugfix diff --git a/ElementX/Sources/Screens/HomeScreen/HomeScreenViewModel.swift b/ElementX/Sources/Screens/HomeScreen/HomeScreenViewModel.swift index 7759245f9..ba48ffc68 100644 --- a/ElementX/Sources/Screens/HomeScreen/HomeScreenViewModel.swift +++ b/ElementX/Sources/Screens/HomeScreen/HomeScreenViewModel.swift @@ -73,7 +73,7 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol .sink { [weak self] roomSummaryProviderState, totalCount, rooms in guard let self else { return } - let isLoadingData = roomSummaryProviderState != .fullyLoaded && (totalCount == 0 || rooms.count != totalCount) + let isLoadingData = roomSummaryProviderState != .fullyLoaded && (totalCount == 0 || rooms.count < totalCount) let hasNoRooms = roomSummaryProviderState == .fullyLoaded && totalCount == 0 var roomListMode = self.state.roomListMode @@ -92,6 +92,9 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol self.state.roomListMode = roomListMode MXLog.info("Received visibleRoomsSummaryProvider update, setting view room list mode to \"\(self.state.roomListMode)\"") + if roomListMode == .skeletons { + MXLog.info("roomSummaryProviderState: \(roomSummaryProviderState). rooms.count: \(rooms.count) / totalCount: \(totalCount)") + } // Delay user profile detail loading until after the initial room list loads if roomListMode == .rooms { diff --git a/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift b/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift index ba65d4ece..ce088c326 100644 --- a/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift +++ b/ElementX/Sources/Services/Room/RoomSummary/RoomSummaryProvider.swift @@ -89,7 +89,7 @@ class RoomSummaryProvider: RoomSummaryProviderProtocol { detectDuplicatesInRoomList(rooms) - MXLog.info("Finished applying \(diffs.count) diffs") + MXLog.info("Finished applying \(diffs.count) diffs, new count: \(rooms.count)") } private func buildRoomSummaryForIdentifier(_ identifier: String, invalidated: Bool) -> RoomSummary { diff --git a/changelog.d/796.bugfix b/changelog.d/796.bugfix new file mode 100644 index 000000000..925f302e8 --- /dev/null +++ b/changelog.d/796.bugfix @@ -0,0 +1 @@ +Display the room list even if the room count is not exact. \ No newline at end of file