mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 14:20:20 +00:00
no message
This commit is contained in:
54
TelegramUI/ChatMessageAvatarAccessoryItem.swift
Normal file
54
TelegramUI/ChatMessageAvatarAccessoryItem.swift
Normal file
@@ -0,0 +1,54 @@
|
||||
import Foundation
|
||||
import Postbox
|
||||
import Display
|
||||
import TelegramCore
|
||||
|
||||
final class ChatMessageAvatarAccessoryItem: ListViewAccessoryItem {
|
||||
private let account: Account
|
||||
private let peerId: PeerId
|
||||
private let peer: Peer?
|
||||
private let messageTimestamp: Int32
|
||||
|
||||
init(account: Account, peerId: PeerId, peer: Peer?, messageTimestamp: Int32) {
|
||||
self.account = account
|
||||
self.peerId = peerId
|
||||
self.peer = peer
|
||||
self.messageTimestamp = messageTimestamp
|
||||
}
|
||||
|
||||
func isEqualToItem(_ other: ListViewAccessoryItem) -> Bool {
|
||||
if case let other as ChatMessageAvatarAccessoryItem = other {
|
||||
return other.peerId == self.peerId && abs(other.messageTimestamp - self.messageTimestamp) < 5 * 60
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func node() -> ListViewAccessoryItemNode {
|
||||
let node = ChatMessageAvatarAccessoryItemNode()
|
||||
node.frame = CGRect(origin: CGPoint(), size: CGSize(width: 38.0, height: 38.0))
|
||||
if let peer = self.peer {
|
||||
node.setPeer(account: account, peer: peer)
|
||||
}
|
||||
return node
|
||||
}
|
||||
}
|
||||
|
||||
final class ChatMessageAvatarAccessoryItemNode: ListViewAccessoryItemNode {
|
||||
let avatarNode: ChatListAvatarNode
|
||||
|
||||
override init() {
|
||||
self.avatarNode = ChatListAvatarNode(font: Font.regular(14.0))
|
||||
self.avatarNode.isLayerBacked = true
|
||||
self.avatarNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: 38.0, height: 38.0))
|
||||
|
||||
super.init()
|
||||
|
||||
self.isLayerBacked = true
|
||||
self.addSubnode(self.avatarNode)
|
||||
}
|
||||
|
||||
func setPeer(account: Account, peer: Peer) {
|
||||
self.avatarNode.setPeer(account: account, peer: peer)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user