diff --git a/submodules/ChatListUI/Sources/ChatListControllerNode.swift b/submodules/ChatListUI/Sources/ChatListControllerNode.swift index 46780c6e81..c83a5ab67a 100644 --- a/submodules/ChatListUI/Sources/ChatListControllerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListControllerNode.swift @@ -1761,6 +1761,8 @@ final class ChatListControllerNode: ASDisplayNode, UIGestureRecognizerDelegate { private var tempNavigationScrollingTransition: ContainedViewLayoutTransition? private var allowOverscrollStoryExpansion: Bool = false + private var currentOverscrollStoryExpansionTimestamp: Double? + private var allowOverscrollItemExpansion: Bool = false private var currentOverscrollItemExpansionTimestamp: Double? @@ -2423,12 +2425,21 @@ final class ChatListControllerNode: ASDisplayNode, UIGestureRecognizerDelegate { if let controller = self.controller { if let peerId = overscrollSelectedId { if self.allowOverscrollStoryExpansion && self.inlineStackContainerNode == nil && isPrimary { - self.allowOverscrollStoryExpansion = false - self.allowOverscrollItemExpansion = false - self.currentOverscrollItemExpansionTimestamp = nil - HapticFeedback().tap() + let timestamp = CACurrentMediaTime() + if let _ = self.currentOverscrollStoryExpansionTimestamp { + } else { + self.currentOverscrollStoryExpansionTimestamp = timestamp + } - controller.openStories(peerId: peerId) + if let currentOverscrollStoryExpansionTimestamp = self.currentOverscrollStoryExpansionTimestamp, currentOverscrollStoryExpansionTimestamp <= timestamp - 0.05 { + self.allowOverscrollStoryExpansion = false + self.currentOverscrollStoryExpansionTimestamp = nil + self.allowOverscrollItemExpansion = false + self.currentOverscrollItemExpansionTimestamp = nil + HapticFeedback().tap() + + controller.openStories(peerId: peerId) + } } } else { if !overscrollHiddenChatItemsAllowed { @@ -2508,6 +2519,7 @@ final class ChatListControllerNode: ASDisplayNode, UIGestureRecognizerDelegate { private func endedInteractiveDragging(listView: ListView, isPrimary: Bool) { if isPrimary { self.allowOverscrollStoryExpansion = false + self.currentOverscrollStoryExpansionTimestamp = nil } self.allowOverscrollItemExpansion = false self.currentOverscrollItemExpansionTimestamp = nil diff --git a/submodules/TelegramUI/Components/Stories/StoryPeerListComponent/Sources/StoryPeerListComponent.swift b/submodules/TelegramUI/Components/Stories/StoryPeerListComponent/Sources/StoryPeerListComponent.swift index b96174e387..91411f1971 100644 --- a/submodules/TelegramUI/Components/Stories/StoryPeerListComponent/Sources/StoryPeerListComponent.swift +++ b/submodules/TelegramUI/Components/Stories/StoryPeerListComponent/Sources/StoryPeerListComponent.swift @@ -809,7 +809,7 @@ public final class StoryPeerListComponent: Component { self.overscrollHiddenChatItemsAllowed = false } - if let overscrollFocusIndex, overscrollStage2 >= 0.5 { + if let overscrollFocusIndex, overscrollStage2 >= 0.7 { self.overscrollSelectedId = self.sortedItems[overscrollFocusIndex].peer.id } else { self.overscrollSelectedId = nil