diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index f4fb597d67..69e465dd12 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -4975,8 +4975,17 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G var minOffsetForNavigation: CGFloat = 40.0 strongSelf.chatDisplayNode.historyNode.enumerateItemNodes { itemNode in if let itemNode = itemNode as? ChatMessageBubbleItemNode { - if itemNode.item?.content.firstMessage.adAttribute != nil { + if let message = itemNode.item?.content.firstMessage, message.adAttribute != nil { minOffsetForNavigation += itemNode.bounds.height + + switch offset { + case let .known(offset): + if offset <= itemNode.bounds.height / 2.0 { + strongSelf.chatDisplayNode.historyNode.adSeenProcessingManager.add([message.id]) + } + default: + break + } } } return false diff --git a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift index 3f9511ba86..414a9b0879 100644 --- a/submodules/TelegramUI/Sources/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/Sources/ChatHistoryListNode.swift @@ -469,7 +469,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { private let galleryHiddenMesageAndMediaDisposable = MetaDisposable() private let messageProcessingManager = ChatMessageThrottledProcessingManager() - private let adSeenProcessingManager = ChatMessageThrottledProcessingManager() + let adSeenProcessingManager = ChatMessageThrottledProcessingManager() private let seenLiveLocationProcessingManager = ChatMessageThrottledProcessingManager() private let unsupportedMessageProcessingManager = ChatMessageThrottledProcessingManager() private let refreshMediaProcessingManager = ChatMessageThrottledProcessingManager() @@ -1563,7 +1563,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { let toLaterRange = (historyView.filteredEntries.count - 1 - (visible.firstIndex - 1), historyView.filteredEntries.count - 1) var messageIdsWithViewCount: [MessageId] = [] - var messageIdsWithAds: [MessageId] = [] var messageIdsWithLiveLocation: [MessageId] = [] var messageIdsWithUnsupportedMedia: [MessageId] = [] var messageIdsWithRefreshMedia: [MessageId] = [] @@ -1589,8 +1588,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { if message.id.namespace == Namespaces.Message.Cloud { messageIdsWithViewCount.append(message.id) } - } else if attribute is AdMessageAttribute { - messageIdsWithAds.append(message.id) } else if attribute is ReplyThreadMessageAttribute { if message.id.namespace == Namespaces.Message.Cloud { messageIdsWithViewCount.append(message.id) @@ -1754,9 +1751,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { if !messageIdsWithViewCount.isEmpty { self.messageProcessingManager.add(messageIdsWithViewCount) } - if !messageIdsWithAds.isEmpty { - self.adSeenProcessingManager.add(messageIdsWithAds) - } if !messageIdsWithLiveLocation.isEmpty { self.seenLiveLocationProcessingManager.add(messageIdsWithLiveLocation) }