From a114fe89f726ce36476e7b3058a5d6c244d27530 Mon Sep 17 00:00:00 2001 From: Mike Renoir <> Date: Fri, 9 Jun 2023 16:59:16 +0400 Subject: [PATCH 1/2] hasUnseen for peer state --- .../Messages/StoryListContext.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift index 70b0b01e1f..a1894173af 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift @@ -1032,6 +1032,22 @@ public final class PeerExpiringStoryListContext { } return true } + + public var hasUnseen: Bool { + for item in items { + switch item { + case let .item(item): + if item.id > maxReadId { + return true + } + case let .placeholder(id, _, _): + if id > maxReadId { + return true + } + } + } + return false + } } private let queue: Queue From 225b46d75d09032c8e2dc600f165b3638bbf5e5c Mon Sep 17 00:00:00 2001 From: Mike Renoir <> Date: Fri, 9 Jun 2023 18:32:54 +0400 Subject: [PATCH 2/2] macos syntax --- .../TelegramEngine/Messages/StoryListContext.swift | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift index a1894173af..104b45a80a 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/StoryListContext.swift @@ -485,7 +485,7 @@ public final class PeerStoryListContext { return (peerReference, items, Int(cached.totalCount)) } |> deliverOn(self.queue)).start(next: { [weak self] peerReference, items, totalCount in - guard let self else { + guard let `self` = self else { return } @@ -853,7 +853,7 @@ public final class PeerExpiringStoryListContext { PostboxViewKey.storyItems(peerId: peerId) ]) |> deliverOn(self.queue)).start(next: { [weak self] views in - guard let self else { + guard let `self` = self else { return } guard let stateView = views.views[PostboxViewKey.storiesState(key: .peer(peerId))] as? StoryStatesView else { @@ -907,10 +907,10 @@ public final class PeerExpiringStoryListContext { ) } |> deliverOn(self.queue)).start(next: { [weak self] state in - guard let self else { + guard let `self` = self else { return } - guard let state else { + guard let state = state else { return } self.statePromise.set(.single(state)) @@ -934,7 +934,7 @@ public final class PeerExpiringStoryListContext { return transaction.getPeer(peerId).flatMap(apiInputUser) } |> mapToSignal { inputUser -> Signal in - guard let inputUser else { + guard let inputUser = inputUser else { return .complete() } return account.network.request(Api.functions.stories.getUserStories(userId: inputUser))