marinofaggiana 5 жил өмнө
parent
commit
e0b0e0fe74

+ 4 - 0
iOSClient/Main/NCDetailViewController.swift

@@ -623,6 +623,10 @@ extension NCDetailViewController: NCViewerImageViewControllerDelegate, NCViewerI
         }
     }
     
+    func viewerImageViewControllerLongPress(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata) {
+        
+    }
+    
     func viewerImageViewControllerDismiss() {
         viewUnload()
     }

+ 22 - 1
iOSClient/Viewer/NCViewerImage/NCViewerImageViewController.swift

@@ -42,7 +42,8 @@ protocol NCViewerImageViewControllerDelegate: class {
     func viewerImageViewController(_ viewerImageViewController: NCViewerImageViewController, didChangeFocusTo index: Int, view: NCViewerImageContentView, metadata: tableMetadata)
     
     func viewerImageViewControllerTap(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata)
-
+    func viewerImageViewControllerLongPress(_ viewerImageViewController: NCViewerImageViewController, metadata: tableMetadata)
+    
     func viewerImageViewControllerDismiss()
 }
 
@@ -156,6 +157,14 @@ public class NCViewerImageViewController: UIViewController {
         gesture.addTarget(self, action: #selector(tapGestureEvent(_:)))
         return gesture
     }()
+    
+    lazy private var longtapGestureRecognizer: UILongPressGestureRecognizer = { [unowned self] in
+        let gesture = UILongPressGestureRecognizer()
+        gesture.delaysTouchesBegan = true
+        gesture.delegate = self
+        gesture.addTarget(self, action: #selector(longpressGestureEvent(_:)))
+        return gesture
+    }()
 
     private var previousTranslation: CGPoint = .zero
 
@@ -263,6 +272,7 @@ extension NCViewerImageViewController {
 
         view.addGestureRecognizer(panGestureRecognizer)
         view.addGestureRecognizer(tapGestureRecognizer)
+        view.addGestureRecognizer(longtapGestureRecognizer)
     }
 
     override public func viewDidAppear(_ animated: Bool) {
@@ -421,6 +431,17 @@ extension NCViewerImageViewController {
         
         self.delegate?.viewerImageViewControllerTap(self, metadata: mediaView.metadata)
     }
+    
+    @objc private func longpressGestureEvent(_ recognizer: UITapGestureRecognizer) {
+        if recognizer.state == UIGestureRecognizer.State.ended {
+            guard !dismissController.interactionInProgress else { return }
+            guard let mediaView = self.mediaView(at: 1) else { return }
+            
+            mediaView.zoomScaleOne()
+            
+            self.delegate?.viewerImageViewControllerLongPress(self, metadata: mediaView.metadata)
+        }
+    }
 }
 
 // MARK: - Updating View Positions