diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickerView.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickerView.swift index 893c35cd00..c7b91175ad 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickerView.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickerView.swift @@ -60,7 +60,7 @@ class LegacyPaintStickerView: UIView, TGPhotoPaintStickerRenderView { private func setup() { if let dimensions = self.file.dimensions { - if self.file.isAnimatedSticker { + if self.file.isAnimatedSticker || self.file.isVideoSticker { if self.animationNode == nil { let animationNode = AnimatedStickerNode() self.animationNode = animationNode diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift index 3be96d471b..e64a8ef29c 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyPaintStickersContext.swift @@ -94,7 +94,7 @@ private class LegacyPaintStickerEntity: LegacyPaintEntity { self.account = account self.entity = entity self.file = file - self.animated = file.isAnimatedSticker + self.animated = file.isAnimatedSticker || file.isVideoSticker if file.isAnimatedSticker || file.isVideoSticker { self.source = AnimatedStickerResourceSource(account: account, resource: file.resource, isVideo: file.isVideoSticker) diff --git a/submodules/MediaResources/Sources/CachedResourceRepresentations.swift b/submodules/MediaResources/Sources/CachedResourceRepresentations.swift index a789c38baf..903b177f80 100644 --- a/submodules/MediaResources/Sources/CachedResourceRepresentations.swift +++ b/submodules/MediaResources/Sources/CachedResourceRepresentations.swift @@ -301,7 +301,7 @@ public final class CachedVideoStickerRepresentation: CachedMediaResourceRepresen public let height: Int32 public var uniqueId: String { - let version: Int = 1 + let version: Int = 2 return "video-sticker-\(self.width)x\(self.height)-v\(version)" } diff --git a/submodules/TelegramAnimatedStickerNode/Sources/AnimatedStickerUtils.swift b/submodules/TelegramAnimatedStickerNode/Sources/AnimatedStickerUtils.swift index d6226d4289..99d702295e 100644 --- a/submodules/TelegramAnimatedStickerNode/Sources/AnimatedStickerUtils.swift +++ b/submodules/TelegramAnimatedStickerNode/Sources/AnimatedStickerUtils.swift @@ -387,6 +387,11 @@ public func cacheVideoStickerFrames(path: String, size: CGSize, cacheKey: String currentFrame += 1 } + if frameCount > 0 { + file.seek(position: 4) + let _ = file.write(&frameCount, count: 4) + } + subscriber.putNext(.tempFile(tempFile)) subscriber.putCompletion() /*print("animation render time \(CACurrentMediaTime() - startTime)") diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 798ec5d101..fafb422a3a 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -900,7 +900,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -3128,7 +3128,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G legacyMediaEditor(context: strongSelf.context, peer: peer, media: mediaReference, initialCaption: NSAttributedString(string: message.text), snapshots: [], transitionCompletion: nil, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -10330,7 +10330,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -10424,7 +10424,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -10622,7 +10622,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G controller.presentStickers = { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -10669,7 +10669,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -10731,7 +10731,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G controller.presentStickers = { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) @@ -11459,7 +11459,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.present(controller, in: .window(.root)) diff --git a/submodules/TelegramUI/Sources/PeerInfo/Panes/PeerInfoMembersPane.swift b/submodules/TelegramUI/Sources/PeerInfo/Panes/PeerInfoMembersPane.swift index 4597aacad6..ac983b89d7 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/Panes/PeerInfoMembersPane.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/Panes/PeerInfoMembersPane.swift @@ -125,9 +125,7 @@ private enum PeerMembersListEntry: Comparable, Identifiable { action(member, .open) }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in - }, contextAction: nil/*{ node, gesture in - openPeerContextAction(peer, node, gesture) - }*/, hasTopStripe: false, noInsets: true, disableInteractiveTransitionIfNecessary: true) + }, contextAction: nil, hasTopStripe: false, noInsets: true, noCorners: true, disableInteractiveTransitionIfNecessary: true) } } } diff --git a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift index 2a8aaa61fa..698f9e206f 100644 --- a/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift +++ b/submodules/TelegramUI/Sources/PeerInfo/PeerInfoScreen.swift @@ -3226,7 +3226,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate }, presentStickers: { [weak self] completion in if let strongSelf = self { let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in - completion(fileReference.media, fileReference.media.isAnimatedSticker, node.view, rect) + completion(fileReference.media, fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.controller?.present(controller, in: .window(.root)) @@ -5370,7 +5370,7 @@ final class PeerInfoScreenNode: ViewControllerTracingNode, UIScrollViewDelegate let controller = DrawingStickersScreen(context: strongSelf.context, selectSticker: { fileReference, node, rect in let coder = PostboxEncoder() coder.encodeRootObject(fileReference.media) - completion?(coder.makeData(), fileReference.media.isAnimatedSticker, node.view, rect) + completion?(coder.makeData(), fileReference.media.isAnimatedSticker || fileReference.media.isVideoSticker, node.view, rect) return true }) strongSelf.controller?.present(controller, in: .window(.root))