marinofaggiana 5 жил өмнө
parent
commit
42953237b0

+ 25 - 13
iOSClient/Main/NCDetailViewController.swift

@@ -101,6 +101,7 @@ class NCDetailViewController: UIViewController {
             }
         }
         
+        self.splitViewController?.preferredDisplayMode = .allVisible
         backgroundView.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "logo"), multiplier: 2, color: NCBrandColor.sharedInstance.brand.withAlphaComponent(0.4))
     }
     
@@ -127,20 +128,27 @@ class NCDetailViewController: UIViewController {
                 if mediaBrowser != nil {
                     if metadata.account == self.metadata?.account && metadata.serverUrl == self.metadata?.serverUrl && metadata.typeFile == k_metadataTypeFile_image {
                          
-                        viewUnload()
-                        
-                        for counter in 1...self.metadatas.count {
-                            let index = self.metadatas.count - counter
-                            let metadataLoop = self.metadatas[index]
-                            if metadataLoop.ocId != metadata.ocId {
-                                self.metadata = metadataLoop
-                            } else {
-                                break
+                        if let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND typeFile == %@", metadata.account, metadata.serverUrl, k_metadataTypeFile_image), sorted: CCUtility.getOrderSettings(), ascending: CCUtility.getAscendingSettings()) {
+            
+                            self.metadata = metadatas[0]
+                            
+                            for counter in 1...self.metadatas.count {
+                                let index = self.metadatas.count - counter
+                                let metadataLoop = self.metadatas[index]
+                                if metadataLoop.ocId != metadata.ocId {
+                                    self.metadata = metadataLoop
+                                } else {
+                                    break
+                                }
                             }
-                        }
-                        if self.metadata == nil { self.metadata = metadata }
                             
-                        viewImage()
+                            for view in backgroundView.subviews { view.removeFromSuperview() }
+                            viewImage()
+                            
+                        } else {
+                         
+                            viewUnload()
+                        }
                     }
                     
                 // OTHER SINGLE FILE TYPE
@@ -331,7 +339,7 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
                     mediaBrowser!.view.isHidden = true
                     
                     mediaBrowser!.shouldShowPageControl = false
-                    mediaBrowser!.enableInteractiveDismissal = false
+                    mediaBrowser!.enableInteractiveDismissal = true
                     
                     addChild(mediaBrowser!)
                     backgroundView.addSubview(mediaBrowser!.view)
@@ -415,6 +423,10 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
     func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int) {
     }
     
+    func mediaBrowserDismiss() {
+        viewUnload()
+    }
+    
     func getImageOffOutline() -> UIImage {
         
         let image = CCGraphics.changeThemingColorImage(UIImage.init(named: "imageOffOutline"), width: self.view.frame.width, height: self.view.frame.width, color: NCBrandColor.sharedInstance.brand)

+ 4 - 2
iOSClient/Viewer/NCMediaBrowser/DismissAnimationController.swift

@@ -28,7 +28,7 @@ internal class DismissAnimationController: NSObject {
         static let minimumVelocity: CGFloat = 15.0
         static let minimumTranslation: CGFloat = 0.25
         static let transitionDuration = 0.3
-        static let updateFrameRate: CGFloat = 60.0
+        static let updateFrameRate: CGFloat = 2400.0
         static let transitionSpeedFactor: CGFloat = 0.15
         static let minimumZoomDuringInteraction: CGFloat = 0.9
     }
@@ -185,7 +185,9 @@ internal class DismissAnimationController: NSObject {
 
         let directionalPosition = (gestureDirection == .horizontal) ? relativePosition.y : relativePosition.x
         if directionalPosition != 0.0 {
-            viewController?.dismiss(animated: false, completion: nil)
+            viewController?.dismiss(animated: false, completion: {
+                self.viewController?.delegate?.mediaBrowserDismiss()
+            })
         } else {
             viewController?.mediaContainerView.isHidden = false
             viewController?.hideControls = false

+ 2 - 0
iOSClient/Viewer/NCMediaBrowser/MediaBrowserViewController.swift

@@ -80,6 +80,8 @@ public protocol MediaBrowserViewControllerDelegate: class {
         This method will not be called on first load, and will be called only on swiping left and right.
      */
     func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int)
+    
+    func mediaBrowserDismiss()
 }
 
 extension MediaBrowserViewControllerDelegate {