Marino Faggiana hace 6 años
padre
commit
fc95f10f39

+ 6 - 6
iOSClient/Main/Cell/NCGridCell.swift

@@ -61,16 +61,16 @@ class NCGridCell: UICollectionViewCell {
         delegate?.tapMoreGridItem(with: fileID, sender: sender)
     }
     
-    func hide(buttonMore: Bool, imageShare: Bool) {
+    func hide(buttonMore: Bool, hideImageShare: Bool) {
         
-        if buttonMore && imageShare {
+        if buttonMore && hideImageShare {
             
             self.buttonMore.isHidden = true
             self.imageShare.isHidden = true
             
             labelTitleTrailing.constant = 0
             
-        } else if buttonMore && !imageShare {
+        } else if buttonMore && !hideImageShare {
             
             self.buttonMore.isHidden = true
             self.imageShare.isHidden = false
@@ -78,19 +78,19 @@ class NCGridCell: UICollectionViewCell {
             imageShareTrailing.constant = 0
             labelTitleTrailing.constant = imageShareWidth
             
-        } else if !buttonMore && imageShare {
+        } else if !buttonMore && hideImageShare {
             
             self.buttonMore.isHidden = false
             self.imageShare.isHidden = true
             
             labelTitleTrailing.constant = buttonMoreWidth
             
-        } else if !buttonMore && !imageShare {
+        } else if !buttonMore && !hideImageShare {
             
             self.buttonMore.isHidden = false
             self.imageShare.isHidden = false
             
-            imageShareTrailing.constant = labelTitleTrailingConstant
+            imageShareTrailing.constant = imageShareTrailingConstant
             labelTitleTrailing.constant = labelTitleTrailingConstant
         }
     }

+ 5 - 5
iOSClient/Main/Cell/NCListCell.swift

@@ -69,9 +69,9 @@ class NCListCell: UICollectionViewCell {
         delegate?.tapMoreListItem(with: fileID, sender: sender)
     }
     
-    func hide(buttonMore: Bool, imageShare: Bool) {
+    func hide(buttonMore: Bool, hideImageShare: Bool) {
         
-        if buttonMore && imageShare {
+        if buttonMore && hideImageShare {
             
             self.buttonMore.isHidden = true
             self.imageMore.isHidden = true
@@ -79,7 +79,7 @@ class NCListCell: UICollectionViewCell {
             
             labelTitleTrailing.constant = 0
             
-        } else if buttonMore && !imageShare {
+        } else if buttonMore && !hideImageShare {
             
             self.buttonMore.isHidden = true
             self.imageMore.isHidden = true
@@ -88,7 +88,7 @@ class NCListCell: UICollectionViewCell {
             imageShareTrailing.constant = 5
             labelTitleTrailing.constant = imageShareWidth + imageShareTrailing.constant
             
-        } else if !buttonMore && imageShare {
+        } else if !buttonMore && hideImageShare {
             
             self.buttonMore.isHidden = false
             self.imageMore.isHidden = false
@@ -96,7 +96,7 @@ class NCListCell: UICollectionViewCell {
 
             labelTitleTrailing.constant = buttonMoreWidth
             
-        } else if !buttonMore && !imageShare {
+        } else if !buttonMore && !hideImageShare {
             
             self.buttonMore.isHidden = false
             self.imageMore.isHidden = false

+ 81 - 15
iOSClient/Main/NCMainCommon.swift

@@ -184,7 +184,7 @@ class NCMainCommon: NSObject {
     
     //MARK: -
     
-    func collectionViewCellForItemAt(_ indexPath: IndexPath, collectionView: UICollectionView, typeLayout: String, metadata: tableMetadata, serverUrl: String, isEditMode: Bool, selectFileID: [String], autoUploadFileName: String, autoUploadDirectory: String, hideButtonMore: Bool, source: UIViewController) -> UICollectionViewCell {
+    func collectionViewCellForItemAt(_ indexPath: IndexPath, collectionView: UICollectionView, typeLayout: String, metadata: tableMetadata, metadataFolder: tableMetadata?, serverUrl: String, isEditMode: Bool, selectFileID: [String], autoUploadFileName: String, autoUploadDirectory: String, hideButtonMore: Bool, source: UIViewController) -> UICollectionViewCell {
         
         var image: UIImage?
         var imagePreview = false
@@ -204,6 +204,17 @@ class NCMainCommon: NSObject {
             }
         }
         
+        // Share
+        let sharesLink = appDelegate.sharesLink.object(forKey: serverUrl + metadata.fileName)
+        let sharesUserAndGroup = appDelegate.sharesUserAndGroup.object(forKey: serverUrl + metadata.fileName)
+        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 typeLayout == k_layout_list {
             
             // LIST
@@ -216,33 +227,45 @@ class NCMainCommon: NSObject {
             cell.imageStatus.image = nil
             cell.imageLocal.image = nil
             cell.imageFavorite.image = nil
-            
-            // hide button more
-            if hideButtonMore {
-                cell.hide(buttonMore: true, imageShare: true)
-            }
+            cell.imageShare.image = nil
+            cell.hide(buttonMore: hideButtonMore, hideImageShare: true)
             
             if metadata.directory {
                 
-                if metadata.fileName == autoUploadFileName && serverUrl == autoUploadDirectory {
-                    cell.imageItem.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "folderAutomaticUpload"), multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
+                if metadata.e2eEncrypted {
+                    image = UIImage.init(named: "folderEncrypted")
+                } else if metadata.fileName == autoUploadFileName && serverUrl == autoUploadDirectory {
+                    image = UIImage.init(named: "folderAutomaticUpload")
+                } else if isShare {
+                    image = UIImage.init(named: "folder_shared_with_me")
+                } else if isMounted {
+                    image = UIImage.init(named: "folder_external")
+                } else if (sharesUserAndGroup != nil) {
+                    image = UIImage.init(named: "folder_shared_with_me")
+                } else if (sharesLink != nil) {
+                    image = UIImage.init(named: "folder_public")
                 } else {
-                    cell.imageItem.image = CCGraphics.changeThemingColorImage(UIImage.init(named: "folder"), multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
+                    image = UIImage.init(named: "folder")
                 }
                 
+                cell.imageItem.image = CCGraphics.changeThemingColorImage(image, multiplier: 3, color: NCBrandColor.sharedInstance.brandElement)
                 cell.labelInfo.text = CCUtility.dateDiff(metadata.date as Date)
                 
                 let lockServerUrl = CCUtility.stringAppendServerUrl(serverUrl, addFileName: metadata.fileName)!
                 let tableDirectory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", appDelegate.activeAccount, lockServerUrl))
+                
                 // Status image: passcode
                 if tableDirectory != nil && tableDirectory!.lock && CCUtility.getBlockCode() != nil {
                     cell.imageStatus.image = UIImage.init(named: "passcode")
                 }
+                
                 // Local image: offline
                 if tableDirectory != nil && tableDirectory!.offline {
                     cell.imageLocal.image = UIImage.init(named: "offlineFlag")
                 }
+                
             } else {
+                
                 cell.imageItem.image = image
                 cell.labelInfo.text = CCUtility.dateDiff(metadata.date as Date) + " " + CCUtility.transformedSize(metadata.size)
                 
@@ -252,6 +275,21 @@ class NCMainCommon: NSObject {
                     if tableLocalFile!.offline { cell.imageLocal.image = UIImage.init(named: "offlineFlag") }
                     else { cell.imageLocal.image = UIImage.init(named: "local") }
                 }
+                
+                // Share
+                if (isShare) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (isMounted) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMounted"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (sharesLink != nil) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "sharebylink"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (sharesUserAndGroup != nil) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                }
             }
             
             // image Favorite
@@ -297,33 +335,45 @@ class NCMainCommon: NSObject {
             cell.imageStatus.image = nil
             cell.imageLocal.image = nil
             cell.imageFavorite.image = nil
-            
-            // hide button more
-            if hideButtonMore {
-                cell.hide(buttonMore: true, imageShare: true)
-            }
+            cell.imageShare.image = nil
+            cell.hide(buttonMore: hideButtonMore, hideImageShare: true)
             
             if metadata.directory {
                 
-                if metadata.fileName == autoUploadFileName && serverUrl == autoUploadDirectory {
+                if metadata.e2eEncrypted {
+                    image = UIImage.init(named: "folderEncrypted")
+                } else if metadata.fileName == autoUploadFileName && serverUrl == autoUploadDirectory {
                     image = UIImage.init(named: "folderAutomaticUpload")
+                } else if isShare {
+                    image = UIImage.init(named: "folder_shared_with_me")
+                } else if isMounted {
+                    image = UIImage.init(named: "folder_external")
+                } else if (sharesUserAndGroup != nil) {
+                    image = UIImage.init(named: "folder_shared_with_me")
+                } else if (sharesLink != nil) {
+                    image = UIImage.init(named: "folder_public")
                 } else {
                     image = UIImage.init(named: "folder")
                 }
+                
                 cell.imageItem.image = CCGraphics.changeThemingColorImage(image, width: image!.size.width*6, height: image!.size.height*6, scale: 3.0, color: NCBrandColor.sharedInstance.brandElement)
                 cell.imageItem.contentMode = .center
                 
                 let lockServerUrl = CCUtility.stringAppendServerUrl(serverUrl, addFileName: metadata.fileName)!
                 let tableDirectory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", appDelegate.activeAccount, lockServerUrl))
+                
                 // Status image: passcode
                 if tableDirectory != nil && tableDirectory!.lock && CCUtility.getBlockCode() != nil {
                     cell.imageStatus.image = UIImage.init(named: "passcode")
                 }
+                
                 // Local image: offline
                 if tableDirectory != nil && tableDirectory!.offline {
                     cell.imageLocal.image = UIImage.init(named: "offlineFlag")
                 }
+                
             } else {
+                
                 cell.imageItem.image = image
                 if imagePreview == false {
                     let width = cell.imageItem.image!.size.width * 2
@@ -331,12 +381,28 @@ class NCMainCommon: NSObject {
                     cell.imageItem.image = NCUtility.sharedInstance.resizeImage(image: image!, newWidth: width)
                     cell.imageItem.contentMode = .center
                 }
+                
                 // image Local
                 let tableLocalFile = NCManageDatabase.sharedInstance.getTableLocalFile(predicate: NSPredicate(format: "fileID == %@", metadata.fileID))
                 if tableLocalFile != nil && CCUtility.fileProviderStorageExists(metadata.fileID, fileNameView: metadata.fileNameView) {
                     if tableLocalFile!.offline { cell.imageLocal.image = UIImage.init(named: "offlineFlag") }
                     else { cell.imageLocal.image = UIImage.init(named: "local") }
                 }
+                
+                // Share
+                if (isShare) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (isMounted) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "shareMounted"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (sharesLink != nil) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "sharebylink"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                } else if (sharesUserAndGroup != nil) {
+                    cell.imageShare.image =  CCGraphics.changeThemingColorImage(UIImage.init(named: "share"), multiplier: 2, color: NCBrandColor.sharedInstance.optionItem)
+                    cell.hide(buttonMore: hideButtonMore, hideImageShare: false)
+                }
             }
             
             // image Favorite

+ 1 - 1
iOSClient/Offline/NCOffline.swift

@@ -593,7 +593,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
             return collectionView.dequeueReusableCell(withReuseIdentifier: "listCell", for: indexPath) as! NCListCell
         }
         
-        let cell = NCMainCommon.sharedInstance.collectionViewCellForItemAt(indexPath, collectionView: collectionView, typeLayout: typeLayout, metadata: metadata, serverUrl: serverUrl, isEditMode: isEditMode, selectFileID: selectFileID, autoUploadFileName: autoUploadFileName, autoUploadDirectory: autoUploadDirectory, hideButtonMore: false, source: self)
+        let cell = NCMainCommon.sharedInstance.collectionViewCellForItemAt(indexPath, collectionView: collectionView, typeLayout: typeLayout, metadata: metadata, metadataFolder: nil, serverUrl: serverUrl, isEditMode: isEditMode, selectFileID: selectFileID, autoUploadFileName: autoUploadFileName, autoUploadDirectory: autoUploadDirectory, hideButtonMore: false, source: self)
         
         return cell
     }

+ 4 - 1
iOSClient/Select/NCSelect.swift

@@ -57,6 +57,7 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
     private var serverUrlPush = ""
     private var directoryIDPush = ""
     private var metadataPush: tableMetadata?
+    private var metadataFolder: tableMetadata?
     
     private var isEditMode = false
     private var networkInProgress = false
@@ -479,6 +480,8 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
         
         ocNetworking?.readFolder(serverUrl, depth: "1", account: appDelegate.activeAccount, success: { (metadatas, metadataFolder, directoryID) in
             
+            self.metadataFolder = metadataFolder
+            
             // Update directory etag
             NCManageDatabase.sharedInstance.setDirectory(serverUrl: self.serverUrl, serverUrlTo: nil, etag: metadataFolder?.etag, fileID: metadataFolder?.fileID, encrypted: metadataFolder!.e2eEncrypted)
             NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "directoryID == %@ AND (status == %d OR status == %d)", directoryID!, k_metadataStatusNormal, k_metadataStatusHide), clearDateReadDirectoryID: directoryID)
@@ -650,7 +653,7 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
             return collectionView.dequeueReusableCell(withReuseIdentifier: "listCell", for: indexPath) as! NCListCell
         }
         
-        let cell = NCMainCommon.sharedInstance.collectionViewCellForItemAt(indexPath, collectionView: collectionView, typeLayout: typeLayout, metadata: metadata, serverUrl: serverUrl, isEditMode: isEditMode, selectFileID: selectFileID, autoUploadFileName: autoUploadFileName, autoUploadDirectory: autoUploadDirectory ,hideButtonMore: true, source: self)
+        let cell = NCMainCommon.sharedInstance.collectionViewCellForItemAt(indexPath, collectionView: collectionView, typeLayout: typeLayout, metadata: metadata, metadataFolder: metadataFolder, serverUrl: serverUrl, isEditMode: isEditMode, selectFileID: selectFileID, autoUploadFileName: autoUploadFileName, autoUploadDirectory: autoUploadDirectory ,hideButtonMore: true, source: self)
         
         return cell
     }