Add message reaction/read date

This commit is contained in:
Ali
2023-02-24 22:43:57 +04:00
parent 4adb4fa5be
commit fb025d5b14
3 changed files with 12 additions and 12 deletions

View File

@@ -610,10 +610,10 @@ public final class ReactionListContextMenuContent: ContextControllerItemsContent
}, },
yesterdayFormatString: { value in yesterdayFormatString: { value in
//TODO:localize //TODO:localize
return PresentationStrings.FormattedString(string: "yesterday", ranges: []) return PresentationStrings.FormattedString(string: "yesterday at \(value)", ranges: [])
} }
)).string )).string
text = "read \(dateText)" text = dateText
} }
self.textLabelNode.attributedText = NSAttributedString(string: text, font: Font.regular(15.0), textColor: presentationData.theme.contextMenu.secondaryColor) 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)) 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.requestUpdateApparentHeight = requestUpdateApparentHeight
self.openPeer = openPeer self.openPeer = openPeer
self.listContext = context.engine.messages.messageReactionList(message: message, reaction: reaction) self.listContext = context.engine.messages.messageReactionList(message: message, readStats: readStats, reaction: reaction)
self.state = ItemsState(listState: EngineMessageReactionListContext.State(message: message, reaction: reaction), readStats: readStats) self.state = ItemsState(listState: EngineMessageReactionListContext.State(message: message, readStats: readStats, reaction: reaction), readStats: readStats)
self.scrollNode = ASScrollNode() self.scrollNode = ASScrollNode()
self.scrollNode.canCancelAllTouchesInViews = true self.scrollNode.canCancelAllTouchesInViews = true

View File

@@ -322,7 +322,7 @@ private func synchronizeMessageReactions(transaction: Transaction, postbox: Post
} }
public extension EngineMessageReactionListContext.State { public extension EngineMessageReactionListContext.State {
init(message: EngineMessage, reaction: MessageReaction.Reaction?) { init(message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) {
var totalCount = 0 var totalCount = 0
var hasOutgoingReaction = false var hasOutgoingReaction = false
var items: [EngineMessageReactionListContext.Item] = [] var items: [EngineMessageReactionListContext.Item] = []
@@ -338,7 +338,7 @@ public extension EngineMessageReactionListContext.State {
for recentPeer in reactionsAttribute.recentPeers { for recentPeer in reactionsAttribute.recentPeers {
if let peer = message.peers[recentPeer.peerId] { if let peer = message.peers[recentPeer.peerId] {
if reaction == nil || recentPeer.value == reaction { 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 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.queue = queue
self.account = account self.account = account
self.message = message self.message = message
self.reaction = reaction 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) self.state = InternalState(hasOutgoingReaction: initialState.hasOutgoingReaction, totalCount: initialState.totalCount, items: initialState.items, canLoadMore: true, nextOffset: nil)
if initialState.canLoadMore { 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() let queue = Queue()
self.queue = queue self.queue = queue
self.impl = QueueLocalObject(queue: queue, generate: { 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)
}) })
} }

View File

@@ -352,8 +352,8 @@ public extension TelegramEngine {
} }
} }
public func messageReactionList(message: EngineMessage, reaction: MessageReaction.Reaction?) -> EngineMessageReactionListContext { public func messageReactionList(message: EngineMessage, readStats: MessageReadStats?, reaction: MessageReaction.Reaction?) -> EngineMessageReactionListContext {
return EngineMessageReactionListContext(account: self.account, message: message, reaction: reaction) return EngineMessageReactionListContext(account: self.account, message: message, readStats: readStats, reaction: reaction)
} }
public func translate(text: String, toLang: String) -> Signal<String?, TranslationError> { public func translate(text: String, toLang: String) -> Signal<String?, TranslationError> {