mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 22:25:57 +00:00
Search filters improvements
This commit is contained in:
@@ -13,7 +13,6 @@ import TelegramStringFormatting
|
||||
import UniversalMediaPlayer
|
||||
import ListMessageItem
|
||||
import ChatMessageInteractiveMediaBadge
|
||||
import ShimmerEffect
|
||||
import GridMessageSelectionNode
|
||||
|
||||
private let mediaBadgeBackgroundColor = UIColor(white: 0.0, alpha: 0.6)
|
||||
@@ -49,7 +48,6 @@ private final class VisualMediaItemNode: ASDisplayNode {
|
||||
private let imageNode: TransformImageNode
|
||||
private var statusNode: RadialStatusNode
|
||||
private let mediaBadgeNode: ChatMessageInteractiveMediaBadge
|
||||
private var placeholderNode: ShimmerEffectNode?
|
||||
private var selectionNode: GridMessageSelectionNode?
|
||||
|
||||
private let fetchStatusDisposable = MetaDisposable()
|
||||
@@ -179,7 +177,6 @@ private final class VisualMediaItemNode: ASDisplayNode {
|
||||
}
|
||||
|
||||
func updateAbsoluteRect(_ absoluteRect: CGRect, within containerSize: CGSize) {
|
||||
self.placeholderNode?.updateAbsoluteRect(absoluteRect, within: containerSize)
|
||||
}
|
||||
|
||||
func update(size: CGSize, item: VisualMediaItem, theme: PresentationTheme, synchronousLoad: Bool) {
|
||||
@@ -302,20 +299,9 @@ private final class VisualMediaItemNode: ASDisplayNode {
|
||||
self.selectionNode?.frame = CGRect(origin: CGPoint(), size: size)
|
||||
|
||||
self.updateHiddenMedia()
|
||||
|
||||
if let placeholderNode = self.placeholderNode {
|
||||
self.placeholderNode = nil
|
||||
placeholderNode.removeFromSupernode()
|
||||
}
|
||||
} else if item.isEmpty, self.placeholderNode == nil {
|
||||
let placeholderNode = ShimmerEffectNode()
|
||||
placeholderNode.update(backgroundColor: theme.list.itemBlocksBackgroundColor, foregroundColor: theme.list.mediaPlaceholderColor, shimmeringColor: theme.list.itemBlocksBackgroundColor.withAlphaComponent(0.4), shapes: [.rect(rect: CGRect(origin: CGPoint(), size: size))], size: size)
|
||||
self.addSubnode(placeholderNode)
|
||||
self.placeholderNode = placeholderNode
|
||||
}
|
||||
|
||||
let imageFrame = CGRect(origin: CGPoint(), size: size)
|
||||
self.placeholderNode?.frame = imageFrame
|
||||
|
||||
if let (item, media, _, mediaDimensions) = self.item {
|
||||
self.item = (item, media, size, mediaDimensions)
|
||||
@@ -435,15 +421,6 @@ private final class VisualMediaItem {
|
||||
let message: Message?
|
||||
let dimensions: CGSize
|
||||
let aspectRatio: CGFloat
|
||||
let isEmpty: Bool
|
||||
|
||||
init(index: UInt32) {
|
||||
self.index = index
|
||||
self.message = nil
|
||||
self.dimensions = CGSize(width: 100.0, height: 100.0)
|
||||
self.aspectRatio = 1.0
|
||||
self.isEmpty = true
|
||||
}
|
||||
|
||||
init(message: Message) {
|
||||
self.index = nil
|
||||
@@ -461,7 +438,6 @@ private final class VisualMediaItem {
|
||||
}
|
||||
self.aspectRatio = aspectRatio
|
||||
self.dimensions = dimensions
|
||||
self.isEmpty = false
|
||||
}
|
||||
|
||||
var stableId: UInt32 {
|
||||
@@ -741,23 +717,16 @@ final class ChatListSearchMediaNode: ASDisplayNode, UIScrollViewDelegate {
|
||||
break
|
||||
default:
|
||||
self.mediaItems.removeAll()
|
||||
let loading: Bool
|
||||
if let entries = entries {
|
||||
loading = false
|
||||
|
||||
if let entries = entries {
|
||||
for entry in entries {
|
||||
if case let .message(message, _, _, _, _, _, _) = entry {
|
||||
self.mediaItems.append(VisualMediaItem(message: message))
|
||||
}
|
||||
}
|
||||
} else {
|
||||
loading = true
|
||||
for i in 0 ..< 21 {
|
||||
self.mediaItems.append(VisualMediaItem(index: UInt32(i)))
|
||||
}
|
||||
}
|
||||
self.itemsLayout = nil
|
||||
|
||||
let wasInitialized = self.initialized
|
||||
self.initialized = true
|
||||
|
||||
if let (size, sideInset, bottomInset, visibleHeight, isScrollingLockedAtTop, expandProgress, presentationData) = self.currentParams {
|
||||
|
||||
Reference in New Issue
Block a user