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

+ 1 - 1
iOSClient/Main/NCDetailViewController.swift

@@ -485,7 +485,7 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
         }
     }
     
-    func mediaBrowserTap(_ view: MediaContentView) {
+    func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController) {
         guard let navigationController = self.navigationController else { return }
         
         if navigationController.isNavigationBarHidden {

+ 21 - 3
iOSClient/Viewer/NCViewerImage/MediaBrowserViewController.swift

@@ -81,7 +81,7 @@ public protocol MediaBrowserViewControllerDelegate: class {
      */
     func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int, view: MediaContentView)
     
-    func mediaBrowserTap(_ view: MediaContentView)
+    func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController)
 
     func mediaBrowserDismiss()
 }
@@ -217,6 +217,15 @@ public class MediaBrowserViewController: UIViewController {
 
     public var contentViews: [MediaContentView] = []
 
+    lazy private var tapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in
+        let gesture = UITapGestureRecognizer()
+        gesture.numberOfTapsRequired = 1
+        gesture.numberOfTouchesRequired = 1
+        gesture.delegate = self
+        gesture.addTarget(self, action: #selector(tapGestureEvent(_:)))
+        return gesture
+    }()
+
     private var previousTranslation: CGPoint = .zero
 
     private var timer: Timer?
@@ -323,6 +332,7 @@ extension MediaBrowserViewController {
         populateContentViews()
 
         view.addGestureRecognizer(panGestureRecognizer)
+        view.addGestureRecognizer(tapGestureRecognizer)
     }
 
     override public func viewDidAppear(_ animated: Bool) {
@@ -370,8 +380,7 @@ extension MediaBrowserViewController {
             let mediaView = MediaContentView(
                 index: i + index,
                 position: CGFloat(i),
-                frame: view.bounds,
-                delegate: self.delegate
+                frame: view.bounds
             )
             mediaContainerView.addSubview(mediaView)
             mediaView.translatesAutoresizingMaskIntoConstraints = false
@@ -472,6 +481,15 @@ extension MediaBrowserViewController {
 
         previousTranslation = translation
     }
+
+    @objc private func tapGestureEvent(_ recognizer: UITapGestureRecognizer) {
+
+        guard !dismissController.interactionInProgress else {
+            return
+        }
+
+        self.delegate?.mediaBrowserTap(self)
+    }
 }
 
 // MARK: - Updating View Positions

+ 1 - 36
iOSClient/Viewer/NCViewerImage/MediaContentView.swift

@@ -125,27 +125,17 @@ public class MediaContentView: UIScrollView {
         return container
     }()
 
-    private lazy var singleTapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in
-        let gesture = UITapGestureRecognizer(target: self, action: #selector(didSingleTap(_:)))
-        gesture.numberOfTapsRequired = 1
-        gesture.numberOfTouchesRequired = 1
-        return gesture
-    }()
-    
     private lazy var doubleTapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in
         let gesture = UITapGestureRecognizer(target: self, action: #selector(didDoubleTap(_:)))
         gesture.numberOfTapsRequired = 2
         gesture.numberOfTouchesRequired = 1
         return gesture
     }()
-    
-    private var mediaBrowserViewControllerDelegate: MediaBrowserViewControllerDelegate?
 
-    init(index itemIndex: Int, position: CGFloat, frame: CGRect, delegate: MediaBrowserViewControllerDelegate?) {
+    init(index itemIndex: Int, position: CGFloat, frame: CGRect) {
 
         self.index = itemIndex
         self.position = position
-        self.mediaBrowserViewControllerDelegate = delegate
 
         super.init(frame: frame)
 
@@ -171,12 +161,8 @@ extension MediaContentView {
 
         configureScrollView()
 
-        addGestureRecognizer(singleTapGestureRecognizer)
-        
         addGestureRecognizer(doubleTapGestureRecognizer)
 
-        singleTapGestureRecognizer.require(toFail: doubleTapGestureRecognizer)
-        
         updateTransform()
     }
 
@@ -244,27 +230,6 @@ extension MediaContentView {
         contentSize = imageView.frame.size
     }
 
-    @objc private func didSingleTap(_ recognizer: UITapGestureRecognizer) {
-                
-        if zoomScale != 1 {
-            
-            let locationInImage = recognizer.location(in: imageView)
-            let width = bounds.size.width
-            let height = bounds.size.height
-
-            let zoomRect = CGRect(
-                x: locationInImage.x - width * 0.5,
-                y: locationInImage.y - height * 0.5,
-                width: width,
-                height: height
-            )
-
-            zoom(to: zoomRect, animated: true)
-        }
-        
-        self.mediaBrowserViewControllerDelegate?.mediaBrowserTap(self)
-    }
-    
     @objc private func didDoubleTap(_ recognizer: UITapGestureRecognizer) {
 
         let locationInImage = recognizer.location(in: imageView)