diff --git a/submodules/Display/Source/WindowContent.swift b/submodules/Display/Source/WindowContent.swift index 37a8544460..7a4239e128 100644 --- a/submodules/Display/Source/WindowContent.swift +++ b/submodules/Display/Source/WindowContent.swift @@ -662,14 +662,17 @@ public class Window1 { return } self.forceBadgeHidden = hidden - self.updateBadgeVisibility(layout: self.windowLayout) + self.updateBadgeVisibility() } - private func updateBadgeVisibility(layout: WindowLayout) { - let badgeIsHidden = !self.deviceMetrics.hasTopNotch || self.forceBadgeHidden || layout.size.width > layout.size.height + private func updateBadgeVisibility() { + let badgeIsHidden = !self.deviceMetrics.hasTopNotch || self.forceBadgeHidden || self.windowLayout.size.width > self.windowLayout.size.height if badgeIsHidden != self.badgeView.isHidden && !badgeIsHidden { - Queue.mainQueue().after(0.3) { - self.badgeView.isHidden = badgeIsHidden + Queue.mainQueue().after(0.4) { + let badgeShouldBeHidden = !self.deviceMetrics.hasTopNotch || self.forceBadgeHidden || self.windowLayout.size.width > self.windowLayout.size.height + if badgeShouldBeHidden == badgeIsHidden { + self.badgeView.isHidden = badgeIsHidden + } } } else { self.badgeView.isHidden = badgeIsHidden @@ -1115,7 +1118,7 @@ public class Window1 { } if let image = self.badgeView.image { - self.updateBadgeVisibility(layout: self.windowLayout) + self.updateBadgeVisibility() self.badgeView.frame = CGRect(origin: CGPoint(x: floorToScreenPixels((self.windowLayout.size.width - image.size.width) / 2.0), y: 6.0), size: image.size) } } diff --git a/submodules/TelegramUI/Sources/ChatMessageBubbleContentNode.swift b/submodules/TelegramUI/Sources/ChatMessageBubbleContentNode.swift index 4b0ac10ac8..f7d557f2e8 100644 --- a/submodules/TelegramUI/Sources/ChatMessageBubbleContentNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageBubbleContentNode.swift @@ -214,6 +214,9 @@ class ChatMessageBubbleContentNode: ASDisplayNode { func applyAbsoluteOffsetSpring(value: CGFloat, duration: Double, damping: CGFloat) { } + func unreadMessageRangeUpdated() { + } + func reactionTargetView(value: String) -> UIView? { return nil } diff --git a/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift index 7f7efef8c2..c632945b36 100644 --- a/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageBubbleItemNode.swift @@ -3975,6 +3975,12 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePreviewItemNode return nil } + override func unreadMessageRangeUpdated() { + for contentNode in self.contentNodes { + contentNode.unreadMessageRangeUpdated() + } + } + func animateQuizInvalidOptionSelected() { if let supernode = self.supernode, let subnodes = supernode.subnodes { for i in 0 ..< subnodes.count { diff --git a/submodules/TelegramUI/Sources/ChatMessageGiftItemNode.swift b/submodules/TelegramUI/Sources/ChatMessageGiftItemNode.swift index eb8a39a66b..f0287d959b 100644 --- a/submodules/TelegramUI/Sources/ChatMessageGiftItemNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageGiftItemNode.swift @@ -408,6 +408,10 @@ class ChatMessageGiftBubbleContentNode: ChatMessageBubbleContentNode { } } + override func unreadMessageRangeUpdated() { + self.updateVisibility() + } + private func updateVisibility() { guard let item = self.item else { return