diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift index 0facc485d0e..a2b94968597 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift @@ -592,7 +592,11 @@ public class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { } } - let isPlaying = self.visibilityStatus == true && !self.forceStopAnimations + var isPlaying = self.visibilityStatus == true && !self.forceStopAnimations + if !item.controllerInteraction.canReadHistory { + isPlaying = false + } + if !isPlaying { self.removeAdditionalAnimations() self.removeEffectAnimations() diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageBubbleItemNode/Sources/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageBubbleItemNode/Sources/ChatMessageBubbleItemNode.swift index 0c499856246..64e5e5303a3 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageBubbleItemNode/Sources/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageBubbleItemNode/Sources/ChatMessageBubbleItemNode.swift @@ -5936,6 +5936,9 @@ public class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewI } else { isPlaying = false } + if !item.controllerInteraction.canReadHistory { + isPlaying = false + } if !isPlaying { self.removeEffectAnimations() diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift index 62e1b527e6f..dd0b6861559 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift @@ -2156,6 +2156,9 @@ public class ChatMessageStickerItemNode: ChatMessageItemView { } else { isPlaying = false } + if !item.controllerInteraction.canReadHistory { + isPlaying = false + } if !isPlaying { self.removeEffectAnimations() diff --git a/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift b/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift index 6ec33fbc47f..54c52fc2f4b 100644 --- a/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/Components/ChatControllerInteraction/Sources/ChatControllerInteraction.swift @@ -293,6 +293,7 @@ public final class ChatControllerInteraction: ChatControllerInteractionProtocol public var recommendedChannelsOpenUp: Bool = false public var enableFullTranslucency: Bool = true public var chatIsRotated: Bool = true + public var canReadHistory: Bool = false public init( openMessage: @escaping (Message, OpenMessageParams) -> Bool, diff --git a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift index 36b396b27ef..16cdfd2f620 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift @@ -2121,6 +2121,7 @@ public final class ChatHistoryListNodeImpl: ListView, ChatHistoryNode, ChatHisto if let strongSelf = self { if strongSelf.canReadHistoryValue != value { strongSelf.canReadHistoryValue = value + strongSelf.controllerInteraction.canReadHistory = value strongSelf.updateReadHistoryActions() if strongSelf.canReadHistoryValue && !strongSelf.suspendReadingReactions && !strongSelf.messageIdsScheduledForMarkAsSeen.isEmpty { @@ -2189,6 +2190,12 @@ public final class ChatHistoryListNodeImpl: ListView, ChatHistoryNode, ChatHisto self.messageIdsWithReactionsScheduledForMarkAsSeen.removeAll() self.context.account.viewTracker.updateMarkReactionsSeenForMessageIds(messageIds: messageIds) } + + if self.canReadHistoryValue { + self.forEachVisibleMessageItemNode { itemNode in + itemNode.unreadMessageRangeUpdated() + } + } } func takeGenericReactionEffect() -> String? {