marinofaggiana 5 years ago
parent
commit
df5366f2db

+ 24 - 20
iOSClient/Main/NCDetailViewController.swift

@@ -424,23 +424,7 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
             self.navigationController?.navigationBar.topItem?.title = self.metadata!.fileNameView
             self.navigationController?.navigationBar.topItem?.title = self.metadata!.fileNameView
         }
         }
         
         
-        // Original
-        if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
-            var image: UIImage?
-                
-            let imagePath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
-            let ext = CCUtility.getExtension(metadata.fileNameView)
-            if ext == "GIF" { image = UIImage.animatedImage(withAnimatedGIFURL: URL(fileURLWithPath: imagePath)) }
-            else { image = UIImage.init(contentsOfFile: imagePath) }
-                               
-            if let image = image {
-                completion(index, image, ZoomScale.default, nil)
-            } else {
-                completion(index, self.getImageOffOutline(), ZoomScale.default, nil)
-            }
-                
-        // Preview
-        } else if CCUtility.fileProviderStorageIconExists(metadata.ocId, fileNameView: metadata.fileNameView) {
+        if CCUtility.fileProviderStorageIconExists(metadata.ocId, fileNameView: metadata.fileNameView) {
                 
                 
             let imagePath = CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
             let imagePath = CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
             if let image = UIImage.init(contentsOfFile: imagePath) {
             if let image = UIImage.init(contentsOfFile: imagePath) {
@@ -448,8 +432,7 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
             } else {
             } else {
                 completion(index, self.getImageOffOutline(), ZoomScale.default, nil)
                 completion(index, self.getImageOffOutline(), ZoomScale.default, nil)
             }
             }
-                
-        // NO Original/Preview
+    
         } else {
         } else {
                 
                 
             let fileNamePath = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: metadata.serverUrl, activeUrl: appDelegate.activeUrl)!
             let fileNamePath = CCUtility.returnFileNamePath(fromFileName: metadata.fileName, serverUrl: metadata.serverUrl, activeUrl: appDelegate.activeUrl)!
@@ -471,7 +454,28 @@ extension NCDetailViewController: MediaBrowserViewControllerDelegate, MediaBrows
         }
         }
     }
     }
     
     
-    func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int) { }
+    func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int, view: MediaContentView) {
+        
+        if index >= metadatas.count { return }
+        let metadata = metadatas[index]
+        
+        DispatchQueue.global().async {
+            if CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView) > 0 {
+                var image: UIImage?
+                           
+                let imagePath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileNameView)!
+                let ext = CCUtility.getExtension(metadata.fileNameView)
+                if ext == "GIF" { image = UIImage.animatedImage(withAnimatedGIFURL: URL(fileURLWithPath: imagePath)) }
+                else { image = UIImage.init(contentsOfFile: imagePath) }
+                                          
+                if let image = image {
+                    DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(150)) {
+                        view.image = image
+                    }
+                }
+            }
+        }
+    }
     
     
     func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController) {
     func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController) {
         guard let navigationController = self.navigationController else { return }
         guard let navigationController = self.navigationController else { return }

+ 4 - 4
iOSClient/Viewer/NCMediaBrowser/MediaBrowserViewController.swift

@@ -79,7 +79,7 @@ public protocol MediaBrowserViewControllerDelegate: class {
      - note:
      - note:
         This method will not be called on first load, and will be called only on swiping left and right.
         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 mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int, view: MediaContentView)
     
     
     func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController)
     func mediaBrowserTap(_ mediaBrowser: MediaBrowserViewController)
 
 
@@ -88,7 +88,7 @@ public protocol MediaBrowserViewControllerDelegate: class {
 
 
 extension MediaBrowserViewControllerDelegate {
 extension MediaBrowserViewControllerDelegate {
 
 
-    public func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int) {}
+    public func mediaBrowser(_ mediaBrowser: MediaBrowserViewController, didChangeFocusTo index: Int, view: MediaContentView) {}
 }
 }
 
 
 public class MediaBrowserViewController: UIViewController {
 public class MediaBrowserViewController: UIViewController {
@@ -580,7 +580,7 @@ extension MediaBrowserViewController {
                 mediaContainerView.sendSubviewToBack(previousView)
                 mediaContainerView.sendSubviewToBack(previousView)
             }
             }
 
 
-            delegate?.mediaBrowser(self, didChangeFocusTo: index)
+            delegate?.mediaBrowser(self, didChangeFocusTo: index, view: nextView)
 
 
         } else if middleView.position > (1 + normalizedGap - normalizedCenter) {
         } else if middleView.position > (1 + normalizedGap - normalizedCenter) {
 
 
@@ -601,7 +601,7 @@ extension MediaBrowserViewController {
                 mediaContainerView.bringSubviewToFront(nextView)
                 mediaContainerView.bringSubviewToFront(nextView)
             }
             }
 
 
-            delegate?.mediaBrowser(self, didChangeFocusTo: index)
+            delegate?.mediaBrowser(self, didChangeFocusTo: index, view: previousView)
         }
         }
     }
     }
 
 

+ 3 - 3
iOSClient/Viewer/NCMediaBrowser/MediaContentView.swift

@@ -54,7 +54,7 @@ public struct ZoomScale {
     }
     }
 }
 }
 
 
-internal class MediaContentView: UIScrollView {
+public class MediaContentView: UIScrollView {
 
 
     // MARK: - Exposed variables
     // MARK: - Exposed variables
     internal static var interItemSpacing: CGFloat = 0.0
     internal static var interItemSpacing: CGFloat = 0.0
@@ -260,13 +260,13 @@ extension MediaContentView {
 
 
 extension MediaContentView: UIScrollViewDelegate {
 extension MediaContentView: UIScrollViewDelegate {
 
 
-    internal func viewForZooming(in scrollView: UIScrollView) -> UIView? {
+    public func viewForZooming(in scrollView: UIScrollView) -> UIView? {
 
 
         let shouldAllowZoom = (image != nil && position == 0.0)
         let shouldAllowZoom = (image != nil && position == 0.0)
         return shouldAllowZoom ? imageView : nil
         return shouldAllowZoom ? imageView : nil
     }
     }
 
 
-    internal func scrollViewDidZoom(_ scrollView: UIScrollView) {
+    public func scrollViewDidZoom(_ scrollView: UIScrollView) {
 
 
         centerImageView()
         centerImageView()
     }
     }