marinofaggiana 3 år sedan
förälder
incheckning
8a6805e9ef

+ 136 - 139
iOSClient/Main/Collection Common/NCCollectionViewCommon.swift

@@ -40,7 +40,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     internal var selectOcId: [String] = []
     internal var metadatasSource: [tableMetadata] = []
     internal var metadataFolder: tableMetadata?
-    internal var metadataTouch: tableMetadata?
     internal var dataSource = NCDataSource()
     internal var richWorkspaceText: String?
     internal var header: UIView?
@@ -63,7 +62,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
     
     internal var isReloadDataSourceNetworkInProgress: Bool = false
     
-    var selectedIndexPath: IndexPath!
     private var pushed: Bool = false
     
     // DECLARE
@@ -916,12 +914,6 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
         
         if gestureRecognizer.state != .began { return }
         
-        if let metadata = NCManageDatabase.shared.getMetadataFromOcId(objectId) {
-            metadataTouch = metadata
-        } else {
-            metadataTouch = nil
-        }
-        
         var listMenuItems: [UIMenuItem] = []
         let touchPoint = gestureRecognizer.location(in: collectionView)
         
@@ -1086,172 +1078,178 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS
             }
         }
     }
-}
-
-// MARK: - Collection View
-
-extension NCCollectionViewCommon: UICollectionViewDelegate {
-
-    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+    
+    // MARK: -  Push metadata
+    
+    func pushMetadata(_ metadata: tableMetadata) {
         
-        guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return }
-        metadataTouch = metadata
-        selectedIndexPath = indexPath
+        guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName) else { return }
         appDelegate.activeMetadata = metadata
         
