marinofaggiana 5 years ago
parent
commit
f8355129f4
1 changed files with 35 additions and 10 deletions
  1. 35 10
      iOSClient/Main/NCDetailViewController.swift

+ 35 - 10
iOSClient/Main/NCDetailViewController.swift

@@ -627,17 +627,30 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
     func viewerImageViewControllerLongPressBegan(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
         
         let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
-        if let metadataMOV = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName)) {
+        if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName)) {
             
-            if CCUtility.fileProviderStorageSize(metadataMOV.ocId, fileNameView: metadataMOV.fileNameView) > 0 {
-
-                appDelegate.player = AVPlayer(url: URL(fileURLWithPath: CCUtility.getDirectoryProviderStorageOcId(metadataMOV.ocId, fileNameView: metadataMOV.fileNameView)!))
-                videoLayer = AVPlayerLayer(player: appDelegate.player)
-                if  videoLayer != nil {
-                    videoLayer!.frame = viewerImageViewController.view.frame
-                    videoLayer!.videoGravity = AVLayerVideoGravity.resizeAspect
-                    viewerImageViewController.view.layer.addSublayer(videoLayer!)
-                    appDelegate.player?.play()
+            if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+                
+                viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+                
+            } else {
+                
+                let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
+                let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileName)!
+                
+                _ = NCCommunication.sharedInstance.download(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, account: metadata.account, progressHandler: { (progress) in
+                                    
+                    self.progress(Float(progress.fractionCompleted))
+                    
+                }) { (account, etag, date, length, errorCode, errorDescription) in
+                    
+                    self.progress(0)
+                    
+                    if errorCode == 0 && account == metadata.account {
+                        
+                        _ = NCManageDatabase.sharedInstance.addLocalFile(metadata: metadata)
+                        self.viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+                    }
                 }
             }
         }
@@ -670,4 +683,16 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
         
         appDelegate.startLoadAutoDownloadUpload()
     }
+    
+    func viewMOV(viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
+        
+        appDelegate.player = AVPlayer(url: URL(fileURLWithPath: CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!))
+        videoLayer = AVPlayerLayer(player: appDelegate.player)
+        if  videoLayer != nil {
+            videoLayer!.frame = viewerImageViewController.view.frame
+            videoLayer!.videoGravity = AVLayerVideoGravity.resizeAspect
+            viewerImageViewController.view.layer.addSublayer(videoLayer!)
+            appDelegate.player?.play()
+        }
+    }
 }