Skip to content

Commit 4d66bf7

Browse files
author
Isaac
committed
Fix stories in download list
(cherry picked from commit a1de4e3)
1 parent af8276c commit 4d66bf7

File tree

3 files changed

+25
-1
lines changed

3 files changed

+25
-1
lines changed

submodules/ChatListUI/Sources/ChatListSearchListPaneNode.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -964,7 +964,7 @@ public enum ChatListSearchEntry: Comparable, Identifiable {
964964
}
965965
let selection: ChatHistoryMessageSelection = selected.flatMap { .selectable(selected: $0) } ?? .none
966966
var isMedia = false
967-
if let tagMask = tagMask, tagMask != .photoOrVideo {
967+
if let tagMask, tagMask != .photoOrVideo {
968968
isMedia = true
969969
} else if key == .downloads {
970970
isMedia = true
@@ -3105,6 +3105,8 @@ final class ChatListSearchListPaneNode: ASDisplayNode, ChatListSearchPaneNode {
31053105
return [:]
31063106
})
31073107

3108+
listInteraction.preferredStoryHighQuality = context.sharedContext.currentAutomaticMediaDownloadSettings.highQualityStories
3109+
31083110
let previousSearchItems = Atomic<[ChatListSearchEntry]?>(value: nil)
31093111
let previousSelectedMessages = Atomic<Set<EngineMessage.Id>?>(value: nil)
31103112
let previousExpandGlobalSearch = Atomic<Bool>(value: false)

submodules/ListMessageItem/Sources/ListMessageFileItemNode.swift

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,14 @@ final class CachedChatListSearchResult {
160160
}
161161
}
162162

163+
private func selectStoryMedia(item: Stories.Item, preferredHighQuality: Bool) -> Media? {
164+
if !preferredHighQuality, let alternativeMediaValue = item.alternativeMediaList.first {
165+
return alternativeMediaValue
166+
} else {
167+
return item.media
168+
}
169+
}
170+
163171
public final class ListMessageFileItemNode: ListMessageNode {
164172
public final class DescriptionNode: ASDisplayNode {
165173
let descriptionNode: TextNode
@@ -625,7 +633,17 @@ public final class ListMessageFileItemNode: ListMessageNode {
625633

626634
var selectedMedia: Media?
627635
if let message = message {
636+
var effectiveMessageMedia = message.media
628637
for media in message.media {
638+
if let storyMedia = media as? TelegramMediaStory {
639+
if let story = message.associatedStories[storyMedia.storyId], !story.data.isEmpty, case let .item(storyItem) = story.get(Stories.StoredItem.self), let media = selectStoryMedia(item: storyItem, preferredHighQuality: item.interaction.preferredStoryHighQuality) {
640+
effectiveMessageMedia = [media]
641+
break
642+
}
643+
}
644+
}
645+
646+
for media in effectiveMessageMedia {
629647
if let file = media as? TelegramMediaFile {
630648
selectedMedia = file
631649

submodules/ListMessageItem/Sources/ListMessageItem.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public final class ListMessageItemInteraction {
2020
let getHiddenMedia: () -> [MessageId: [Media]]
2121

2222
public var searchTextHighightState: String?
23+
public var preferredStoryHighQuality: Bool = false
2324

2425
public init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, UIGestureRecognizer?) -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, getHiddenMedia: @escaping () -> [MessageId: [Media]]) {
2526
self.openMessage = openMessage
@@ -97,6 +98,9 @@ public final class ListMessageItem: ListViewItem {
9798
} else if let _ = media as? TelegramMediaImage {
9899
viewClassName = ListMessageFileItemNode.self
99100
break
101+
} else if let _ = media as? TelegramMediaStory {
102+
viewClassName = ListMessageFileItemNode.self
103+
break
100104
}
101105
}
102106
} else {

0 commit comments

Comments
 (0)