marinofaggiana 4 years ago
parent
commit
049e17c13a
2 changed files with 19 additions and 21 deletions
  1. 11 16
      iOSClient/Main/NCCollectionViewCommon.swift
  2. 8 5
      iOSClient/Main/NCDataSource.swift

+ 11 - 16
iOSClient/Main/NCCollectionViewCommon.swift

@@ -1250,30 +1250,25 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
     func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
                 
         guard let metadata = dataSource.cellForItemAt(indexPath: indexPath) else {
-            return collectionView.dequeueReusableCell(withReuseIdentifier: "listCell", for: indexPath) as! NCListCell
+            return UICollectionViewCell()
         }
         
-        // Share
-        let shares = NCManageDatabase.sharedInstance.getTableShares(account: metadata.account, serverUrl: metadata.serverUrl, fileName: metadata.fileName)
         var tableShare: tableShare?
-        for share in shares {
-            if share.fileName == metadata.fileName {
-                tableShare = share
-                break
-            }
-        }
+        var isShare = false
+        var isMounted = false
         
         // Download preview
         NCOperationQueue.shared.downloadThumbnail(metadata: metadata, urlBase: appDelegate.urlBase, view: collectionView, indexPath: indexPath)
         
-        var isShare = false
-        var isMounted = false
-        
         if metadataFolder != nil {
             isShare = metadata.permissions.contains(k_permission_shared) && !metadataFolder!.permissions.contains(k_permission_shared)
             isMounted = metadata.permissions.contains(k_permission_mounted) && !metadataFolder!.permissions.contains(k_permission_mounted)
         }
         
+        if dataSource.metadataShare[metadata.ocId] != nil {
+            tableShare = dataSource.metadataShare[metadata.ocId]
+        }
+        
         // LAYOUT LIST
         
         if layout == k_layout_list {
@@ -1305,9 +1300,9 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
                     cell.imageItem.image = NCCollectionCommon.images.cellFolderEncryptedImage
                 } else if isShare {
                     cell.imageItem.image = NCCollectionCommon.images.cellFolderSharedWithMeImage
-                } else if (tableShare != nil && tableShare!.shareType != 3) {
+                } else if (tableShare != nil && tableShare?.shareType != 3) {
                     cell.imageItem.image = NCCollectionCommon.images.cellFolderSharedWithMeImage
-                } else if (tableShare != nil && tableShare!.shareType == 3) {
+                } else if (tableShare != nil && tableShare?.shareType == 3) {
                     cell.imageItem.image = NCCollectionCommon.images.cellFolderPublicImage
                 } else if metadata.mountType == "group" {
                     cell.imageItem.image = NCCollectionCommon.images.cellFolderGroupImage
@@ -1363,9 +1358,9 @@ extension NCCollectionViewCommon: UICollectionViewDataSource {
             // Share image
             if (isShare) {
                 cell.imageShared.image = NCCollectionCommon.images.cellSharedImage
-            } else if (tableShare != nil && tableShare!.shareType == 3) {
+            } else if (tableShare != nil && tableShare?.shareType == 3) {
                 cell.imageShared.image = NCCollectionCommon.images.cellShareByLinkImage
-            } else if (tableShare != nil && tableShare!.shareType != 3) {
+            } else if (tableShare != nil && tableShare?.shareType != 3) {
                 cell.imageShared.image = NCCollectionCommon.images.cellSharedImage
             } else {
                 cell.imageShared.image = NCCollectionCommon.images.cellCanShareImage

+ 8 - 5
iOSClient/Main/NCDataSource.swift

@@ -26,8 +26,9 @@ import Foundation
 class NCDataSource: NSObject {
     
     public var metadatas: [tableMetadata] = []
+    public var metadataShare: [String:tableShare] = [:]
     public var metadataLocalImage: [String:String] = [:]
-    
+
     private var directoryOnTop: Bool = true
     private var filterLivePhoto: Bool = true
     
@@ -53,10 +54,6 @@ class NCDataSource: NSObject {
         var metadataDirectory: [tableMetadata] = []
         var metadataFile: [tableMetadata] = []
 
-        /*
-        Initialize datasource
-        */
-        
         for metadata in metadatasSource {
             
             // skipped livePhoto
@@ -64,6 +61,12 @@ class NCDataSource: NSObject {
                 continue
             }
             
+            // share
+            let shares = NCManageDatabase.sharedInstance.getTableShares(account: metadata.account, serverUrl: metadata.serverUrl, fileName: metadata.fileName)
+            if shares.count > 0 {
+                metadataShare[metadata.ocId] = shares.first
+            }
+            
             // is Local / offline
             if !metadata.directory {
                 let size = CCUtility.fileProviderStorageSize(metadata.ocId, fileNameView: metadata.fileNameView)