diff --git a/submodules/SyncCore/Sources/CloudFileMediaResource.swift b/submodules/SyncCore/Sources/CloudFileMediaResource.swift index 36859b3f38..2d8a4f0e06 100644 --- a/submodules/SyncCore/Sources/CloudFileMediaResource.swift +++ b/submodules/SyncCore/Sources/CloudFileMediaResource.swift @@ -496,13 +496,17 @@ public class LocalFileMediaResource: TelegramMediaResource { public let fileId: Int64 public let size: Int? - public init(fileId: Int64, size: Int? = nil) { + public let isSecretRelated: Bool + + public init(fileId: Int64, size: Int? = nil, isSecretRelated: Bool = false) { self.fileId = fileId self.size = size + self.isSecretRelated = isSecretRelated } public required init(decoder: PostboxDecoder) { self.fileId = decoder.decodeInt64ForKey("f", orElse: 0) + self.isSecretRelated = decoder.decodeBoolForKey("sr", orElse: false) if let size = decoder.decodeOptionalInt32ForKey("s") { self.size = Int(size) } else { @@ -512,6 +516,7 @@ public class LocalFileMediaResource: TelegramMediaResource { public func encode(_ encoder: PostboxEncoder) { encoder.encodeInt64(self.fileId, forKey: "f") + encoder.encodeBool(self.isSecretRelated, forKey: "sr") if let size = self.size { encoder.encodeInt32(Int32(size), forKey: "s") } else { @@ -525,7 +530,7 @@ public class LocalFileMediaResource: TelegramMediaResource { public func isEqual(to: MediaResource) -> Bool { if let to = to as? LocalFileMediaResource { - return self.fileId == to.fileId && self.size == to.size + return self.fileId == to.fileId && self.size == to.size && self.isSecretRelated == to.isSecretRelated } else { return false } diff --git a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift index ebabf4ab90..9d09f0de6e 100644 --- a/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift +++ b/submodules/TelegramCore/Sources/ApplyUpdateMessage.swift @@ -8,6 +8,8 @@ import SyncCore private func copyOrMoveResourceData(from fromResource: MediaResource, to toResource: MediaResource, mediaBox: MediaBox) { if fromResource is CloudFileMediaResource || fromResource is CloudDocumentMediaResource || fromResource is SecretFileMediaResource { mediaBox.copyResourceData(from: fromResource.id, to: toResource.id) + } else if let fromResource = fromResource as? LocalFileMediaResource, fromResource.isSecretRelated { + mediaBox.copyResourceData(from: fromResource.id, to: toResource.id) } else { mediaBox.moveResourceData(from: fromResource.id, to: toResource.id) } diff --git a/submodules/TelegramCore/Sources/EnqueueMessage.swift b/submodules/TelegramCore/Sources/EnqueueMessage.swift index 0ffa4789d9..b1fc81bf18 100644 --- a/submodules/TelegramCore/Sources/EnqueueMessage.swift +++ b/submodules/TelegramCore/Sources/EnqueueMessage.swift @@ -69,7 +69,7 @@ private func filterMessageAttributesForOutgoingMessage(_ attributes: [MessageAtt case _ as InlineBotMessageAttribute: return true case _ as OutgoingMessageInfoAttribute: - return true + return false case _ as OutgoingContentInfoMessageAttribute: return true case _ as ReplyMarkupMessageAttribute: diff --git a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift index 6d248bfa43..16b490b314 100644 --- a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift +++ b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift @@ -662,7 +662,7 @@ private func uploadedMediaFileContent(network: Network, postbox: Postbox, auxili return .single(.pending) case let .done(media): if let media = media as? TelegramMediaFile, let smallestThumbnail = smallestImageRepresentation(media.previewRepresentations) { - if peerId.namespace == Namespaces.Peer.SecretChat || (smallestThumbnail.resource is LocalFileMediaResource) { + if peerId.namespace == Namespaces.Peer.SecretChat { return .single(.done(media, .none)) } else { let fileReference: AnyMediaReference