mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 06:35:51 +00:00
Add message reaction/read date
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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> {
|
||||||
|
|||||||
Reference in New Issue
Block a user