From 7338393c592c6bf6ff54b7d1bfac6761a8478591 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 18 Nov 2022 18:32:31 +0400 Subject: [PATCH] Fix animation --- submodules/ChatListUI/Sources/ChatListController.swift | 2 +- submodules/ChatListUI/Sources/ChatListControllerNode.swift | 3 +++ .../SearchUI/Sources/NavigationBarSearchContentNode.swift | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index e967760287..da1f572850 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -1163,7 +1163,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController if validLayout.inVoiceOver { offset = .known(0.0) } - searchContentNode.updateListVisibleContentOffset(offset) + searchContentNode.updateListVisibleContentOffset(offset, transition: strongSelf.chatListDisplayNode.temporaryContentOffsetChangeTransition ?? .immediate) } } diff --git a/submodules/ChatListUI/Sources/ChatListControllerNode.swift b/submodules/ChatListUI/Sources/ChatListControllerNode.swift index 7832dd34cf..271cf2059f 100644 --- a/submodules/ChatListUI/Sources/ChatListControllerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListControllerNode.swift @@ -1162,6 +1162,7 @@ final class ChatListControllerNode: ASDisplayNode, UIGestureRecognizerDelegate { private(set) var inlineStackContainerTransitionFraction: CGFloat = 0.0 private(set) var inlineStackContainerNode: ChatListContainerNode? private var inlineContentPanRecognizer: InteractiveTransitionGestureRecognizer? + private(set) var temporaryContentOffsetChangeTransition: ContainedViewLayoutTransition? private var tapRecognizer: UITapGestureRecognizer? var navigationBar: NavigationBar? @@ -1687,7 +1688,9 @@ final class ChatListControllerNode: ASDisplayNode, UIGestureRecognizerDelegate { inlineStackContainerNode?.removeFromSupernode() }) + self.temporaryContentOffsetChangeTransition = transition self.controller?.requestLayout(transition: transition) + self.temporaryContentOffsetChangeTransition = nil } else { inlineStackContainerNode.removeFromSupernode() } diff --git a/submodules/SearchUI/Sources/NavigationBarSearchContentNode.swift b/submodules/SearchUI/Sources/NavigationBarSearchContentNode.swift index fda3895d6a..932a7a1e83 100644 --- a/submodules/SearchUI/Sources/NavigationBarSearchContentNode.swift +++ b/submodules/SearchUI/Sources/NavigationBarSearchContentNode.swift @@ -54,7 +54,7 @@ public class NavigationBarSearchContentNode: NavigationBarContentNode { } } - public func updateListVisibleContentOffset(_ offset: ListViewVisibleContentOffset) { + public func updateListVisibleContentOffset(_ offset: ListViewVisibleContentOffset, transition: ContainedViewLayoutTransition = .immediate) { var progress: CGFloat = 0.0 switch offset { case let .known(offset): @@ -64,7 +64,7 @@ public class NavigationBarSearchContentNode: NavigationBarContentNode { default: break } - self.updateExpansionProgress(progress) + self.updateExpansionProgress(progress, animated: transition.isAnimated) } public func updateGridVisibleContentOffset(_ offset: GridNodeVisibleContentOffset) {