mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Don't loop secret videos
This commit is contained in:
parent
891de085da
commit
10fd84b541
@ -145,7 +145,7 @@ private func galleryMessageCaptionText(_ message: Message) -> String {
|
|||||||
return message.text
|
return message.text
|
||||||
}
|
}
|
||||||
|
|
||||||
public func galleryItemForEntry(context: AccountContext, presentationData: PresentationData, entry: MessageHistoryEntry, isCentral: Bool = false, streamVideos: Bool, loopVideos: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, displayInfoOnTop: Bool = false, configuration: GalleryConfiguration? = nil, tempFilePath: String? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void = { _, _ in }, present: @escaping (ViewController, Any?) -> Void) -> GalleryItem? {
|
public func galleryItemForEntry(context: AccountContext, presentationData: PresentationData, entry: MessageHistoryEntry, isCentral: Bool = false, streamVideos: Bool, loopVideos: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, isSecret: Bool = false, landscape: Bool = false, timecode: Double? = nil, displayInfoOnTop: Bool = false, configuration: GalleryConfiguration? = nil, tempFilePath: String? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void = { _ in }, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void = { _, _ in }, present: @escaping (ViewController, Any?) -> Void) -> GalleryItem? {
|
||||||
let message = entry.message
|
let message = entry.message
|
||||||
let location = entry.location
|
let location = entry.location
|
||||||
if let (media, mediaImage) = mediaForMessage(message: message) {
|
if let (media, mediaImage) = mediaForMessage(message: message) {
|
||||||
@ -178,7 +178,7 @@ public func galleryItemForEntry(context: AccountContext, presentationData: Prese
|
|||||||
}
|
}
|
||||||
|
|
||||||
let caption = galleryCaptionStringWithAppliedEntities(text, entities: entities)
|
let caption = galleryCaptionStringWithAppliedEntities(text, entities: entities)
|
||||||
return UniversalVideoGalleryItem(context: context, presentationData: presentationData, content: content, originData: GalleryItemOriginData(title: message.effectiveAuthor?.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), timestamp: message.timestamp), indexData: location.flatMap { GalleryItemIndexData(position: Int32($0.index), totalCount: Int32($0.count)) }, contentInfo: .message(message), caption: caption, displayInfoOnTop: displayInfoOnTop, hideControls: hideControls, fromPlayingVideo: fromPlayingVideo, landscape: landscape, timecode: timecode, configuration: configuration, playbackCompleted: playbackCompleted, performAction: performAction, openActionOptions: openActionOptions, storeMediaPlaybackState: storeMediaPlaybackState, present: present)
|
return UniversalVideoGalleryItem(context: context, presentationData: presentationData, content: content, originData: GalleryItemOriginData(title: message.effectiveAuthor?.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), timestamp: message.timestamp), indexData: location.flatMap { GalleryItemIndexData(position: Int32($0.index), totalCount: Int32($0.count)) }, contentInfo: .message(message), caption: caption, displayInfoOnTop: displayInfoOnTop, hideControls: hideControls, fromPlayingVideo: fromPlayingVideo, isSecret: isSecret, landscape: landscape, timecode: timecode, configuration: configuration, playbackCompleted: playbackCompleted, performAction: performAction, openActionOptions: openActionOptions, storeMediaPlaybackState: storeMediaPlaybackState, present: present)
|
||||||
} else {
|
} else {
|
||||||
if let fileName = file.fileName, (fileName as NSString).pathExtension.lowercased() == "json" {
|
if let fileName = file.fileName, (fileName as NSString).pathExtension.lowercased() == "json" {
|
||||||
return ChatAnimationGalleryItem(context: context, presentationData: presentationData, message: message, location: location)
|
return ChatAnimationGalleryItem(context: context, presentationData: presentationData, message: message, location: location)
|
||||||
@ -219,7 +219,7 @@ public func galleryItemForEntry(context: AccountContext, presentationData: Prese
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let content = content {
|
if let content = content {
|
||||||
return UniversalVideoGalleryItem(context: context, presentationData: presentationData, content: content, originData: GalleryItemOriginData(title: message.effectiveAuthor?.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), timestamp: message.timestamp), indexData: location.flatMap { GalleryItemIndexData(position: Int32($0.index), totalCount: Int32($0.count)) }, contentInfo: .message(message), caption: NSAttributedString(string: ""), displayInfoOnTop: displayInfoOnTop, fromPlayingVideo: fromPlayingVideo, landscape: landscape, timecode: timecode, configuration: configuration, performAction: performAction, openActionOptions: openActionOptions, storeMediaPlaybackState: storeMediaPlaybackState, present: present)
|
return UniversalVideoGalleryItem(context: context, presentationData: presentationData, content: content, originData: GalleryItemOriginData(title: message.effectiveAuthor?.displayTitle(strings: presentationData.strings, displayOrder: presentationData.nameDisplayOrder), timestamp: message.timestamp), indexData: location.flatMap { GalleryItemIndexData(position: Int32($0.index), totalCount: Int32($0.count)) }, contentInfo: .message(message), caption: NSAttributedString(string: ""), displayInfoOnTop: displayInfoOnTop, fromPlayingVideo: fromPlayingVideo, isSecret: isSecret, landscape: landscape, timecode: timecode, configuration: configuration, performAction: performAction, openActionOptions: openActionOptions, storeMediaPlaybackState: storeMediaPlaybackState, present: present)
|
||||||
} else {
|
} else {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,7 @@ public class UniversalVideoGalleryItem: GalleryItem {
|
|||||||
let displayInfoOnTop: Bool
|
let displayInfoOnTop: Bool
|
||||||
let hideControls: Bool
|
let hideControls: Bool
|
||||||
let fromPlayingVideo: Bool
|
let fromPlayingVideo: Bool
|
||||||
|
let isSecret: Bool
|
||||||
let landscape: Bool
|
let landscape: Bool
|
||||||
let timecode: Double?
|
let timecode: Double?
|
||||||
let configuration: GalleryConfiguration?
|
let configuration: GalleryConfiguration?
|
||||||
@ -46,7 +47,7 @@ public class UniversalVideoGalleryItem: GalleryItem {
|
|||||||
let storeMediaPlaybackState: (MessageId, Double?) -> Void
|
let storeMediaPlaybackState: (MessageId, Double?) -> Void
|
||||||
let present: (ViewController, Any?) -> Void
|
let present: (ViewController, Any?) -> Void
|
||||||
|
|
||||||
public init(context: AccountContext, presentationData: PresentationData, content: UniversalVideoContent, originData: GalleryItemOriginData?, indexData: GalleryItemIndexData?, contentInfo: UniversalVideoGalleryItemContentInfo?, caption: NSAttributedString, credit: NSAttributedString? = nil, displayInfoOnTop: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, landscape: Bool = false, timecode: Double? = nil, configuration: GalleryConfiguration? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void, present: @escaping (ViewController, Any?) -> Void) {
|
public init(context: AccountContext, presentationData: PresentationData, content: UniversalVideoContent, originData: GalleryItemOriginData?, indexData: GalleryItemIndexData?, contentInfo: UniversalVideoGalleryItemContentInfo?, caption: NSAttributedString, credit: NSAttributedString? = nil, displayInfoOnTop: Bool = false, hideControls: Bool = false, fromPlayingVideo: Bool = false, isSecret: Bool = false, landscape: Bool = false, timecode: Double? = nil, configuration: GalleryConfiguration? = nil, playbackCompleted: @escaping () -> Void = {}, performAction: @escaping (GalleryControllerInteractionTapAction) -> Void, openActionOptions: @escaping (GalleryControllerInteractionTapAction) -> Void, storeMediaPlaybackState: @escaping (MessageId, Double?) -> Void, present: @escaping (ViewController, Any?) -> Void) {
|
||||||
self.context = context
|
self.context = context
|
||||||
self.presentationData = presentationData
|
self.presentationData = presentationData
|
||||||
self.content = content
|
self.content = content
|
||||||
@ -58,6 +59,7 @@ public class UniversalVideoGalleryItem: GalleryItem {
|
|||||||
self.displayInfoOnTop = displayInfoOnTop
|
self.displayInfoOnTop = displayInfoOnTop
|
||||||
self.hideControls = hideControls
|
self.hideControls = hideControls
|
||||||
self.fromPlayingVideo = fromPlayingVideo
|
self.fromPlayingVideo = fromPlayingVideo
|
||||||
|
self.isSecret = isSecret
|
||||||
self.landscape = landscape
|
self.landscape = landscape
|
||||||
self.timecode = timecode
|
self.timecode = timecode
|
||||||
self.configuration = configuration
|
self.configuration = configuration
|
||||||
@ -1024,7 +1026,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode {
|
|||||||
|
|
||||||
private var actionAtEnd: MediaPlayerPlayOnceWithSoundActionAtEnd {
|
private var actionAtEnd: MediaPlayerPlayOnceWithSoundActionAtEnd {
|
||||||
if let item = self.item {
|
if let item = self.item {
|
||||||
if let content = item.content as? NativeVideoContent, content.duration <= 30 {
|
if !item.isSecret, let content = item.content as? NativeVideoContent, content.duration <= 30 {
|
||||||
return .loop
|
return .loop
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -438,7 +438,7 @@ public final class SecretMediaPreviewController: ViewController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
guard let item = galleryItemForEntry(context: self.context, presentationData: self.presentationData, entry: MessageHistoryEntry(message: message, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)), streamVideos: false, hideControls: true, tempFilePath: tempFilePath, playbackCompleted: { [weak self] in
|
guard let item = galleryItemForEntry(context: self.context, presentationData: self.presentationData, entry: MessageHistoryEntry(message: message, isRead: false, location: nil, monthLocation: nil, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: false)), streamVideos: false, hideControls: true, isSecret: true, tempFilePath: tempFilePath, playbackCompleted: { [weak self] in
|
||||||
self?.dismiss(forceAway: false)
|
self?.dismiss(forceAway: false)
|
||||||
}, present: { _, _ in }) else {
|
}, present: { _, _ in }) else {
|
||||||
self._ready.set(.single(true))
|
self._ready.set(.single(true))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user