From c4198047daffbe4815fba37032de3f8b2bd17de7 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Thu, 31 Aug 2023 20:28:10 +0400 Subject: [PATCH] Various fixes --- .../SecretMediaPreviewController.swift | 2 +- ...RadialStatusSecretTimeoutContentNode.swift | 27 ++++++++++++------- .../Sources/MediaEditorVideoExport.swift | 4 +-- .../ChatMessageInteractiveMediaNode.swift | 10 ++++--- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index d0aa31a36b..8a0c90bf06 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -483,7 +483,7 @@ public final class SecretMediaPreviewController: ViewController { if !self.didSetReady { self._ready.set(.single(true)) } - if !(self.currentNodeMessageIsVideo && !self.currentNodeMessageIsViewOnce) { + if !(self.currentNodeMessageIsVideo || self.currentNodeMessageIsViewOnce) { self.dismiss() } } diff --git a/submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift b/submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift index f790cf06d9..0305e5b912 100644 --- a/submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift +++ b/submodules/RadialStatusNode/Sources/RadialStatusSecretTimeoutContentNode.swift @@ -95,7 +95,14 @@ final class RadialStatusSecretTimeoutContentNode: RadialStatusContentNode { override func layout() { super.layout() - self.animationNode.frame = CGRect(x: 6.0, y: 2.0, width: 36.0, height: 36.0) + var factor: CGFloat = 0.75 + var offset: CGFloat = 0.0415 + if self.bounds.width < 30.0 { + factor = 0.66 + offset = 0.08 + } + let size = floorToScreenPixels(self.bounds.width * factor) + self.animationNode.frame = CGRect(x: floorToScreenPixels((self.bounds.width - size) / 2.0), y: ceil(self.bounds.height * offset), width: size, height: size) } override func animateOut(to: RadialStatusNodeState, completion: @escaping () -> Void) { @@ -194,15 +201,15 @@ final class RadialStatusSecretTimeoutContentNode: RadialStatusContentNode { } if let parameters = parameters as? RadialStatusSecretTimeoutContentNodeParameters { - if let icon = parameters.icon, let iconImage = icon.cgImage { - let imageRect = CGRect(origin: CGPoint(x: floor((bounds.size.width - icon.size.width) / 2.0), y: floor((bounds.size.height - icon.size.height) / 2.0)), size: icon.size) - context.saveGState() - context.translateBy(x: imageRect.midX, y: imageRect.midY) - context.scaleBy(x: 1.0, y: -1.0) - context.translateBy(x: -imageRect.midX, y: -imageRect.midY) - context.draw(iconImage, in: imageRect) - context.restoreGState() - } +// if let icon = parameters.icon, let _ = icon.cgImage { +// let imageRect = CGRect(origin: CGPoint(x: floor((bounds.size.width - icon.size.width) / 2.0), y: floor((bounds.size.height - icon.size.height) / 2.0)), size: icon.size) +// context.saveGState() +// context.translateBy(x: imageRect.midX, y: imageRect.midY) +// context.scaleBy(x: 1.0, y: -1.0) +// context.translateBy(x: -imageRect.midX, y: -imageRect.midY) +// context.draw(iconImage, in: imageRect) +// context.restoreGState() +// } let lineWidth: CGFloat if parameters.sparks { diff --git a/submodules/TelegramUI/Components/MediaEditor/Sources/MediaEditorVideoExport.swift b/submodules/TelegramUI/Components/MediaEditor/Sources/MediaEditorVideoExport.swift index 5b39d0811b..63c713f057 100644 --- a/submodules/TelegramUI/Components/MediaEditor/Sources/MediaEditorVideoExport.swift +++ b/submodules/TelegramUI/Components/MediaEditor/Sources/MediaEditorVideoExport.swift @@ -389,7 +389,7 @@ public final class MediaEditorVideoExport { try? videoTrack.insertTimeRange(timeRange, of: videoAssetTrack, at: .zero) - if let audioAssetTrack = asset.tracks(withMediaType: .audio).first, let audioTrack = mixComposition.addMutableTrack(withMediaType: .audio, preferredTrackID: kCMPersistentTrackID_Invalid) { + if let audioAssetTrack = asset.tracks(withMediaType: .audio).first, let audioTrack = mixComposition.addMutableTrack(withMediaType: .audio, preferredTrackID: kCMPersistentTrackID_Invalid), !self.configuration.values.videoIsMuted { try? audioTrack.insertTimeRange(timeRange, of: audioAssetTrack, at: .zero) } @@ -488,7 +488,7 @@ public final class MediaEditorVideoExport { } let audioTracks = inputAsset.tracks(withMediaType: .audio) - if audioTracks.count > 0, !self.configuration.values.videoIsMuted { + if audioTracks.count > 0, !self.configuration.values.videoIsMuted || self.configuration.values.audioTrack != nil { let audioOutput = AVAssetReaderAudioMixOutput(audioTracks: audioTracks, audioSettings: nil) audioOutput.alwaysCopiesSampleData = false if reader.canAdd(audioOutput) { diff --git a/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift index f73d32a596..24e8a96a00 100644 --- a/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift +++ b/submodules/TelegramUI/Sources/ChatMessageInteractiveMediaNode.swift @@ -189,7 +189,7 @@ private class ExtendedMediaOverlayNode: ASDisplayNode { var isRevealed = false var tapped: () -> Void = {} - init(enableAnimations: Bool) { + init(hasImageOverlay: Bool, enableAnimations: Bool) { self.blurredImageNode = TransformImageNode() self.blurredImageNode.contentAnimations = [] @@ -212,7 +212,9 @@ private class ExtendedMediaOverlayNode: ASDisplayNode { super.init() - self.addSubnode(self.blurredImageNode) + if hasImageOverlay { + self.addSubnode(self.blurredImageNode) + } self.addSubnode(self.dustNode) self.addSubnode(self.buttonNode) @@ -1986,7 +1988,7 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode, GalleryItemTransitio } else { secretProgressIcon = PresentationResourcesChat.chatBubbleSecretMediaCompactIcon(theme) } - if isSecretMedia, let (maybeBeginTime, timeout) = secretBeginTimeAndTimeout, let beginTime = maybeBeginTime { + if isSecretMedia, let (maybeBeginTime, timeout) = secretBeginTimeAndTimeout, let beginTime = maybeBeginTime, timeout != viewOnceTimeout { state = .secretTimeout(color: messageTheme.mediaOverlayControlColors.foregroundColor, icon: secretProgressIcon, beginTime: beginTime, timeout: timeout, sparks: true) backgroundColor = messageTheme.mediaDateAndStatusFillColor } else if isSecretMedia, let _ = secretProgressIcon { @@ -2133,7 +2135,7 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode, GalleryItemTransitio if displaySpoiler { if self.extendedMediaOverlayNode == nil { - let extendedMediaOverlayNode = ExtendedMediaOverlayNode(enableAnimations: self.context?.sharedContext.energyUsageSettings.fullTranslucency ?? true) + let extendedMediaOverlayNode = ExtendedMediaOverlayNode(hasImageOverlay: !isSecretMedia, enableAnimations: self.context?.sharedContext.energyUsageSettings.fullTranslucency ?? true) extendedMediaOverlayNode.tapped = { [weak self] in self?.internallyVisible = true self?.updateVisibility()