mirror of
https://github.com/TelegramMessenger/Telegram-iOS.git
synced 2026-07-06 03:33:41 +02:00
Various fixes
This commit is contained in:
parent
784b43934a
commit
265b502f76
11 changed files with 109 additions and 53 deletions
|
|
@ -229,7 +229,7 @@ private func mappedInsertEntries(context: AccountContext, chatLocation: ChatLoca
|
|||
switch mode {
|
||||
case .bubbles:
|
||||
item = ChatMessageItemImpl(presentationData: presentationData, context: context, chatLocation: chatLocation, associatedData: associatedData, controllerInteraction: controllerInteraction, content: .message(message: message, read: read, selection: selection, attributes: attributes, location: location), disableDate: disableFloatingDateHeaders || message.timestamp < 10)
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch):
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch, _):
|
||||
let displayHeader: Bool
|
||||
switch displayHeaders {
|
||||
case .none:
|
||||
|
|
@ -284,7 +284,7 @@ private func mappedUpdateEntries(context: AccountContext, chatLocation: ChatLoca
|
|||
switch mode {
|
||||
case .bubbles:
|
||||
item = ChatMessageItemImpl(presentationData: presentationData, context: context, chatLocation: chatLocation, associatedData: associatedData, controllerInteraction: controllerInteraction, content: .message(message: message, read: read, selection: selection, attributes: attributes, location: location), disableDate: disableFloatingDateHeaders || message.timestamp < 10)
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch):
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch, _):
|
||||
let displayHeader: Bool
|
||||
switch displayHeaders {
|
||||
case .none:
|
||||
|
|
@ -676,6 +676,9 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
private var messageReadMetricsTrackerPendingMetrics: [TelegramMessageReadMetric] = []
|
||||
private var messageReadMetricsTrackerPendingMetricTimer: Foundation.Timer?
|
||||
|
||||
public private(set) var hasAnyMessages: Bool = false
|
||||
public var hasAnyMessagesUpdated: ((Bool) -> Void)?
|
||||
|
||||
public private(set) var hasAtLeast3Messages: Bool = false
|
||||
public var hasAtLeast3MessagesUpdated: ((Bool) -> Void)?
|
||||
|
||||
|
|
@ -2051,9 +2054,11 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
|
||||
var reverse = false
|
||||
var reverseGroups = false
|
||||
if case let .list(reverseValue, reverseGroupsValue, _, _, _) = mode {
|
||||
var isMusicPlaylist = false
|
||||
if case let .list(reverseValue, reverseGroupsValue, _, _, _, isMusicPlaylistValue) = mode {
|
||||
reverse = reverseValue
|
||||
reverseGroups = reverseGroupsValue
|
||||
isMusicPlaylist = isMusicPlaylistValue
|
||||
}
|
||||
|
||||
var isPremium = false
|
||||
|
|
@ -2108,9 +2113,8 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
if case let .replyThread(message) = chatLocation, message.peerId == context.account.peerId, !rotated {
|
||||
includeEmbeddedSavedChatInfo = true
|
||||
}
|
||||
|
||||
|
||||
let previousChatHistoryEntriesForViewState = chatHistoryEntriesForViewState.with({ $0 })
|
||||
|
||||
let (filteredEntries, updatedChatHistoryEntriesForViewState) = chatHistoryEntriesForView(
|
||||
currentState: previousChatHistoryEntriesForViewState,
|
||||
context: context,
|
||||
|
|
@ -2136,7 +2140,8 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
customThreadOutgoingReadState: customThreadOutgoingReadState,
|
||||
cachedData: data.cachedData,
|
||||
adMessage: allAdMessages.fixed,
|
||||
dynamicAdMessages: allAdMessages.opportunistic
|
||||
dynamicAdMessages: allAdMessages.opportunistic,
|
||||
isMusicPlaylist: isMusicPlaylist
|
||||
)
|
||||
let lastHeaderId = filteredEntries.last.flatMap { listMessageDateHeaderId(timestamp: $0.index.timestamp) } ?? 0
|
||||
let processedView = ChatHistoryView(originalView: view, filteredEntries: filteredEntries, associatedData: associatedData, lastHeaderId: lastHeaderId, id: id, locationInput: update.2, ignoreMessagesInTimestampRange: update.3, ignoreMessageIds: update.4)
|
||||
|
|
@ -4095,15 +4100,20 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
}
|
||||
}
|
||||
|
||||
var hasAnyMessages = false
|
||||
var hasAtLeast3Messages = false
|
||||
var hasPlentyOfMessages = false
|
||||
var hasLotsOfMessages = false
|
||||
if let historyView = strongSelf.historyView {
|
||||
if historyView.originalView.holeEarlier || historyView.originalView.holeLater {
|
||||
hasAnyMessages = true
|
||||
hasAtLeast3Messages = true
|
||||
hasPlentyOfMessages = true
|
||||
hasLotsOfMessages = true
|
||||
} else if !historyView.originalView.holeEarlier && !historyView.originalView.holeLater {
|
||||
if historyView.filteredEntries.count >= 1 {
|
||||
hasAnyMessages = true
|
||||
}
|
||||
if historyView.filteredEntries.count >= 3 {
|
||||
hasAtLeast3Messages = true
|
||||
}
|
||||
|
|
@ -4116,6 +4126,11 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
}
|
||||
}
|
||||
|
||||
if strongSelf.hasAnyMessages != hasAnyMessages {
|
||||
strongSelf.hasAnyMessages = hasAnyMessages
|
||||
strongSelf.hasAnyMessagesUpdated?(hasAnyMessages)
|
||||
}
|
||||
|
||||
if strongSelf.hasAtLeast3Messages != hasAtLeast3Messages {
|
||||
strongSelf.hasAtLeast3Messages = hasAtLeast3Messages
|
||||
strongSelf.hasAtLeast3MessagesUpdated?(hasAtLeast3Messages)
|
||||
|
|
@ -4681,7 +4696,7 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
switch self.mode {
|
||||
case .bubbles:
|
||||
item = ChatMessageItemImpl(presentationData: presentationData, context: self.context, chatLocation: self.chatLocation, associatedData: associatedData, controllerInteraction: self.controllerInteraction, content: .message(message: message, read: read, selection: selection, attributes: attributes, location: location), disableDate: disableFloatingDateHeaders)
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch):
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch, _):
|
||||
let displayHeader: Bool
|
||||
switch displayHeaders {
|
||||
case .none:
|
||||
|
|
@ -4759,7 +4774,7 @@ public final class ChatHistoryListNodeImpl: ListViewImpl, ChatHistoryNode, ChatH
|
|||
switch self.mode {
|
||||
case .bubbles:
|
||||
item = ChatMessageItemImpl(presentationData: presentationData, context: self.context, chatLocation: self.chatLocation, associatedData: associatedData, controllerInteraction: self.controllerInteraction, content: .message(message: message, read: read, selection: selection, attributes: attributes, location: location), disableDate: disableFloatingDateHeaders)
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch):
|
||||
case let .list(_, _, displayHeaders, hintLinks, isGlobalSearch, _):
|
||||
let displayHeader: Bool
|
||||
switch displayHeaders {
|
||||
case .none:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue