marinofaggiana 4 years ago
parent
commit
20720e3cde

+ 3 - 2
iOSClient/Favorites/NCFavorite.swift

@@ -139,9 +139,10 @@ class NCFavorite: UIViewController, UIGestureRecognizerDelegate, NCListCellDeleg
         if self.view?.window == nil { return }
         
         if let userInfo = notification.userInfo as NSDictionary? {
-            if let errorCode = userInfo["errorCode"] as? Int, let errorDescription = userInfo["errorDescription"] as? String {
+            if let metadata = userInfo["metadata"] as? tableMetadata, let errorCode = userInfo["errorCode"] as? Int, let errorDescription = userInfo["errorDescription"] as? String {
                 if errorCode == 0 {
-                    self.reloadDataSource()
+                    self.dataSource?.deleteMetadata(ocId: metadata.ocId)
+                    collectionView.reloadData()
                 } else {
                     NCContentPresenter.shared.messageNotification("_error_", description: errorDescription, delay: TimeInterval(k_dismissAfterSecond), type: NCContentPresenter.messageType.error, errorCode: errorCode)
                 }

+ 36 - 1
iOSClient/Main/NCDataSource.swift

@@ -44,6 +44,8 @@ import Foundation
         createMetadatas(metadatasSource: metadatasSource)
     }
     
+    // MARK: -
+    
     private func createMetadatas(metadatasSource: [tableMetadata]) {
         
         var metadatasFavorite: [tableMetadata] = []
@@ -115,6 +117,30 @@ import Foundation
             metadatas.insert(contentsOf: metadatasFavorite, at: numDirectory)
         }
     }
+        
+    @objc func deleteMetadata(ocId: String) {
+        if let index = self.getIndexMetadata(ocId: ocId) {
+            metadatas.remove(at: index)
+        }
+    }
+    
+    // MARK: -
+    
+    private func getIndexMetadata(ocId: String) -> Int? {
+        
+        var index: Int = 0
+
+        for metadataCount in metadatas {
+            if metadataCount.ocId == ocId {
+                return index
+            }
+            index += 1
+        }
+        return nil
+        
+    }
+    
+    // MARK: -
     
     @objc func cellForItemAt(indexPath: IndexPath) -> tableMetadata? {
         
@@ -150,10 +176,13 @@ import Foundation
     }
     
     @objc func getIndexPathAt(metadata: tableMetadata) -> IndexPath? {
+        
         var row: Int = 0
+        let section: Int = 0
+        
         for metadataCount in metadatas {
             if metadataCount.ocId == metadata.ocId {
-                return IndexPath(row: row, section: 0)
+                return IndexPath(row: row, section: section)
             }
             row += 1
         }
@@ -161,6 +190,7 @@ import Foundation
     }
     
     @objc func reloadItemAt(indexPath: IndexPath, with createMetadatas: Bool) -> [tableMetadata] {
+        
         let row = indexPath.row
         
         if row > self.metadatas.count - 1 {
@@ -178,7 +208,9 @@ import Foundation
     }
     
     @objc func deleteItemAt(indexPath: IndexPath) -> [tableMetadata] {
+        
         let row = indexPath.row
+        
         if row > self.metadatas.count - 1 {
             metadatas.remove(at: row)
         }
@@ -186,7 +218,10 @@ import Foundation
         return metadatas
     }
     
+    
+    
     @objc func addMetadata(_ metadata: tableMetadata) -> [tableMetadata] {
+        
         self.metadatas.append(metadata)
         createMetadatas(metadatasSource: metadatas)
         return metadatas

+ 0 - 2
iOSClient/Networking/NCNetworking.swift

@@ -802,8 +802,6 @@ import Queuer
                 if metadata.directory {
                     NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName), account: metadata.account)
                 }
-                
-                NotificationCenter.default.postOnMainThread(name: k_notificationCenter_reloadDataSource, userInfo: ["serverUrl":metadata.serverUrl])
             }
             
             self.NotificationPost(name: k_notificationCenter_deleteFile, userInfo: ["metadata": metadata, "errorCode": errorCode], errorDescription: errorDescription, completion: completion)