Swiftgram/submodules/Postbox/Sources/PeerChatStateView.swift

46 lines
1.3 KiB
Swift

import Foundation
final class MutablePeerChatStateView: MutablePostboxView {
let peerId: PeerId
var chatState: CodableEntry?
init(postbox: PostboxImpl, peerId: PeerId) {
self.peerId = peerId
self.chatState = postbox.peerChatStateTable.get(peerId)
}
func replay(postbox: PostboxImpl, transaction: PostboxTransaction) -> Bool {
if transaction.currentUpdatedPeerChatStates.contains(self.peerId) {
self.chatState = postbox.peerChatStateTable.get(self.peerId)
return true
} else {
return false
}
}
func refreshDueToExternalTransaction(postbox: PostboxImpl) -> Bool {
/*let chatState = postbox.peerChatStateTable.get(self.peerId)
if self.chatState != chatState {
self.chatState = chatState
return true
} else {
return false
}*/
return false
}
func immutableView() -> PostboxView {
return PeerChatStateView(self)
}
}
public final class PeerChatStateView: PostboxView {
public let peerId: PeerId
public let chatState: CodableEntry?
init(_ view: MutablePeerChatStateView) {
self.peerId = view.peerId
self.chatState = view.chatState
}
}