Files
ghostgram/submodules/Postbox/Sources/MessageView.swift
T
ichmagmaus 812 db53826061 chore: migrate to new version + fixed several critical bugs
- Migrated project to latest Telegram iOS base (v12.3.2+)
- Fixed circular dependency between GhostModeManager and MiscSettingsManager
- Fixed multiple Bazel build configuration errors (select() default conditions)
- Fixed duplicate type definitions in PeerInfoScreen
- Fixed swiftmodule directory resolution in build scripts
- Added Ghostgram Settings tab in main Settings menu with all 5 features
- Cleared sensitive credentials from config.json (template-only now)
- Excluded bazel-cache from version control
2026-02-23 23:04:32 +01:00

56 lines
1.8 KiB
Swift

import Foundation
final class MutableMessageView {
let messageId: MessageId
var stableId: UInt32?
var message: Message?
init(messageId: MessageId, message: Message?) {
self.messageId = messageId
self.message = message
self.stableId = message?.stableId
}
func replay(postbox: PostboxImpl, operations: [MessageHistoryOperation], updatedMedia: [MediaId: Media?]) -> Bool {
var updated = false
for operation in operations {
switch operation {
case let .Remove(indices):
if let message = self.message {
let messageIndex = message.index
for (index, _, _) in indices {
if index == messageIndex {
self.message = nil
updated = true
break
}
}
}
case let .InsertMessage(message):
if message.id == self.messageId || message.stableId == self.stableId {
self.message = postbox.renderIntermediateMessage(message)
self.stableId = message.stableId
updated = true
}
case .UpdateEmbeddedMedia:
break
case .UpdateTimestamp:
break
default:
break
}
}
return updated
}
}
public final class MessageView {
public let messageId: MessageId
public let message: Message?
init(_ view: MutableMessageView) {
self.messageId = view.messageId
self.message = view.message
}
}