From db099664995da9476e324d6286990de1691f80f0 Mon Sep 17 00:00:00 2001 From: Mikhail Filimonov Date: Sat, 19 Jul 2025 20:29:53 +0200 Subject: [PATCH] reorder folders --- .../Messages/StoryListContext.swift | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift index dee5ba492b..86fc8ed6f0 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift @@ -1424,6 +1424,27 @@ public final class PeerStoryListContext: StoryListContext { }).start() } + func reorderFolders(_ folders: [State.Folder]) { + var state = self.stateValue + state.availableFolders = folders + self.stateValue = state + + let peerId = self.peerId + let isArchived = self.isArchived + let items = state.items + let pinnedIds = state.pinnedIds + let totalCount = state.totalCount + let folders = folders + let _ = (self.account.postbox.transaction { transaction -> Void in + let key = ValueBoxKey(length: 8 + 1) + key.setInt64(0, value: peerId.toInt64()) + key.setInt8(8, value: isArchived ? 1 : 0) + if let entry = CodableEntry(CachedPeerStoryListHead(items: items.prefix(100).map { .item($0.storyItem.asStoryItem()) }, pinnedIds: pinnedIds, totalCount: Int32(totalCount), folders: folders)) { + transaction.putItemCacheEntry(id: ItemCacheEntryId(collectionId: Namespaces.CachedItemCollection.cachedPeerStoryListHeads, key: key), entry: entry) + } + }).start() + } + func addToFolder(id: Int64, items: [EngineStoryItem]) { let peerId = self.peerId let _ = (self.account.postbox.transaction { transaction -> Void in @@ -1655,6 +1676,13 @@ public final class PeerStoryListContext: StoryListContext { } } + public func reorderFolders(_ folders: [State.Folder]) { + self.impl.with { impl in + impl.reorderFolders(folders) + } + } + + public func addToFolder(id: Int64, items: [EngineStoryItem]) { self.impl.with { impl in impl.addToFolder(id: id, items: items)