Browse Source

new view image

marinofaggiana 4 years ago
parent
commit
83af5a616e

+ 5 - 12
iOSClient/Main/Colleaction Common/NCCollectionViewCommon.swift

@@ -68,7 +68,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     
     internal var isReloadDataSourceNetworkInProgress: Bool = false
     
-    var photos: [UIImage] = []
     var selectedIndexPath: IndexPath!
     var currentLeftSafeAreaInset: CGFloat = 0.0
     var currentRightSafeAreaInset: CGFloat = 0.0
@@ -1211,7 +1210,7 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
             
             if metadata.typeFile == k_metadataTypeFile_document && NCUtility.shared.isDirectEditing(account: metadata.account, contentType: metadata.contentType) != nil {
                 if NCCommunication.shared.isNetworkReachable() {
-                    NCViewer.shared.view(viewController: self, metadata: metadataTouch)
+                    NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch])
                 } else {
                     NCContentPresenter.shared.messageNotification("_info_", description: "_go_online_", delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: Int(k_CCErrorOffline), forced: true)
                 }
@@ -1220,7 +1219,7 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
             
             if metadata.typeFile == k_metadataTypeFile_document && NCUtility.shared.isRichDocument(metadata) {
                 if NCCommunication.shared.isNetworkReachable() {
-                    NCViewer.shared.view(viewController: self, metadata: metadataTouch)
+                    NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch])
                 } else {
                     NCContentPresenter.shared.messageNotification("_info_", description: "_go_online_", delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.info, errorCode: Int(k_CCErrorOffline), forced: true)
                 }
@@ -1228,7 +1227,7 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
             }
             
             if metadata.typeFile == k_metadataTypeFile_video {
-                NCViewer.shared.view(viewController: self, metadata: metadataTouch)
+                NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch])
                 return
             }
             
@@ -1244,7 +1243,7 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
             }
             
             if CCUtility.fileProviderStorageExists(metadataTouch.ocId, fileNameView: metadataTouch.fileNameView) {
-                NCViewer.shared.view(viewController: self, metadata: metadataTouch)
+                NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch])
             } else {
                 NCNetworking.shared.download(metadata: metadataTouch, selector: selectorLoadFileView) { (_) in }
             }
@@ -1405,10 +1404,7 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
                         }
                     }
                 }
-                if cell.imageItem.image != nil {
-                    self.photos.append(cell.imageItem.image!)
-                }
-                
+               
                 cell.labelInfo.text = CCUtility.dateDiff(metadata.date as Date) + " · " + CCUtility.transformedSize(metadata.size)
                                 
                 // image local
@@ -1591,9 +1587,6 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
                         }
                     }
                 }
-                if cell.imageItem.image != nil {
-                    self.photos.append(cell.imageItem.image!)
-                }
                 
                 // image Local
                 if dataSource.metadataOffLine.contains(metadata.ocId) {

+ 2 - 2
iOSClient/Main/Create cloud/NCCreateFormUploadDocuments.swift

@@ -333,7 +333,7 @@ import NCCommunication
                         self.dismiss(animated: true, completion: {
                             let metadata = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.account, fileName: fileName, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url ?? "", contentType: result.contentType, livePhoto: false)
                             
-                            NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata)
+                            NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata, metadatas: [metadata])
                         })
                     }
                     
@@ -355,7 +355,7 @@ import NCCommunication
                     
                         let metadata = NCManageDatabase.sharedInstance.createMetadata(account: self.appDelegate.account, fileName: (fileName as NSString).deletingPathExtension + "." + self.fileNameExtension, ocId: CCUtility.createRandomString(12), serverUrl: self.serverUrl, urlBase: self.appDelegate.urlBase, url: url!, contentType: "", livePhoto: false)
                     
-                        NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata) 
+                        NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata, metadatas: [metadata])
                    })
                    
                     

+ 1 - 1
iOSClient/Networking/NCNetworkingNotificationCenter.swift

@@ -85,7 +85,7 @@ import Foundation
                                 
                             } else {
                                 
-                                NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata) 
+                                NCViewer.shared.view(viewController: self.appDelegate.activeViewController, metadata: metadata, metadatas: [metadata]) 
                             }
                         }
                         

