From d35c945e0cfb25b75d193f9ca1fe22d0194120db Mon Sep 17 00:00:00 2001 From: Iiro Vidberg Date: Wed, 24 Apr 2024 11:25:36 -0400 Subject: [PATCH] feat: Add optional "custom data" field to YPMediaItem --- Source/Filters/Video/YPVideoFiltersVC.swift | 1 + Source/Models/YPMediaItem.swift | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Source/Filters/Video/YPVideoFiltersVC.swift b/Source/Filters/Video/YPVideoFiltersVC.swift index f4305e356..6f9614765 100644 --- a/Source/Filters/Video/YPVideoFiltersVC.swift +++ b/Source/Filters/Video/YPVideoFiltersVC.swift @@ -280,6 +280,7 @@ open class YPVideoFiltersVC: UIViewController, IsMediaFilterVC { let resultVideo = YPMediaVideo(thumbnail: thumbnail, videoURL: videoUrl, asset: asset) resultVideo.cropRect = inputVideo.cropRect resultVideo.timeRange = timeRange + resultVideo.customData = inputVideo.customData didSave(YPMediaItem.video(v: resultVideo)) setupRightBarButtonItem() diff --git a/Source/Models/YPMediaItem.swift b/Source/Models/YPMediaItem.swift index 58bd68f78..95e365e82 100644 --- a/Source/Models/YPMediaItem.swift +++ b/Source/Models/YPMediaItem.swift @@ -22,17 +22,21 @@ public class YPMediaPhoto { public var url: URL? public var cropRect: CGRect? + public var customData: [String: Any]? + public init(image: UIImage, exifMeta: [String: Any]? = nil, fromCamera: Bool = false, asset: PHAsset? = nil, - url: URL? = nil) { + url: URL? = nil, + customData: [String: Any]? = nil) { self.originalImage = image self.modifiedImage = nil self.fromCamera = fromCamera self.exifMeta = exifMeta self.asset = asset self.url = url + self.customData = customData } } @@ -52,12 +56,16 @@ public class YPMediaVideo { public var timeRange: CMTimeRange? public var cropRect: CGRect? - public init(thumbnail: UIImage, videoURL: URL, fromCamera: Bool = false, asset: PHAsset? = nil) { + + public var customData: [String: Any]? + + public init(thumbnail: UIImage, videoURL: URL, fromCamera: Bool = false, asset: PHAsset? = nil, customData: [String: Any]? = nil) { self.originalThumbnail = thumbnail self.selectedThumbnail = thumbnail self.originalUrl = videoURL self.fromCamera = fromCamera self.asset = asset + self.customData = customData } } @@ -101,6 +109,13 @@ public enum YPMediaItem { case .video(let video): video.cropRect } } + + public var customData: [String: Any]? { + switch self { + case .photo(let photo): photo.customData + case .video(let video): video.customData + } + } } // MARK: - Compression