From 6303b56fd182f6dc5c993dbc707562c4fbfdb8b2 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jul 2020 00:04:01 +0400 Subject: [PATCH] Add chat list video icon --- .../ChatListUI/Sources/Node/ChatListItem.swift | 12 ++++++++++++ .../MiniThumbnailPlay.imageset/Contents.json | 12 ++++++++++++ .../MiniThumbnailPlay.imageset/playchats.pdf | Bin 0 -> 3977 bytes 3 files changed, 24 insertions(+) create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/Contents.json create mode 100644 submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/playchats.pdf diff --git a/submodules/ChatListUI/Sources/Node/ChatListItem.swift b/submodules/ChatListUI/Sources/Node/ChatListItem.swift index c7a3bad17c..6577900e2f 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListItem.swift @@ -328,12 +328,15 @@ private final class CachedChatListSearchResult { } } +private let playIconImage = UIImage(bundleImageName: "Chat List/MiniThumbnailPlay")?.precomposed() + private final class ChatListMediaPreviewNode: ASDisplayNode { private let context: AccountContext private let message: Message private let media: Media private let imageNode: TransformImageNode + private let playIcon: ASImageNode private var requestedImage: Bool = false private var disposable: Disposable? @@ -344,10 +347,13 @@ private final class ChatListMediaPreviewNode: ASDisplayNode { self.media = media self.imageNode = TransformImageNode() + self.playIcon = ASImageNode() + self.playIcon.image = playIconImage super.init() self.addSubnode(self.imageNode) + self.addSubnode(self.playIcon) } deinit { @@ -355,8 +361,13 @@ private final class ChatListMediaPreviewNode: ASDisplayNode { } func updateLayout(size: CGSize, synchronousLoads: Bool) { + if let image = self.playIcon.image { + self.playIcon.frame = CGRect(origin: CGPoint(x: floor((size.width - image.size.width) / 2.0), y: floor((size.height - image.size.height) / 2.0)), size: image.size) + } + var dimensions = CGSize(width: 100.0, height: 100.0) if let image = self.media as? TelegramMediaImage { + self.playIcon.isHidden = true if let largest = largestImageRepresentation(image.representations) { dimensions = largest.dimensions.cgSize if !self.requestedImage { @@ -366,6 +377,7 @@ private final class ChatListMediaPreviewNode: ASDisplayNode { } } } else if let file = self.media as? TelegramMediaFile { + self.playIcon.isHidden = false if let mediaDimensions = file.dimensions { dimensions = mediaDimensions.cgSize if !self.requestedImage { diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/Contents.json b/submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/Contents.json new file mode 100644 index 0000000000..b3a30fa0ae --- /dev/null +++ b/submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/Contents.json @@ -0,0 +1,12 @@ +{ + "images" : [ + { + "filename" : "playchats.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/playchats.pdf b/submodules/TelegramUI/Images.xcassets/Chat List/MiniThumbnailPlay.imageset/playchats.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c1b4f25bae3b6dfa32ae2bac37675ab1647de62a GIT binary patch literal 3977 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 QjX*-7U@