Disable recent stickers & gifs update in copy protected chats

This commit is contained in:
Ilya Laktyushin 2021-12-08 19:16:31 +04:00
parent d262a78046
commit 8d56ab6bdc
2 changed files with 32 additions and 22 deletions

View file

@ -2578,35 +2578,39 @@ func replayFinalState(
}
if !message.flags.contains(.Incoming), message.forwardInfo == nil {
inner: for media in message.media {
if let file = media as? TelegramMediaFile {
for attribute in file.attributes {
switch attribute {
case let .Sticker(_, packReference, _):
if let index = message.index, packReference != nil {
if let (currentIndex, _) = recentlyUsedStickers[file.fileId] {
if currentIndex < index {
if [Namespaces.Peer.CloudGroup, Namespaces.Peer.CloudChannel].contains(message.id.peerId.namespace), let peer = transaction.getPeer(message.id.peerId), peer.isCopyProtectionEnabled {
} else {
inner: for media in message.media {
if let file = media as? TelegramMediaFile {
for attribute in file.attributes {
switch attribute {
case let .Sticker(_, packReference, _):
if let index = message.index, packReference != nil {
if let (currentIndex, _) = recentlyUsedStickers[file.fileId] {
if currentIndex < index {
recentlyUsedStickers[file.fileId] = (index, file)
}
} else {
recentlyUsedStickers[file.fileId] = (index, file)
}
} else {
recentlyUsedStickers[file.fileId] = (index, file)
}
}
case .Animated:
if let index = message.index {
if let (currentIndex, _) = recentlyUsedGifs[file.fileId] {
if currentIndex < index {
case .Animated:
if let index = message.index {
if let (currentIndex, _) = recentlyUsedGifs[file.fileId] {
if currentIndex < index {
recentlyUsedGifs[file.fileId] = (index, file)
}
} else {
recentlyUsedGifs[file.fileId] = (index, file)
}
} else {
recentlyUsedGifs[file.fileId] = (index, file)
}
}
default:
break
default:
break
}
}
break inner
}
break inner
}
}
}

View file

@ -2339,7 +2339,13 @@ final class PeerInfoVisualMediaPaneNode: ASDisplayNode, PeerInfoPaneNode, UIScro
let itemFrame = self.view.convert(self.itemGrid.frameForItem(layer: itemLayer), from: self.itemGrid.view)
let proxyNode = ASDisplayNode()
proxyNode.frame = itemFrame
proxyNode.contents = itemLayer.contents
if let contents = itemLayer.getContents() {
if let image = contents as? UIImage {
proxyNode.contents = image.cgImage
} else {
proxyNode.contents = contents
}
}
proxyNode.isHidden = true
self.addSubnode(proxyNode)