From a99a30ac21333a6d6c9c5510a38fb2ecbe649dd6 Mon Sep 17 00:00:00 2001 From: Peter <> Date: Wed, 21 Nov 2018 03:22:39 +0300 Subject: [PATCH] Fixed photo message animation --- .../ChatMessageInteractiveMediaNode.swift | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/TelegramUI/ChatMessageInteractiveMediaNode.swift b/TelegramUI/ChatMessageInteractiveMediaNode.swift index 10620e2ebf..b84535f554 100644 --- a/TelegramUI/ChatMessageInteractiveMediaNode.swift +++ b/TelegramUI/ChatMessageInteractiveMediaNode.swift @@ -22,6 +22,7 @@ enum InteractiveMediaNodeActivateContent { final class ChatMessageInteractiveMediaNode: ASDisplayNode { private let imageNode: TransformImageNode + private var currentImageArguments: TransformImageArguments? private var videoNode: UniversalVideoNode? private var statusNode: RadialStatusNode? private var badgeNode: ChatMessageInteractiveMediaBadge? @@ -396,7 +397,19 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode { strongSelf.sizeCalculation = sizeCalculation strongSelf.automaticPlayback = automaticPlayback strongSelf.automaticDownload = automaticDownload - transition.updateFrame(node: strongSelf.imageNode, frame: imageFrame) + + if let previousArguments = strongSelf.currentImageArguments { + if previousArguments.imageSize == arguments.imageSize { + strongSelf.imageNode.frame = imageFrame + } else { + transition.updateFrame(node: strongSelf.imageNode, frame: imageFrame) + } + } else { + strongSelf.imageNode.frame = imageFrame + } + strongSelf.currentImageArguments = arguments + imageApply() + strongSelf.statusNode?.position = CGPoint(x: imageFrame.midX, y: imageFrame.midY) if let replaceVideoNode = replaceVideoNode { @@ -469,8 +482,6 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode { strongSelf.fetchControls.with({ $0 })?.fetch(false) } - imageApply() - strongSelf.updateFetchStatus() } })