mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-18 11:30:04 +00:00
30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
final class SynchronizePeerReadStatesView {
|
|
var operations: [PeerId: PeerReadStateSynchronizationOperation]
|
|
|
|
init(operations: [PeerId: PeerReadStateSynchronizationOperation]) {
|
|
self.operations = operations
|
|
}
|
|
|
|
func replay(updatedOperations: [PeerId: PeerReadStateSynchronizationOperation?]) -> [PeerId: PeerReadStateSynchronizationOperation?] {
|
|
var updates: [PeerId: PeerReadStateSynchronizationOperation?] = [:]
|
|
|
|
for (peerId, operation) in updatedOperations {
|
|
if let operation = operation {
|
|
if self.operations[peerId] == nil || self.operations[peerId]! != operation {
|
|
self.operations[peerId] = operation
|
|
updates[peerId] = operation
|
|
}
|
|
} else {
|
|
if let _ = self.operations[peerId] {
|
|
self.operations.removeValueForKey(peerId)
|
|
updates[peerId] = nil
|
|
}
|
|
}
|
|
}
|
|
|
|
return updates
|
|
}
|
|
}
|