diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift index 7ea7fa2482..35657bfd4b 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageAnimatedStickerItemNode/Sources/ChatMessageAnimatedStickerItemNode.swift @@ -2952,6 +2952,23 @@ public class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { override public func contentFrame() -> CGRect { return self.imageNode.frame } + + override public func makeContentSnapshot() -> (UIImage, CGRect)? { + UIGraphicsBeginImageContextWithOptions(self.imageNode.view.bounds.size, false, 0.0) + let context = UIGraphicsGetCurrentContext()! + + context.translateBy(x: -self.imageNode.frame.minX, y: -self.imageNode.frame.minY) + self.view.layer.render(in: context) + + let image = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + guard let image else { + return nil + } + + return (image, self.imageNode.frame) + } } public struct AnimatedEmojiSoundsConfiguration { diff --git a/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift index 3c15eb6de6..8d510a51b1 100644 --- a/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift +++ b/submodules/TelegramUI/Components/Chat/ChatMessageStickerItemNode/Sources/ChatMessageStickerItemNode.swift @@ -2052,4 +2052,21 @@ public class ChatMessageStickerItemNode: ChatMessageItemView { override public func contentFrame() -> CGRect { return self.imageNode.frame } + + override public func makeContentSnapshot() -> (UIImage, CGRect)? { + UIGraphicsBeginImageContextWithOptions(self.imageNode.view.bounds.size, false, 0.0) + let context = UIGraphicsGetCurrentContext()! + + context.translateBy(x: -self.imageNode.frame.minX, y: -self.imageNode.frame.minY) + self.view.layer.render(in: context) + + let image = UIGraphicsGetImageFromCurrentImageContext() + UIGraphicsEndImageContext() + + guard let image else { + return nil + } + + return (image, self.imageNode.frame) + } } diff --git a/submodules/TelegramUI/Components/DustEffect/Sources/DustEffectLayer.swift b/submodules/TelegramUI/Components/DustEffect/Sources/DustEffectLayer.swift index a8d9b6fa4d..9b6aa7b63a 100644 --- a/submodules/TelegramUI/Components/DustEffect/Sources/DustEffectLayer.swift +++ b/submodules/TelegramUI/Components/DustEffect/Sources/DustEffectLayer.swift @@ -166,6 +166,7 @@ public final class DustEffectLayer: MetalEngineSubjectLayer, MetalEngineSubject if let item = Item(frame: frame, image: image) { self.items.append(item) self.updateNeedsAnimation() + self.setNeedsUpdate() } }