Refresh reactions for more messages

This commit is contained in:
Ali 2021-12-30 18:36:23 +04:00
parent 3e137f2f69
commit cae8ab88c8

View File

@ -1785,6 +1785,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
let historyView = transactionState.historyView
var isTopReplyThreadMessageShownValue = false
var topVisibleMessageRange: ChatTopVisibleMessageRange?
if let visible = displayedRange.visibleRange {
let indexRange = (historyView.filteredEntries.count - 1 - visible.lastIndex, historyView.filteredEntries.count - 1 - visible.firstIndex)
if indexRange.0 > indexRange.1 {
@ -1798,7 +1799,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
let toLaterRange = (historyView.filteredEntries.count - 1 - (visible.firstIndex - 1), historyView.filteredEntries.count - 1)
var messageIdsWithViewCount: [MessageId] = []
var messageIdsWithPossibleReactions: [MessageId] = []
var messageIdsWithLiveLocation: [MessageId] = []
var messageIdsWithUnsupportedMedia: [MessageId] = []
var messageIdsWithRefreshMedia: [MessageId] = []
@ -1834,11 +1834,8 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
contentRequiredValidation = true
}
}
var hasAction = false
for media in message.media {
if let _ = media as? TelegramMediaAction {
hasAction = true
} else if let _ = media as? TelegramMediaUnsupported {
if let _ = media as? TelegramMediaUnsupported {
contentRequiredValidation = true
} else if message.flags.contains(.Incoming), let media = media as? TelegramMediaMap, let liveBroadcastingTimeout = media.liveBroadcastingTimeout {
let timestamp = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970)
@ -1865,14 +1862,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
}
}
}
if !hasAction {
switch message.id.peerId.namespace {
case Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel:
messageIdsWithPossibleReactions.append(message.id)
default:
break
}
}
if contentRequiredValidation {
messageIdsWithUnsupportedMedia.append(message.id)
}
@ -1932,6 +1921,46 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
}
}
var messageIdsWithPossibleReactions: [MessageId] = []
for entry in historyView.filteredEntries {
switch entry {
case let .MessageEntry(message, _, _, _, _, _):
var hasAction = false
for media in message.media {
if let _ = media as? TelegramMediaAction {
hasAction = true
}
}
if !hasAction {
switch message.id.peerId.namespace {
case Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel:
messageIdsWithPossibleReactions.append(message.id)
default:
break
}
}
case let .MessageGroupEntry(_, messages, _):
for (message, _, _, _, _) in messages {
var hasAction = false
for media in message.media {
if let _ = media as? TelegramMediaAction {
hasAction = true
}
}
if !hasAction {
switch message.id.peerId.namespace {
case Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel:
messageIdsWithPossibleReactions.append(message.id)
default:
break
}
}
}
default:
break
}
}
func addMediaToPrefetch(_ message: Message, _ media: Media, _ messages: inout [(Message, Media)]) -> Bool {
if media is TelegramMediaImage || media is TelegramMediaFile {
messages.append((message, media))