Merge branch 'master' of gitlab.com:peter-iakovlev/telegram-ios

This commit is contained in:
Ilya Laktyushin 2020-07-09 21:18:19 +03:00
commit d2c4826d61
2 changed files with 14 additions and 9 deletions

View File

@ -911,7 +911,8 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
var chatListText: (String, String)? var chatListText: (String, String)?
var chatListSearchResult: CachedChatListSearchResult? var chatListSearchResult: CachedChatListSearchResult?
let contentImageSize = CGSize(width: 18.0, height: 18.0) let contentImageSide: CGFloat = max(10.0, min(20.0, floor(item.presentationData.fontSize.baseDisplaySize * 18.0 / 17.0)))
let contentImageSize = CGSize(width: contentImageSide, height: contentImageSide)
let contentImageSpacing: CGFloat = 2.0 let contentImageSpacing: CGFloat = 2.0
let contentImageTrailingSpace: CGFloat = 5.0 let contentImageTrailingSpace: CGFloat = 5.0
var contentImageSpecs: [(message: Message, media: Media, size: CGSize)] = [] var contentImageSpecs: [(message: Message, media: Media, size: CGSize)] = []
@ -1338,7 +1339,6 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
animateContent = true animateContent = true
} }
let measureString = NSAttributedString(string: "A", font: titleFont, textColor: .black)
let (measureLayout, measureApply) = makeMeasureLayout(TextNodeLayoutArguments(attributedString: titleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: titleRectWidth, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) let (measureLayout, measureApply) = makeMeasureLayout(TextNodeLayoutArguments(attributedString: titleAttributedString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: titleRectWidth, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets()))
let titleSpacing: CGFloat = -1.0 let titleSpacing: CGFloat = -1.0
@ -1633,7 +1633,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
} }
inputActivitiesApply?() inputActivitiesApply?()
var mediaPreviewOffset = textNodeFrame.origin.offsetBy(dx: 1.0, dy: 2.0) var mediaPreviewOffset = textNodeFrame.origin.offsetBy(dx: 1.0, dy: floor((measureLayout.size.height - contentImageSize.height) / 2.0))
var validMediaIds: [MediaId] = [] var validMediaIds: [MediaId] = []
for (message, media, mediaSize) in contentImageSpecs { for (message, media, mediaSize) in contentImageSpecs {
guard let mediaId = media.id else { guard let mediaId = media.id else {
@ -1824,16 +1824,16 @@ class ChatListItemNode: ItemListRevealOptionsItemNode {
textFrame.origin.x = contentRect.origin.x textFrame.origin.x = contentRect.origin.x
transition.updateFrameAdditive(node: self.textNode, frame: textFrame) transition.updateFrameAdditive(node: self.textNode, frame: textFrame)
var mediaPreviewOffset = textFrame.origin.offsetBy(dx: 1.0, dy: 2.0) var mediaPreviewOffsetX = textFrame.origin.x + 1.0
let contentImageSpacing: CGFloat = 2.0 let contentImageSpacing: CGFloat = 2.0
for (_, media, mediaSize) in self.currentMediaPreviewSpecs { for (_, media, mediaSize) in self.currentMediaPreviewSpecs {
guard let mediaId = media.id else { guard let mediaId = media.id else {
continue continue
} }
if let previewNode = self.mediaPreviewNodes[mediaId] { if let previewNode = self.mediaPreviewNodes[mediaId] {
transition.updateFrame(node: previewNode, frame: CGRect(origin: mediaPreviewOffset, size: mediaSize)) transition.updateFrame(node: previewNode, frame: CGRect(origin: CGPoint(x: mediaPreviewOffsetX, y: previewNode.frame.minY), size: mediaSize))
} }
mediaPreviewOffset.x += mediaSize.width + contentImageSpacing mediaPreviewOffsetX += mediaSize.width + contentImageSpacing
} }
let dateFrame = self.dateNode.frame let dateFrame = self.dateNode.frame

View File

@ -108,9 +108,14 @@ private final class NativeVideoContentNode: ASDisplayNode, UniversalVideoContent
var status: Signal<MediaPlayerStatus, NoError> { var status: Signal<MediaPlayerStatus, NoError> {
return combineLatest(self._thumbnailStatus.get(), self._status.get()) return combineLatest(self._thumbnailStatus.get(), self._status.get())
|> map { thumbnailStatus, status in |> map { thumbnailStatus, status in
if let thumbnailStatus = thumbnailStatus { switch status.status {
return thumbnailStatus case .buffering:
} else { if let thumbnailStatus = thumbnailStatus {
return thumbnailStatus
} else {
return status
}
default:
return status return status
} }
} }