From 7d60fe85e6dd61a52a6c8352e6e82f949addceaa Mon Sep 17 00:00:00 2001 From: Mikhail Filimonov Date: Tue, 25 Feb 2025 12:58:14 +0400 Subject: [PATCH] settings --- .../TelegramEngine/Data/PeersData.swift | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Data/PeersData.swift b/submodules/TelegramCore/Sources/TelegramEngine/Data/PeersData.swift index 71ed10b3ac..7e88003d75 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Data/PeersData.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Data/PeersData.swift @@ -861,6 +861,38 @@ public extension TelegramEngine.EngineData.Item { } } + public struct PeerSettings: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem { + public typealias Result = Optional + + fileprivate var id: EnginePeer.Id + public var mapKey: EnginePeer.Id { + return self.id + } + + public init(id: EnginePeer.Id) { + self.id = id + } + + var key: PostboxViewKey { + return .cachedPeerData(peerId: self.id) + } + + func extract(view: PostboxView) -> Result { + guard let view = view as? CachedPeerDataView else { + preconditionFailure() + } + if let cachedData = view.cachedPeerData as? CachedUserData { + return cachedData.peerStatusSettings + } else if let cachedData = view.cachedPeerData as? CachedChannelData { + return cachedData.peerStatusSettings + } else if let cachedData = view.cachedPeerData as? CachedGroupData { + return cachedData.peerStatusSettings + } else { + return nil + } + } + } + public struct AreVideoCallsAvailable: TelegramEngineDataItem, TelegramEngineMapKeyDataItem, PostboxViewDataItem { public typealias Result = Bool