marinofaggiana 5 years ago
parent
commit
8dea229ad9
1 changed files with 38 additions and 34 deletions
  1. 38 34
      iOSClient/Main/NCDetailViewController.swift

+ 38 - 34
iOSClient/Main/NCDetailViewController.swift

@@ -35,6 +35,7 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
 
     private let appDelegate = UIApplication.shared.delegate as! AppDelegate
     private var mediaBrowser: MediaBrowserViewController?
+    private var metadatas = [tableMetadata]()
     
     required init?(coder: NSCoder) {
         super.init(coder: coder)
@@ -121,15 +122,30 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
         
         // IMAGE
         if metadata.typeFile == k_metadataTypeFile_image {
-            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)
+            
+            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.metadatas.removeAll()
+                var index = 0
+                for metadata in metadatas {
+                    if metadata.ocId == self.metadata!.ocId {
+                        index = 0
+                    }
+                    self.metadatas.insert(metadata, at: index)
+                    index += 1
+                }
+                
+                
+                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
         }
@@ -261,39 +277,27 @@ class NCDetailViewController: UIViewController, MediaBrowserViewControllerDelega
     }
     
     func numberOfItems(in mediaBrowser: MediaBrowserViewController) -> Int {
-
-        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: CCUtility.getOrderSettings(), ascending: CCUtility.getAscendingSettings()) {
-            return metadatas.count
-        }
         
-        return 0
+        return metadatas.count
     }
 
     func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, imageAt index: Int, completion: @escaping MediaBrowserViewControllerDataSource.CompletionBlock) {
 
-        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: CCUtility.getOrderSettings(), ascending: CCUtility.getAscendingSettings()) {
-            let metadata = metadatas[index]
-            if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
-                let imagePath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
-                if let image = UIImage.init(contentsOfFile: imagePath) {
-                    completion(index, image, ZoomScale.default, nil)
-                    return
-                }
-            } else if CCUtility.fileProviderStorageIconExists(metadata.ocId, fileNameView: metadata.fileNameView) {
-                let imagePath = CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
-                if let image = UIImage.init(contentsOfFile: imagePath) {
-                    completion(index, image, ZoomScale.default, nil)
-                    return
-                }
+        let metadata = metadatas[index]
+        if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+            let imagePath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
+            if let image = UIImage.init(contentsOfFile: imagePath) {
+                completion(index, image, ZoomScale.default, nil)
+                return
+            }
+        } else if CCUtility.fileProviderStorageIconExists(metadata.ocId, fileNameView: metadata.fileNameView) {
+            let imagePath = CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
+            if let image = UIImage.init(contentsOfFile: imagePath) {
+                completion(index, image, ZoomScale.default, nil)
+                return
             }
         }
+        
         completion(index, UIImage.init(named: "logo"), ZoomScale.default, nil)
     }
 }