-        if isEditMode {
-            if let index = selectOcId.firstIndex(of: metadata.ocId) {
-                selectOcId.remove(at: index)
+        // FILES
+        if layoutKey == NCGlobal.shared.layoutViewFiles && !pushed {
+            
+            if let viewController = appDelegate.listFilesVC[serverUrlPush] {
+                
+                if viewController.isViewLoaded {
+                    pushViewController(viewController: viewController)
+                }
+                
             } else {
-                selectOcId.append(metadata.ocId)
+                
+                if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
+                    
+                    viewController.isRoot = false
+                    viewController.serverUrl = serverUrlPush
+                    viewController.titleCurrentFolder = metadata.fileNameView
+                    
+                    appDelegate.listFilesVC[serverUrlPush] = viewController
+                                   
+                    pushViewController(viewController: viewController)
+                }
             }
-            collectionView.reloadItems(at: [indexPath])
-            self.navigationItem.title = NSLocalizedString("_selected_", comment: "") + " : \(selectOcId.count)" + " / \(dataSource.metadatas.count)"
-            return
         }
         
-        if metadata.e2eEncrypted && !CCUtility.isEnd(toEndEnabled: appDelegate.account) {
-            NCContentPresenter.shared.messageNotification("_info_", description: "_e2e_goto_settings_for_enable_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorE2EENotEnabled, forced: true)
-            return
-        }
+        // FAVORITE
+        if layoutKey == NCGlobal.shared.layoutViewFavorite && !pushed {
         
-        if metadata.directory {
-            
-            guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadataTouch!.serverUrl, addFileName: metadataTouch!.fileName) else { return }
-            
-            // FILES
-            if layoutKey == NCGlobal.shared.layoutViewFiles && !pushed {
+            if let viewController = appDelegate.listFavoriteVC[serverUrlPush] {
                 
-                if let viewController = appDelegate.listFilesVC[serverUrlPush] {
-                    
-                    if viewController.isViewLoaded {
-                        pushViewController(viewController: viewController)
-                    }
-                    
-                } else {
-                    
-                    if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
-                        
-                        viewController.isRoot = false
-                        viewController.serverUrl = serverUrlPush
-                        viewController.titleCurrentFolder = metadataTouch!.fileNameView
-                        
-                        appDelegate.listFilesVC[serverUrlPush] = viewController
-                                       
-                        pushViewController(viewController: viewController)
-                    }
+                if viewController.isViewLoaded {
+                    pushViewController(viewController: viewController)
                 }
-            }
-            
-            // FAVORITE
-            if layoutKey == NCGlobal.shared.layoutViewFavorite && !pushed {
-            
-                if let viewController = appDelegate.listFavoriteVC[serverUrlPush] {
-                    
-                    if viewController.isViewLoaded {
-                        pushViewController(viewController: viewController)
-                    }
 
-                } else {
-                                        
-                    if let viewController:NCFavorite = UIStoryboard(name: "NCFavorite", bundle: nil).instantiateInitialViewController() as? NCFavorite {
-                        
-                        viewController.serverUrl = serverUrlPush
-                        viewController.titleCurrentFolder = metadataTouch!.fileNameView
+            } else {
+                                    
+                if let viewController:NCFavorite = UIStoryboard(name: "NCFavorite", bundle: nil).instantiateInitialViewController() as? NCFavorite {
                     
-                        appDelegate.listFavoriteVC[serverUrlPush] = viewController
-                        
-                        pushViewController(viewController: viewController)
-                    }
+                    viewController.serverUrl = serverUrlPush
+                    viewController.titleCurrentFolder = metadata.fileNameView
+                
+                    appDelegate.listFavoriteVC[serverUrlPush] = viewController
+                    
+                    pushViewController(viewController: viewController)
                 }
             }
+        }
+        
+        // OFFLINE
+        if layoutKey == NCGlobal.shared.layoutViewOffline && !pushed {
             
-            // OFFLINE
-            if layoutKey == NCGlobal.shared.layoutViewOffline && !pushed {
+            if let viewController = appDelegate.listOfflineVC[serverUrlPush] {
+                
+                if viewController.isViewLoaded {
+                    pushViewController(viewController: viewController)
+                }
                 
-                if let viewController = appDelegate.listOfflineVC[serverUrlPush] {
+            } else {
+                
+                if let viewController:NCOffline = UIStoryboard(name: "NCOffline", bundle: nil).instantiateInitialViewController() as? NCOffline {
                     
-                    if viewController.isViewLoaded {
-                        pushViewController(viewController: viewController)
-                    }
+                    viewController.serverUrl = serverUrlPush
+                    viewController.titleCurrentFolder = metadata.fileNameView
                     
-                } else {
+                    appDelegate.listOfflineVC[serverUrlPush] = viewController
                     
-                    if let viewController:NCOffline = UIStoryboard(name: "NCOffline", bundle: nil).instantiateInitialViewController() as? NCOffline {
-                        
-                        viewController.serverUrl = serverUrlPush
-                        viewController.titleCurrentFolder = metadataTouch!.fileNameView
-                        
-                        appDelegate.listOfflineVC[serverUrlPush] = viewController
-                        
-                        pushViewController(viewController: viewController)
-                    }
+                    pushViewController(viewController: viewController)
                 }
             }
+        }
+        
+        // RECENT ( for push use Files ... he he he )
+        if layoutKey == NCGlobal.shared.layoutViewRecent && !pushed {
             
-            // RECENT ( for push use Files ... he he he )
-            if layoutKey == NCGlobal.shared.layoutViewRecent && !pushed {
+            if let viewController = appDelegate.listFilesVC[serverUrlPush] {
+                
+                if viewController.isViewLoaded {
+                    pushViewController(viewController: viewController)
+                }
+                
+            } else {
                 
-                if let viewController = appDelegate.listFilesVC[serverUrlPush] {
+                if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
                     
-                    if viewController.isViewLoaded {
-                        pushViewController(viewController: viewController)
-                    }
+                    viewController.isRoot = false
+                    viewController.serverUrl = serverUrlPush
+                    viewController.titleCurrentFolder = metadata.fileNameView
                     
-                } else {
+                    appDelegate.listFilesVC[serverUrlPush] = viewController
                     
-                    if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
-                        
-                        viewController.isRoot = false
-                        viewController.serverUrl = serverUrlPush
-                        viewController.titleCurrentFolder = metadataTouch!.fileNameView
-                        
-                        appDelegate.listFilesVC[serverUrlPush] = viewController
-                        
-                        pushViewController(viewController: viewController)
-                    }
+                    pushViewController(viewController: viewController)
                 }
             }
+        }
+        
+        //VIEW IN FOLDER
+        if layoutKey == NCGlobal.shared.layoutViewViewInFolder && !pushed {
+            
+            if let viewController:NCFileViewInFolder = UIStoryboard(name: "NCFileViewInFolder", bundle: nil).instantiateInitialViewController() as? NCFileViewInFolder {
+            
+                viewController.serverUrl = serverUrlPush
+                viewController.titleCurrentFolder = metadata.fileNameView
+                            
+                pushViewController(viewController: viewController)
+            }
+        }
+        
+        // SHARES ( for push use Files ... he he he )
+        if layoutKey == NCGlobal.shared.layoutViewShares && !pushed {
             
-            //VIEW IN FOLDER
-            if layoutKey == NCGlobal.shared.layoutViewViewInFolder && !pushed {
-                
-                if let viewController:NCFileViewInFolder = UIStoryboard(name: "NCFileViewInFolder", bundle: nil).instantiateInitialViewController() as? NCFileViewInFolder {
+            if let viewController = appDelegate.listFilesVC[serverUrlPush] {
                 
-                    viewController.serverUrl = serverUrlPush
-                    viewController.titleCurrentFolder = metadataTouch!.fileNameView
-                                
+                if viewController.isViewLoaded {
                     pushViewController(viewController: viewController)
                 }
-            }
-            
-            // SHARES ( for push use Files ... he he he )
-            if layoutKey == NCGlobal.shared.layoutViewShares && !pushed {
                 
-                if let viewController = appDelegate.listFilesVC[serverUrlPush] {
-                    
-                    if viewController.isViewLoaded {
-                        pushViewController(viewController: viewController)
-                    }
-                    
-                } else {
+            } else {
+                
+                if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
+                
+                    viewController.isRoot = false
+                    viewController.serverUrl = serverUrlPush
+                    viewController.titleCurrentFolder = metadata.fileNameView
                     
-                    if let viewController:NCFiles = UIStoryboard(name: "NCFiles", bundle: nil).instantiateInitialViewController() as? NCFiles {
+                    appDelegate.listFilesVC[serverUrlPush] = viewController
                     
-                        viewController.isRoot = false
-                        viewController.serverUrl = serverUrlPush
-                        viewController.titleCurrentFolder = metadataTouch!.fileNameView
-                        
-                        appDelegate.listFilesVC[serverUrlPush] = viewController
-                        
-                        pushViewController(viewController: viewController)
-                    }
+                    pushViewController(viewController: viewController)
                 }
             }
+        }
+    }
+
+}
+
+// MARK: - Collection View
+
+extension NCCollectionViewCommon: UICollectionViewDelegate {
+
+    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
+        
+        guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return }
+        appDelegate.activeMetadata = metadata
+        
+        if isEditMode {
+            if let index = selectOcId.firstIndex(of: metadata.ocId) {
+                selectOcId.remove(at: index)
+            } else {
+                selectOcId.append(metadata.ocId)
+            }
+            collectionView.reloadItems(at: [indexPath])
+            self.navigationItem.title = NSLocalizedString("_selected_", comment: "") + " : \(selectOcId.count)" + " / \(dataSource.metadatas.count)"
+            return
+        }
+        
+        if metadata.e2eEncrypted && !CCUtility.isEnd(toEndEnabled: appDelegate.account) {
+            NCContentPresenter.shared.messageNotification("_info_", description: "_e2e_goto_settings_for_enable_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorE2EENotEnabled, forced: true)
+            return
+        }
+        
+        if metadata.directory {
+            
+            pushMetadata(metadata)
             
         } else {
             
-            guard let metadataTouch = metadataTouch else { return }
             let imageIcon = UIImage(contentsOfFile: CCUtility.getDirectoryProviderStorageIconOcId(metadata.ocId, etag: metadata.etag))
             
             if metadata.classFile == NCCommunicationCommon.typeClassFile.image.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.video.rawValue || metadata.classFile == NCCommunicationCommon.typeClassFile.audio.rawValue {
@@ -1261,14 +1259,14 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
                         metadatas.append(metadata)
                     }
                 }
-                NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: metadatas, imageIcon: imageIcon)
+                NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: metadatas, imageIcon: imageIcon)
                 return
             }
             
-            if CCUtility.fileProviderStorageExists(metadataTouch.ocId, fileNameView: metadataTouch.fileNameView) {
-                NCViewer.shared.view(viewController: self, metadata: metadataTouch, metadatas: [metadataTouch], imageIcon: imageIcon)
+            if CCUtility.fileProviderStorageExists(metadata.ocId, fileNameView: metadata.fileNameView) {
+                NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: [metadata], imageIcon: imageIcon)
             } else if NCCommunication.shared.isNetworkReachable() {
-                NCNetworking.shared.download(metadata: metadataTouch, selector: NCGlobal.shared.selectorLoadFileView) { (_) in }
+                NCNetworking.shared.download(metadata: metadata, selector: NCGlobal.shared.selectorLoadFileView) { (_) in }
             } else {
                 NCContentPresenter.shared.messageNotification("_info_", description: "_go_online_", delay: NCGlobal.shared.dismissAfterSecond, type: NCContentPresenter.messageType.info, errorCode: NCGlobal.shared.errorOffline, forced: true)
             }
@@ -1295,7 +1293,6 @@ extension NCCollectionViewCommon: UICollectionViewDelegate {
         
         if isEditMode { return nil }
         guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else { return nil }
-        metadataTouch = metadata
         let identifier = indexPath as NSCopying
         var image: UIImage?
         let cell = collectionView.cellForItem(at: indexPath)

+ 2 - 4
iOSClient/Media/NCMedia.swift

@@ -35,7 +35,6 @@ class NCMedia: UIViewController, NCEmptyDataSetDelegate, NCSelectDelegate {
     internal let appDelegate = UIApplication.shared.delegate as! AppDelegate
     
     public var metadatas: [tableMetadata] = []
-    private var metadataTouch: tableMetadata?
     private var account: String = ""
 
     private var predicateDefault: NSPredicate?
@@ -316,7 +315,6 @@ extension NCMedia: UICollectionViewDelegate {
     func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
         
         let metadata = metadatas[indexPath.row]
-        metadataTouch = metadata
         
         if isEditMode {
             if let index = selectOcId.firstIndex(of: metadata.ocId) {
@@ -331,9 +329,9 @@ extension NCMedia: UICollectionViewDelegate {
         } else {
             
             // ACTIVE SERVERURL
-            appDelegate.activeServerUrl = metadataTouch!.serverUrl
+            appDelegate.activeServerUrl = metadata.serverUrl
             let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "gridCell", for: indexPath) as? NCGridMediaCell
-            NCViewer.shared.view(viewController: self, metadata: metadataTouch!, metadatas: metadatas, imageIcon: cell?.imageItem.image)
+            NCViewer.shared.view(viewController: self, metadata: metadata, metadatas: metadatas, imageIcon: cell?.imageItem.image)
         }
     }
     

+ 1 - 3
iOSClient/Select/NCSelect.swift

@@ -59,7 +59,6 @@ class NCSelect: UIViewController, UIGestureRecognizerDelegate, UIAdaptivePresent
     
     private let keyLayout = NCGlobal.shared.layoutViewMove
     private var serverUrlPush = ""
-    private var metadataTouch: tableMetadata?
     private var metadataFolder = tableMetadata()
     
     private var isEditMode = false
@@ -325,7 +324,6 @@ extension NCSelect: UICollectionViewDelegate {
             guard let viewController = UIStoryboard(name: "NCSelect", bundle: nil).instantiateViewController(withIdentifier: "NCSelect.storyboard") as? NCSelect else { return }
 
             self.serverUrlPush = serverUrlPush
-            self.metadataTouch = metadata
             
             viewController.delegate = delegate
             viewController.typeOfCommandView = typeOfCommandView
@@ -336,7 +334,7 @@ extension NCSelect: UICollectionViewDelegate {
             viewController.overwrite = overwrite
             viewController.items = items
 
-            viewController.titleCurrentFolder = metadataTouch!.fileNameView
+            viewController.titleCurrentFolder = metadata.fileNameView
             viewController.serverUrl = serverUrlPush
                    
             self.navigationController?.pushViewController(viewController, animated: true)