From fb025d5b144af12cb617eb044c51a3ef7023850d Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 24 Feb 2023 22:43:57 +0400 Subject: [PATCH] Add message reaction/read date --- .../Sources/ReactionListContextMenuContent.swift | 8 ++++---- .../Sources/State/MessageReactions.swift | 12 ++++++------ .../Messages/TelegramEngineMessages.swift | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift b/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift index 62b255d684..6d5732cd66 100644 --- a/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift +++ b/submodules/Components/ReactionListContextMenuContent/Sources/ReactionListContextMenuContent.swift @@ -610,10 +610,10 @@ public final class ReactionListContextMenuContent: ContextControllerItemsContent }, yesterdayFormatString: { value in //TODO:localize - return PresentationStrings.FormattedString(string: "yesterday", ranges: []) + return PresentationStrings.FormattedString(string: "yesterday at \(value)", ranges: []) } )).string - text = "read \(dateText)" + text = dateText } self.textLabelNode.attributedText = NSAttributedString(string: text, font: Font.regular(15.0), textColor: presentationData.theme.contextMenu.secondaryColor) let textSize = self.textLabelNode.updateLayout(CGSize(width: maxTextWidth - 18.0, height: 100.0)) @@ -765,8 +765,8 @@ public final class ReactionListContextMenuContent: ContextControllerItemsContent self.requestUpdateApparentHeight = requestUpdateApparentHeight self.openPeer = openPeer - self.listContext = context.engine.messages.messageReactionList(message: message, reaction: reaction) - self.state = ItemsState(listState: EngineMessageReactionListContext.State(message: message, reaction: reaction), readStats: readStats) + self.listContext = context.engine.messages.messageReactionList(message: message, readStats: readStats, reaction: reaction) + self.state = ItemsState(listState: EngineMessageReactionListContext.State(message: message, readStats: readStats, reaction: reaction), readStats: readStats) self.scrollNode = ASScrollNode() self.scrollNode.canCancelAllTouchesInViews = true diff --git a/submodules/TelegramCore/Sources/State/MessageReactions.swift b/submodules/TelegramCore/Sources/State/MessageReactions.swift index 49c0da4fa8..e4425e7796 100644 --- a/submodules/TelegramCore/Sources/State/MessageReactions.swift +++ b/submodules/TelegramCore/Sources/State/MessageReactions.swift @@ -322,7 +322,7 @@ private func synchronizeMessageReactions(transaction: Transaction, postbox: Post } public extension EngineMessageReactionListContext.State { - init(message: EngineMessage, reaction: MessageReaction.Reaction?) { + init(message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) { var totalCount = 0 var hasOutgoingReaction = false var items: [EngineMessageReactionListContext.Item] = [] @@ -338,7 +338,7 @@ public extension EngineMessageReactionListContext.State { for recentPeer in reactionsAttribute.recentPeers { if let peer = message.peers[recentPeer.peerId] { if reaction == nil || recentPeer.value == reaction { - items.append(EngineMessageReactionListContext.Item(peer: EnginePeer(peer), reaction: recentPeer.value, timestamp: nil)) + items.append(EngineMessageReactionListContext.Item(peer: EnginePeer(peer), reaction: recentPeer.value, timestamp: readStats?.readTimestamps[peer.id])) } } } @@ -426,13 +426,13 @@ public final class EngineMessageReactionListContext { var isLoadingMore: Bool = false - init(queue: Queue, account: Account, message: EngineMessage, reaction: MessageReaction.Reaction?) { + init(queue: Queue, account: Account, message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) { self.queue = queue self.account = account self.message = message self.reaction = reaction - let initialState = EngineMessageReactionListContext.State(message: message, reaction: reaction) + let initialState = EngineMessageReactionListContext.State(message: message, readStats: readStats, reaction: reaction) self.state = InternalState(hasOutgoingReaction: initialState.hasOutgoingReaction, totalCount: initialState.totalCount, items: initialState.items, canLoadMore: true, nextOffset: nil) if initialState.canLoadMore { @@ -579,11 +579,11 @@ public final class EngineMessageReactionListContext { } } - init(account: Account, message: EngineMessage, reaction: MessageReaction.Reaction?) { + init(account: Account, message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) { let queue = Queue() self.queue = queue self.impl = QueueLocalObject(queue: queue, generate: { - return Impl(queue: queue, account: account, message: message, reaction: reaction) + return Impl(queue: queue, account: account, message: message, readStats: readStats, reaction: reaction) }) } diff --git a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift index 9c69b711a4..fd52cdbd80 100644 --- a/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift +++ b/submodules/TelegramCore/Sources/TelegramEngine/Messages/TelegramEngineMessages.swift @@ -352,8 +352,8 @@ public extension TelegramEngine { } } - public func messageReactionList(message: EngineMessage, reaction: MessageReaction.Reaction?) -> EngineMessageReactionListContext { - return EngineMessageReactionListContext(account: self.account, message: message, reaction: reaction) + public func messageReactionList(message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) -> EngineMessageReactionListContext { + return EngineMessageReactionListContext(account: self.account, message: message, readStats: readStats, reaction: reaction) } public func translate(text: String, toLang: String) -> Signal {