浏览代码

improved video

marinofaggiana 4 年之前
父节点
当前提交
4f42deeb0f
共有 1 个文件被更改,包括 104 次插入3 次删除
  1. 104 3
      iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

+ 104 - 3
iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

@@ -56,17 +56,24 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
     var currentViewerImageZoom: NCViewerImageZoom?
     var panGestureRecognizer: UIPanGestureRecognizer!
     var singleTapGestureRecognizer: UITapGestureRecognizer!
+    var longtapGestureRecognizer: UILongPressGestureRecognizer!
         
     override func viewDidLoad() {
         super.viewDidLoad()
         
         singleTapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(didSingleTapWith(gestureRecognizer:)))
         panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(didPanWith(gestureRecognizer:)))
-
+        longtapGestureRecognizer = UILongPressGestureRecognizer()
+        longtapGestureRecognizer.delaysTouchesBegan = true
+        longtapGestureRecognizer.minimumPressDuration = 0.3
+        longtapGestureRecognizer.delegate = self
+        longtapGestureRecognizer.addTarget(self, action: #selector(didLongpressGestureEvent(gestureRecognizer:)))
+        
         pageViewController.delegate = self
         pageViewController.dataSource = self
-        pageViewController.view.addGestureRecognizer(self.panGestureRecognizer)
-        pageViewController.view.addGestureRecognizer(self.singleTapGestureRecognizer)
+        pageViewController.view.addGestureRecognizer(panGestureRecognizer)
+        pageViewController.view.addGestureRecognizer(singleTapGestureRecognizer)
+        pageViewController.view.addGestureRecognizer(longtapGestureRecognizer)
         
         let viewerImageZoom = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "NCViewerImageZoom") as! NCViewerImageZoom
         
@@ -285,6 +292,50 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
         }
     }
     
+    @objc func didLongpressGestureEvent(gestureRecognizer: UITapGestureRecognizer) {
+        
+        if gestureRecognizer.state == .began {
+            
+            let fileName = (currentMetadata.fileNameView as NSString).deletingPathExtension + ".mov"
+            if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", currentMetadata.account, currentMetadata.serverUrl, fileName)) {
+                
+                if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+                    
+                    AudioServicesPlaySystemSound(1519) // peek feedback
+                    //viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+                    
+                } else {
+                    
+                    let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileNameView
+                    let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
+                                    
+                    NCCommunication.shared.download(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, requestHandler: { (_) in
+                        
+                    }, progressHandler: { (progress) in
+                                        
+                        self.progressView.progress = Float(progress.fractionCompleted)
+                        
+                    }) { (account, etag, date, length, error, errorCode, errorDescription) in
+                        
+                        self.progressView.progress = 0
+                        
+                        if errorCode == 0 && account == metadata.account {
+                            
+                            NCManageDatabase.sharedInstance.addLocalFile(metadata: metadata)
+                            AudioServicesPlaySystemSound(1519) // peek feedback
+                            //self.viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+                        }
+                    }
+                }
+            }
+            
+        } else if gestureRecognizer.state == .ended {
+            
+            //appDelegate.player?.pause()
+            //videoLayer?.removeFromSuperlayer()
+        }
+    }
+    
     //MARK: - Delegate Image Zoom
 
     func viewWillAppearImageZoom(viewerImageZoom: NCViewerImageZoom, metadata: tableMetadata) {
@@ -493,3 +544,53 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
         self.nextIndex = nil
     }
 }
+
+/*
+ func viewerImageViewControllerLongPressBegan(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
+     
+     viewerImageViewController.statusView.isHidden = true
+     viewerImageViewControllerLongPressInProgress = true
+     
+     let fileName = (metadata.fileNameView as NSString).deletingPathExtension + ".mov"
+     if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileNameView LIKE[c] %@", metadata.account, metadata.serverUrl, fileName)) {
+         
+         if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+             
+             AudioServicesPlaySystemSound(1519) // peek feedback
+             viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+             
+         } else {
+             
+             let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileNameView
+             let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
+                             
+             NCCommunication.shared.download(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath, requestHandler: { (_) in
+                 
+             }, progressHandler: { (progress) in
+                                 
+                 self.progress(Float(progress.fractionCompleted))
+                 
+             }) { (account, etag, date, length, error, errorCode, errorDescription) in
+                 
+                 self.progress(0)
+                 
+                 if errorCode == 0 && account == metadata.account {
+                     
+                     NCManageDatabase.sharedInstance.addLocalFile(metadata: metadata)
+                     AudioServicesPlaySystemSound(1519) // peek feedback
+                     self.viewMOV(viewerImageViewController: viewerImageViewController, metadata: metadata)
+                 }
+             }
+         }
+     }
+ }
+ 
+ func viewerImageViewControllerLongPressEnded(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
+     
+     viewerImageViewControllerLongPressInProgress = false
+     
+     viewerImageViewController.statusView.isHidden = false
+     appDelegate.player?.pause()
+     videoLayer?.removeFromSuperlayer()
+ }
+ */