Marino Faggiana 1 year ago
parent
commit
9ff0aafe65

+ 0 - 1
Share/NCShareExtension.swift

@@ -353,7 +353,6 @@ extension NCShareExtension {
             if error != .success {
                 let path = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId)!
                 NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-                NCManageDatabase.shared.deleteChunks(account: metadata.account, ocId: metadata.ocId)
                 NCUtilityFileSystem.shared.deleteFile(filePath: path)
                 self.uploadErrors.append(metadata)
             }

+ 7 - 3
iOSClient/Data/NCManageDatabase+Chunk.swift

@@ -105,13 +105,17 @@ extension NCManageDatabase {
         }
     }
 
-    func deleteChunks(account: String, ocId: String) {
+    func deleteChunks(account: String, ocId: String, directory: String) {
 
         do {
             let realm = try Realm()
             try realm.write {
-                let result = realm.objects(tableChunk.self).filter(NSPredicate(format: "account == %@ AND ocId == %@", account, ocId))
-                realm.delete(result)
+                let results = realm.objects(tableChunk.self).filter(NSPredicate(format: "account == %@ AND ocId == %@", account, ocId))
+                for result in results {
+                    let filePath = directory + "/\(result.fileName)"
+                    NCUtilityFileSystem.shared.deleteFile(filePath: filePath)
+                }
+                realm.delete(results)
             }
         } catch let error {
             NextcloudKit.shared.nkCommonInstance.writeLog("Could not write to database: \(error)")

+ 6 - 6
iOSClient/Networking/NCNetworking.swift

@@ -546,29 +546,29 @@ class NCNetworking: NSObject, NKCommonDelegate {
             self.uploadRequest.removeValue(forKey: fileNameLocalPath)
 
             if error == .success {
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
             }
 
             switch error.errorCode {
             case NKError.chunkResourceNotFound:
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
             case NKError.chunkNoEnoughMemory:
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
                 NCContentPresenter.shared.messageNotification("_chunk_enough_memory_", error: error, delay: NCGlobal.shared.dismissAfterSecond, type: .error)
             case NKError.chunkCreateFolder:
                 NCContentPresenter.shared.messageNotification("_chunk_create_folder_", error: error, delay: NCGlobal.shared.dismissAfterSecond, type: .error)
             case NKError.chunkFilesNull:
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
                 NCContentPresenter.shared.messageNotification("_chunk_files_null_", error: error, delay: NCGlobal.shared.dismissAfterSecond, type: .error)
             case NKError.chunkFileNull: // (cancel)
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
             case NKError.chunkFileUpload:
                 if let afError, !afError.isExplicitlyCancelledError {
                     NCContentPresenter.shared.messageNotification("_error_", error: error, delay: NCGlobal.shared.dismissAfterSecond, type: .error)
                 }
                 break
             case NKError.chunkMoveFile:
-                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId)
+                NCManageDatabase.shared.deleteChunks(account: account, ocId: metadata.ocId, directory: directory)
                 NCContentPresenter.shared.messageNotification("_chunk_move_", error: error, delay: NCGlobal.shared.dismissAfterSecond, type: .error)
             default: break
             }

+ 0 - 1
iOSClient/Networking/NCNetworkingProcessUpload.swift

@@ -263,7 +263,6 @@ class NCNetworkingProcessUpload: NSObject {
         for metadata in metadatasUploadShareExtension {
             let path = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId)!
             NCManageDatabase.shared.deleteMetadata(predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-            NCManageDatabase.shared.deleteChunks(account: metadata.account, ocId: metadata.ocId)
             NCUtilityFileSystem.shared.deleteFile(filePath: path)
         }