mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 22:55:00 +00:00
Temp
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import Foundation
|
||||
import UIKit
|
||||
import Postbox
|
||||
import Display
|
||||
import TelegramCore
|
||||
import SyncCore
|
||||
import TelegramPresentationData
|
||||
import AvatarNode
|
||||
import AccountContext
|
||||
|
||||
private let avatarFont = avatarPlaceholderFont(size: 16.0)
|
||||
|
||||
final class ChatMessageAvatarAccessoryItem: ListViewAccessoryItem {
|
||||
private let context: AccountContext
|
||||
private let peerId: PeerId
|
||||
private let peer: Peer?
|
||||
private let messageReference: MessageReference?
|
||||
private let messageTimestamp: Int32
|
||||
private let emptyColor: UIColor
|
||||
|
||||
private let day: Int32
|
||||
|
||||
init(context: AccountContext, peerId: PeerId, peer: Peer?, messageReference: MessageReference?, messageTimestamp: Int32, emptyColor: UIColor) {
|
||||
self.context = context
|
||||
self.peerId = peerId
|
||||
self.peer = peer
|
||||
self.messageReference = messageReference
|
||||
self.messageTimestamp = messageTimestamp
|
||||
self.emptyColor = emptyColor
|
||||
|
||||
var t: time_t = time_t(messageTimestamp)
|
||||
var timeinfo: tm = tm()
|
||||
gmtime_r(&t, &timeinfo)
|
||||
|
||||
self.day = timeinfo.tm_mday
|
||||
}
|
||||
|
||||
func isEqualToItem(_ other: ListViewAccessoryItem) -> Bool {
|
||||
if case let other as ChatMessageAvatarAccessoryItem = other {
|
||||
return other.peerId == self.peerId && self.day == other.day && abs(other.messageTimestamp - self.messageTimestamp) < 10 * 60
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func node(synchronous: Bool) -> ListViewAccessoryItemNode {
|
||||
let node = ChatMessageAvatarAccessoryItemNode()
|
||||
node.frame = CGRect(origin: CGPoint(), size: CGSize(width: 38.0, height: 38.0))
|
||||
if let peer = self.peer {
|
||||
node.setPeer(context: self.context, theme: self.context.sharedContext.currentPresentationData.with({ $0 }).theme, synchronousLoad: synchronous, peer: peer, authorOfMessage: self.messageReference, emptyColor: self.emptyColor)
|
||||
}
|
||||
return node
|
||||
}
|
||||
}
|
||||
|
||||
final class ChatMessageAvatarAccessoryItemNode: ListViewAccessoryItemNode {
|
||||
let avatarNode: AvatarNode
|
||||
|
||||
override init() {
|
||||
let isLayerBacked = !smartInvertColorsEnabled()
|
||||
|
||||
self.avatarNode = AvatarNode(font: avatarFont)
|
||||
self.avatarNode.isLayerBacked = isLayerBacked
|
||||
self.avatarNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: 38.0, height: 38.0))
|
||||
|
||||
super.init()
|
||||
|
||||
self.isLayerBacked = isLayerBacked
|
||||
self.addSubnode(self.avatarNode)
|
||||
}
|
||||
|
||||
func setPeer(context: AccountContext, theme: PresentationTheme, synchronousLoad:Bool, peer: Peer, authorOfMessage: MessageReference?, emptyColor: UIColor) {
|
||||
var overrideImage: AvatarNodeImageOverride?
|
||||
if peer.isDeleted {
|
||||
overrideImage = .deletedIcon
|
||||
}
|
||||
self.avatarNode.setPeer(context: context, theme: theme, peer: peer, authorOfMessage: authorOfMessage, overrideImage: overrideImage, emptyColor: emptyColor, synchronousLoad: synchronousLoad, displayDimensions: CGSize(width: 38.0, height: 38.0))
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user