marinofaggiana 5 years ago
parent
commit
7768ff71f5

+ 1 - 1
Cartfile.resolved

@@ -17,7 +17,7 @@ github "kishikawakatsumi/UICKeyChainStore" "v2.1.2"
 github "krzyzanowskim/OpenSSL" "1.0.218"
 github "malcommac/SwiftRichString" "3.7.1"
 github "marinofaggiana/AFNetworking" "2967678c3e0e98c9b8d7e06222ad12d1f49c26f2"
-github "marinofaggiana/ATGMediaBrowser" "f68a12108794b425180d4daf2e87e25edd5d21ce"
+github "marinofaggiana/ATGMediaBrowser" "d00304cc8f7f77f7d05441a3fc21253800eaa1b1"
 github "marinofaggiana/FastScroll" "81967c2309d29bc2c330d422da612160a30bade8"
 github "nextcloud/ios-communication-library" "v0.54"
 github "realm/realm-cocoa" "v4.3.1"

+ 41 - 13
iOSClient/Main/NCDetailViewController.swift

@@ -34,6 +34,7 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
     @objc var selector: String?
 
     private let appDelegate = UIApplication.shared.delegate as! AppDelegate
+    private var mediaBrowser: MediaBrowserViewController?
     
     required init?(coder: NSCoder) {
         super.init(coder: coder)
@@ -45,6 +46,8 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
         super.viewDidLoad()
         
         NotificationCenter.default.addObserver(self, selector: #selector(self.changeTheming), name: NSNotification.Name(rawValue: "changeTheming"), object: nil)
+        NotificationCenter.default.addObserver(self, selector: #selector(self.changeDisplayMode), name: NSNotification.Name(rawValue: "changeDisplayMode"), object: nil)
+
         changeTheming()
         
         if metadata != nil  {
@@ -65,6 +68,13 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
         }
     }
     
+    override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
+        super.viewWillTransition(to: size, with: coordinator)
+        
+        coordinator.animate(alongsideTransition: nil) { _ in
+        }
+    }
+    
     func viewUnload() {
         if let splitViewController = self.splitViewController as? NCSplitViewController {
             if splitViewController.isCollapsed {
@@ -84,6 +94,9 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
         backgroundView.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "logo"), multiplier: 2, color: NCBrandColor.sharedInstance.brand.withAlphaComponent(0.4))
         view.backgroundColor = NCBrandColor.sharedInstance.backgroundView
     }
+   
+    @objc func changeDisplayMode() {
+    }
     
     func subViewActive() -> UIView? {
         return backgroundView.subviews.first
@@ -107,14 +120,16 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
         
         // IMAGE
         if metadata.typeFile == k_metadataTypeFile_image {
-            let mediaBrowser = MediaBrowserViewController(dataSource: self)
-            mediaBrowser.shouldShowPageControl = false
-            mediaBrowser.view.frame = CGRect(x: 0, y: 0, width: backgroundView.frame.width, height: backgroundView.frame.height)
+            mediaBrowser = MediaBrowserViewController(dataSource: self)
+            if mediaBrowser != nil {
+                mediaBrowser!.shouldShowPageControl = false
+                mediaBrowser!.enableInteractiveDismissal = false
+                mediaBrowser!.view.frame = CGRect(x: 0, y: 0, width: backgroundView.frame.width, height: backgroundView.frame.height)
 
-            addChild(mediaBrowser)
-            backgroundView.addSubview(mediaBrowser.view)
-            mediaBrowser.didMove(toParent: self)
-            
+                addChild(mediaBrowser!)
+                backgroundView.addSubview(mediaBrowser!.view)
+                mediaBrowser!.didMove(toParent: self)
+            }
             return
         }
         
@@ -246,15 +261,28 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
     
     func numberOfItems(in mediaBrowser: MediaBrowserViewController) -> Int {
 
-        // return number of images to be shown
-        return 10
+        guard let metadata = metadata else { return 0 }
+        
+        if let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND typeFile == %@", metadata.account, metadata.serverUrl, k_metadataTypeFile_image), sorted: "fileName", ascending: true) {
+            return metadatas.count
+        }
+        
+        return 0
     }
 
     func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, imageAt index: Int, completion: @escaping MediaBrowserViewControllerDataSource.CompletionBlock) {
 
-        // Fetch the required image here. Pass it to the completion
-        // block along with the index, zoom scale, and error if any.
-        let image = UIImage.init(named: "logo")
-        completion(index, image, ZoomScale.default, nil)
+        guard let metadata = metadata else {
+            completion(index, UIImage.init(named: "logo"), ZoomScale.default, nil)
+            return
+        }
+        
+        if let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND typeFile == %@", metadata.account, metadata.serverUrl, k_metadataTypeFile_image), sorted: "fileName", ascending: true) {
+            let metadata = metadatas[index]
+            
+            
+        } else {
+            completion(index, UIImage.init(named: "logo"), ZoomScale.default, nil)
+        }
     }
 }

+ 1 - 4
iOSClient/Main/NCSplitViewController.swift

@@ -68,9 +68,6 @@ extension NCSplitViewController: UISplitViewControllerDelegate {
     }
     
     func splitViewController(_ svc: UISplitViewController, willChangeTo displayMode: UISplitViewController.DisplayMode) {
-        let navigationController = viewControllers.last as? UINavigationController
-        if let detailViewController = navigationController?.topViewController {
-            
-        }
+        NotificationCenter.default.post(name: Notification.Name.init(rawValue: "changeDisplayMode"), object: nil)
     }
 }