Static spoiler for media

This commit is contained in:
Ilya Laktyushin
2023-03-03 17:20:16 +04:00
parent 9fddaf9f96
commit a76f5843d4
6 changed files with 215 additions and 165 deletions

View File

@@ -17,6 +17,7 @@ import ChatMessageBackground
private class MediaPickerSelectedItemNode: ASDisplayNode {
let asset: TGMediaEditableItem
private let interaction: MediaPickerInteraction?
private let enableAnimations: Bool
private let imageNode: ImageNode
private var checkNode: InteractiveCheckNode?
@@ -56,15 +57,16 @@ private class MediaPickerSelectedItemNode: ASDisplayNode {
private var videoDuration: Double?
init(asset: TGMediaEditableItem, interaction: MediaPickerInteraction?) {
init(asset: TGMediaEditableItem, interaction: MediaPickerInteraction?, enableAnimations: Bool) {
self.asset = asset
self.interaction = interaction
self.enableAnimations = enableAnimations
self.imageNode = ImageNode()
self.imageNode.contentMode = .scaleAspectFill
self.imageNode.clipsToBounds = true
self.imageNode.animateFirstTransition = false
self.asset = asset
self.interaction = interaction
super.init()
self.clipsToBounds = true
@@ -165,7 +167,7 @@ private class MediaPickerSelectedItemNode: ASDisplayNode {
if hasSpoiler {
if self.spoilerNode == nil {
let spoilerNode = SpoilerOverlayNode()
let spoilerNode = SpoilerOverlayNode(enableAnimations: self.enableAnimations)
self.insertSubnode(spoilerNode, aboveSubnode: self.imageNode)
self.spoilerNode = spoilerNode
@@ -781,7 +783,7 @@ final class MediaPickerSelectedListNode: ASDisplayNode, UIScrollViewDelegate, UI
if let current = self.itemNodes[identifier] {
itemNode = current
} else {
itemNode = MediaPickerSelectedItemNode(asset: asset, interaction: self.interaction)
itemNode = MediaPickerSelectedItemNode(asset: asset, interaction: self.interaction, enableAnimations: self.context.sharedContext.energyUsageSettings.fullTranslucency)
self.itemNodes[identifier] = itemNode
self.scrollNode.addSubnode(itemNode)