Pārlūkot izejas kodu

add ViewerQuickLook

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 gadi atpakaļ
vecāks
revīzija
fda71c463a

+ 6 - 6
iOSClient/Main/Create cloud/NCUploadAssets.swift

@@ -83,7 +83,6 @@ class NCUploadAssets: NSObject, ObservableObject, NCCreateFormUploadConflictDele
             self.dismiss = true
         }
     }
-
 }
 
 // MARK: - View
@@ -98,7 +97,7 @@ struct UploadAssetsView: View {
     @State private var isPresentedQuickLook = false
     @State private var fileNamePath = NSTemporaryDirectory() + "Photo.jpg"
     @State private var metadata: tableMetadata?
-    @State private var timer = DispatchSource.makeTimerSource(queue: .main)
+    @State private var index: Int = 0
 
     var gridItems: [GridItem] = [GridItem()]
 
@@ -241,8 +240,9 @@ struct UploadAssetsView: View {
         }
     }
 
-    func presentedQuickLook(previewStore: PreviewStore, size: CGFloat) {
-        if let image = previewStore.asset.fullResolutionImage?.resizeImage(size: CGSize(width: size, height: size)) {
+    func presentedQuickLook(size: CGFloat, index: Int) {
+        self.index = index
+        if let image = uploadAssets.previewStore[index].asset.fullResolutionImage?.resizeImage(size: CGSize(width: size, height: size)) {
             if let data = image.jpegData(compressionQuality: 0.5) {
                 do {
                     try data.write(to: URL(fileURLWithPath: fileNamePath))
@@ -270,9 +270,9 @@ struct UploadAssetsView: View {
                                                 .cornerRadius(10)
                                                 .scaledToFit()
                                                 .onTapGesture {
-                                                    presentedQuickLook(previewStore: uploadAssets.previewStore[index], size: max(geo.size.height, geo.size.height))
+                                                    presentedQuickLook(size: max(geo.size.height, geo.size.height), index: index)
                                                 }.fullScreenCover(isPresented: $isPresentedQuickLook) {
-                                                    ViewerQuickLook(url: URL(fileURLWithPath: fileNamePath), isPresentedQuickLook: $isPresentedQuickLook, previewStore: $uploadAssets.previewStore[index], timer: $timer)
+                                                    ViewerQuickLook(url: URL(fileURLWithPath: fileNamePath), index: $index, isPresentedQuickLook: $isPresentedQuickLook, uploadAssets: uploadAssets)
                                                         .ignoresSafeArea()
                                                 }
                                         }

+ 8 - 5
iOSClient/Viewer/NCViewerQuickLook/ViewerQuickLook.swift

@@ -14,9 +14,9 @@ struct ViewerQuickLook: UIViewControllerRepresentable {
 
     let url: URL
 
+    @Binding var index: Int
     @Binding var isPresentedQuickLook: Bool
-    @Binding var previewStore: PreviewStore
-    @Binding var timer: DispatchSourceTimer
+    @ObservedObject var uploadAssets: NCUploadAssets
 
     func makeUIViewController(context: Context) -> UINavigationController {
         let controller = QLPreviewController()
@@ -35,6 +35,8 @@ struct ViewerQuickLook: UIViewControllerRepresentable {
             action: #selector(context.coordinator.crop)
         )
 
+        /*
+        var timer = DispatchSource.makeTimerSource(queue: .main)
         timer.schedule(deadline: .now(), repeating: 0.3)
         timer.setEventHandler {
             let numItemsRight = controller.navigationItem.rightBarButtonItems?.count ?? 0
@@ -54,6 +56,7 @@ struct ViewerQuickLook: UIViewControllerRepresentable {
             }
         }
         timer.resume()
+        */
 
         let navigationController = UINavigationController(rootViewController: controller)
         return navigationController
@@ -78,12 +81,12 @@ struct ViewerQuickLook: UIViewControllerRepresentable {
         }
 
         @objc func dismiss() {
-            parent.timer.suspend()
+            // parent.timer.suspend()
             parent.isPresentedQuickLook = false
             if let image = image {
-                parent.previewStore.image = image
+                parent.uploadAssets.previewStore[parent.index].image = image
+                parent.uploadAssets.previewStore[parent.index].hasChanges = hasChange
             }
-            parent.previewStore.hasChanges = hasChange
         }
 
         // MARK: -