From 4c31aa574defbc20ee81c39b636e4493e72c2aed Mon Sep 17 00:00:00 2001 From: Elaine <138257830+elaine-signal@users.noreply.github.com> Date: Thu, 27 Feb 2025 12:46:29 -0700 Subject: [PATCH] Preserve pinned chat order --- .../ViewControllers/HomeView/Chat List/CLVLoader.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Signal/src/ViewControllers/HomeView/Chat List/CLVLoader.swift b/Signal/src/ViewControllers/HomeView/Chat List/CLVLoader.swift index 2ec3aab5fd..fc4de19693 100644 --- a/Signal/src/ViewControllers/HomeView/Chat List/CLVLoader.swift +++ b/Signal/src/ViewControllers/HomeView/Chat List/CLVLoader.swift @@ -88,19 +88,22 @@ public class CLVLoader { ) } - var pinnedThreadUniqueIdsForRender = [String]() + var pinnedThreadUniqueIdsToRender = Set() var unpinnedThreadUniqueIdsForRender = [String]() for threadUniqueId in visibleThreadUniqueIds { if !isViewingArchive && pinnedThreadUniqueIds.contains(threadUniqueId) { - pinnedThreadUniqueIdsForRender.append(threadUniqueId) + pinnedThreadUniqueIdsToRender.insert(threadUniqueId) } else { unpinnedThreadUniqueIdsForRender.append(threadUniqueId) } } + // Preserve the order from pinnedThreadUniqueIds + let orderedPinnedThreadUniqueIdsForRender = pinnedThreadUniqueIds.filter(pinnedThreadUniqueIdsToRender.contains(_:)) + return CLVRenderState( viewInfo: viewInfo, - pinnedThreadUniqueIds: pinnedThreadUniqueIdsForRender, + pinnedThreadUniqueIds: orderedPinnedThreadUniqueIdsForRender, unpinnedThreadUniqueIds: unpinnedThreadUniqueIdsForRender ) }