mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
Various improvements
This commit is contained in:
@@ -2015,6 +2015,39 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
return
|
||||
}
|
||||
|
||||
var messageIdsToTranslate: [MessageId] = []
|
||||
if let translateToLanguage {
|
||||
let extendedRange: Int = 2
|
||||
var wideIndexRange = (historyView.filteredEntries.count - 1 - visible.lastIndex - extendedRange, historyView.filteredEntries.count - 1 - visible.firstIndex + extendedRange)
|
||||
wideIndexRange = (max(0, min(historyView.filteredEntries.count - 1, wideIndexRange.0)), max(0, min(historyView.filteredEntries.count - 1, wideIndexRange.1)))
|
||||
if wideIndexRange.0 > wideIndexRange.1 {
|
||||
assert(false)
|
||||
return
|
||||
}
|
||||
|
||||
if wideIndexRange.0 <= wideIndexRange.1 {
|
||||
for i in (wideIndexRange.0 ... wideIndexRange.1) {
|
||||
switch historyView.filteredEntries[i] {
|
||||
case let .MessageEntry(message, _, _, _, _, _):
|
||||
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
|
||||
} else if !message.text.isEmpty {
|
||||
messageIdsToTranslate.append(message.id)
|
||||
}
|
||||
case let .MessageGroupEntry(_, messages, _):
|
||||
for (message, _, _, _, _) in messages {
|
||||
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
|
||||
} else if !message.text.isEmpty {
|
||||
messageIdsToTranslate.append(message.id)
|
||||
}
|
||||
}
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
let readIndexRange = (0, historyView.filteredEntries.count - 1 - visible.firstIndex)
|
||||
|
||||
let toEarlierRange = (0, historyView.filteredEntries.count - 1 - visible.lastIndex - 1)
|
||||
@@ -2027,7 +2060,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
var messageIdsWithUnseenPersonalMention: [MessageId] = []
|
||||
var messageIdsWithUnseenReactions: [MessageId] = []
|
||||
var messageIdsWithInactiveExtendedMedia = Set<MessageId>()
|
||||
var messageIdsToTranslate: [MessageId] = []
|
||||
var downloadableResourceIds: [(messageId: MessageId, resourceId: String)] = []
|
||||
var allVisibleAnchorMessageIds: [(MessageId, Int)] = []
|
||||
var visibleAdOpaqueIds: [Data] = []
|
||||
@@ -2072,13 +2104,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
}
|
||||
}
|
||||
|
||||
if let translateToLanguage {
|
||||
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
|
||||
} else if !message.text.isEmpty {
|
||||
messageIdsToTranslate.append(message.id)
|
||||
}
|
||||
}
|
||||
|
||||
for media in message.media {
|
||||
if let _ = media as? TelegramMediaUnsupported {
|
||||
contentRequiredValidation = true
|
||||
@@ -2153,12 +2178,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
}
|
||||
}
|
||||
}
|
||||
if let translateToLanguage {
|
||||
if let translation = message.attributes.first(where: { $0 is TranslationMessageAttribute }) as? TranslationMessageAttribute, translation.toLang == translateToLanguage {
|
||||
} else if !message.text.isEmpty {
|
||||
messageIdsToTranslate.append(message.id)
|
||||
}
|
||||
}
|
||||
for media in message.media {
|
||||
if let telegramFile = media as? TelegramMediaFile {
|
||||
downloadableResourceIds.append((message.id, telegramFile.resource.id.stringRepresentation))
|
||||
@@ -2407,6 +2426,8 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
self.isTopReplyThreadMessageShown.set(isTopReplyThreadMessageShownValue)
|
||||
self.updateTopVisibleMessageRange(topVisibleMessageRange)
|
||||
let _ = self.visibleMessageRange.swap(topVisibleMessageRange.flatMap { range in
|
||||
@@ -2414,7 +2435,6 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode {
|
||||
})
|
||||
|
||||
if let loaded = displayedRange.visibleRange, let firstEntry = historyView.filteredEntries.first, let lastEntry = historyView.filteredEntries.last {
|
||||
|
||||
var mathesFirst = false
|
||||
if loaded.firstIndex <= 5 {
|
||||
var firstHasGroups = false
|
||||
|
||||
Reference in New Issue
Block a user