mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
Fix stories in download list
This commit is contained in:
parent
5c5236ce4c
commit
a1de4e39b2
@ -964,7 +964,7 @@ public enum ChatListSearchEntry: Comparable, Identifiable {
|
|||||||
}
|
}
|
||||||
let selection: ChatHistoryMessageSelection = selected.flatMap { .selectable(selected: $0) } ?? .none
|
let selection: ChatHistoryMessageSelection = selected.flatMap { .selectable(selected: $0) } ?? .none
|
||||||
var isMedia = false
|
var isMedia = false
|
||||||
if let tagMask = tagMask, tagMask != .photoOrVideo {
|
if let tagMask, tagMask != .photoOrVideo {
|
||||||
isMedia = true
|
isMedia = true
|
||||||
} else if key == .downloads {
|
} else if key == .downloads {
|
||||||
isMedia = true
|
isMedia = true
|
||||||
@ -3105,6 +3105,8 @@ final class ChatListSearchListPaneNode: ASDisplayNode, ChatListSearchPaneNode {
|
|||||||
return [:]
|
return [:]
|
||||||
})
|
})
|
||||||
|
|
||||||
|
listInteraction.preferredStoryHighQuality = context.sharedContext.currentAutomaticMediaDownloadSettings.highQualityStories
|
||||||
|
|
||||||
let previousSearchItems = Atomic<[ChatListSearchEntry]?>(value: nil)
|
let previousSearchItems = Atomic<[ChatListSearchEntry]?>(value: nil)
|
||||||
let previousSelectedMessages = Atomic<Set<EngineMessage.Id>?>(value: nil)
|
let previousSelectedMessages = Atomic<Set<EngineMessage.Id>?>(value: nil)
|
||||||
let previousExpandGlobalSearch = Atomic<Bool>(value: false)
|
let previousExpandGlobalSearch = Atomic<Bool>(value: false)
|
||||||
|
@ -160,6 +160,14 @@ final class CachedChatListSearchResult {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private func selectStoryMedia(item: Stories.Item, preferredHighQuality: Bool) -> Media? {
|
||||||
|
if !preferredHighQuality, let alternativeMediaValue = item.alternativeMediaList.first {
|
||||||
|
return alternativeMediaValue
|
||||||
|
} else {
|
||||||
|
return item.media
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public final class ListMessageFileItemNode: ListMessageNode {
|
public final class ListMessageFileItemNode: ListMessageNode {
|
||||||
public final class DescriptionNode: ASDisplayNode {
|
public final class DescriptionNode: ASDisplayNode {
|
||||||
let descriptionNode: TextNode
|
let descriptionNode: TextNode
|
||||||
@ -625,7 +633,17 @@ public final class ListMessageFileItemNode: ListMessageNode {
|
|||||||
|
|
||||||
var selectedMedia: Media?
|
var selectedMedia: Media?
|
||||||
if let message = message {
|
if let message = message {
|
||||||
|
var effectiveMessageMedia = message.media
|
||||||
for media in message.media {
|
for media in message.media {
|
||||||
|
if let storyMedia = media as? TelegramMediaStory {
|
||||||
|
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) {
|
||||||
|
effectiveMessageMedia = [media]
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for media in effectiveMessageMedia {
|
||||||
if let file = media as? TelegramMediaFile {
|
if let file = media as? TelegramMediaFile {
|
||||||
selectedMedia = file
|
selectedMedia = file
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@ public final class ListMessageItemInteraction {
|
|||||||
let getHiddenMedia: () -> [MessageId: [Media]]
|
let getHiddenMedia: () -> [MessageId: [Media]]
|
||||||
|
|
||||||
public var searchTextHighightState: String?
|
public var searchTextHighightState: String?
|
||||||
|
public var preferredStoryHighQuality: Bool = false
|
||||||
|
|
||||||
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]]) {
|
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]]) {
|
||||||
self.openMessage = openMessage
|
self.openMessage = openMessage
|
||||||
@ -97,6 +98,9 @@ public final class ListMessageItem: ListViewItem {
|
|||||||
} else if let _ = media as? TelegramMediaImage {
|
} else if let _ = media as? TelegramMediaImage {
|
||||||
viewClassName = ListMessageFileItemNode.self
|
viewClassName = ListMessageFileItemNode.self
|
||||||
break
|
break
|
||||||
|
} else if let _ = media as? TelegramMediaStory {
|
||||||
|
viewClassName = ListMessageFileItemNode.self
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user