+ 12 - 6
iOSClient/Viewer/NCViewer.swift

@@ -35,12 +35,10 @@ class NCViewer: NSObject {
     private var metadata = tableMetadata()
     private var metadatas: [tableMetadata] = []
 
-    func view(viewController: UIViewController, metadata: tableMetadata, metadatas: [tableMetadata]? = nil) {
+    func view(viewController: UIViewController, metadata: tableMetadata, metadatas: [tableMetadata]) {
 
         self.metadata = metadata
-        if metadatas != nil {
-            self.metadatas = metadatas!
-        }
+        self.metadatas = metadatas
         
         // VIDEO AUDIO
         if metadata.typeFile == k_metadataTypeFile_audio || metadata.typeFile == k_metadataTypeFile_video {
@@ -69,8 +67,16 @@ class NCViewer: NSObject {
                     viewerImagePageContainer.transitionController.fromDelegate = viewController
                     viewerImagePageContainer.transitionController.toDelegate = viewerImagePageContainer
                     viewerImagePageContainer.delegate = viewController
-                    viewerImagePageContainer.currentIndex = viewController.selectedIndexPath.row
-                    viewerImagePageContainer.photos = viewController.photos
+                    
+                    var index = 0
+                    for medatasImage in metadatas {
+                        if medatasImage.ocId == metadata.ocId {
+                            viewerImagePageContainer.currentIndex = index
+                            break
+                        }
+                        index += 1
+                    }
+                    viewerImagePageContainer.metadatas = metadatas
                     
                     navigationController.pushViewController(viewerImagePageContainer, animated: true)
                 }

+ 14 - 8
iOSClient/Viewer/NCViewerImage/NCViewerImagePageContainer.swift

@@ -23,7 +23,7 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
         return self.pageViewController.viewControllers![0] as! NCViewerImageZoom
     }
     
-    var photos: [UIImage]!
+    var metadatas: [tableMetadata] = []
     var currentIndex = 0
     var nextIndex: Int?
     
@@ -47,11 +47,9 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
         let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
         vc.delegate = self
         vc.index = self.currentIndex
-        vc.image = self.photos[self.currentIndex]
+        vc.image = getImageFromMetadata(metadatas[currentIndex])
         self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
-        let viewControllers = [
-            vc
-        ]
+        let viewControllers = [vc]
         
         self.pageViewController.setViewControllers(viewControllers, direction: .forward, animated: true, completion: nil)
     }
@@ -145,6 +143,14 @@ class NCViewerImagePageContainer: UIViewController, UIGestureRecognizerDelegate
             })
         }
     }
+    
+    func getImageFromMetadata(_ metadata: tableMetadata) -> UIImage {
+        if FileManager().fileExists(atPath: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag)) {
+            return UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag))!
+        } else {
+            return NCCollectionCommon.images.cellFileImage
+        }
+    }
 }
 
 extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewControllerDataSource {
@@ -157,7 +163,7 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
         
         let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
         vc.delegate = self
-        vc.image = self.photos[currentIndex - 1]
+        vc.image = getImageFromMetadata(metadatas[currentIndex - 1])
         vc.index = currentIndex - 1
         self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
         return vc
@@ -166,14 +172,14 @@ extension NCViewerImagePageContainer: UIPageViewControllerDelegate, UIPageViewCo
     
     func pageViewController(_ pageViewController: UIPageViewController, viewControllerAfter viewController: UIViewController) -> UIViewController? {
         
-        if currentIndex == (self.photos.count - 1) {
+        if currentIndex == (self.metadatas.count - 1) {
             return nil
         }
         
         let vc = UIStoryboard(name: "NCViewerImage", bundle: nil).instantiateViewController(withIdentifier: "\(NCViewerImageZoom.self)") as! NCViewerImageZoom
         vc.delegate = self
         self.singleTapGestureRecognizer.require(toFail: vc.doubleTapGestureRecognizer)
-        vc.image = self.photos[currentIndex + 1]
+        vc.image = getImageFromMetadata(metadatas[currentIndex + 1])
         vc.index = currentIndex + 1
         return vc