marinofaggiana 4 жил өмнө
parent
commit
6b0bfa1363

+ 1 - 1
Nextcloud.xcodeproj/project.pbxproj

@@ -2811,7 +2811,7 @@
 			repositoryURL = "https://github.com/nextcloud/ios-communication-library/";
 			requirement = {
 				kind = revision;
-				revision = edf64f2145cf2205adfd502194643e3de2a00ea7;
+				revision = fa514ec021fb459cdd5695b1042e2f366eaeecd6;
 			};
 		};
 		F7C4D88B2534887E00C142DA /* XCRemoteSwiftPackageReference "Parchment" */ = {

+ 1 - 1
Nextcloud.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

@@ -24,7 +24,7 @@
         "repositoryURL": "https://github.com/nextcloud/ios-communication-library/",
         "state": {
           "branch": null,
-          "revision": "edf64f2145cf2205adfd502194643e3de2a00ea7",
+          "revision": "fa514ec021fb459cdd5695b1042e2f366eaeecd6",
           "version": null
         }
       },

+ 3 - 2
iOSClient/Data/NCDatabase.swift

@@ -173,10 +173,11 @@ class tableChunk: Object {
     
     @objc dynamic var account = ""
     @objc dynamic var chunkFolder = ""
-    @objc dynamic var index = ""
     @objc dynamic var fileName = ""
+    @objc dynamic var index = ""
     @objc dynamic var ocId = ""
-    
+    @objc dynamic var total: Int = 0
+
     override static func primaryKey() -> String {
         return "index"
     }

+ 7 - 4
iOSClient/Data/NCManageDatabase.swift

@@ -1001,17 +1001,19 @@ class NCManageDatabase: NSObject {
         return NSUUID().uuidString
     }
     
-    func getChunks(account: String, ocId: String) -> [String] {
+    func getChunks(account: String, ocId: String) -> (fileNames: [String], total: Int) {
         
         let realm = try! Realm()
         var filesNames: [String] = []
+        var total: Int = 0
 
         let results = realm.objects(tableChunk.self).filter("account == %@ AND ocId == %@", account, ocId).sorted(byKeyPath: "fileName", ascending: true)
         for result in results {
             filesNames.append(result.fileName)
+            total = result.total
         }
         
-        return filesNames
+        return (filesNames, total)
     }
     
     func addChunks(account: String, ocId: String, chunkFolder: String, fileNames: [String]) {
@@ -1027,10 +1029,11 @@ class NCManageDatabase: NSObject {
                     
                     object.account = account
                     object.chunkFolder = chunkFolder
-                    object.index = ocId + fileName
                     object.fileName = fileName
+                    object.index = ocId + fileName
                     object.ocId = ocId
-                    
+                    object.total = fileNames.count
+
                     realm.add(object, update: .all)
                 }
             }

+ 1 - 1
iOSClient/NCGlobal.swift

@@ -59,7 +59,7 @@ class NCGlobal: NSObject {
 
     // Database Realm
     let databaseDefault                             = "nextcloud.realm"
-    let databaseSchemaVersion: UInt64               = 171
+    let databaseSchemaVersion: UInt64               = 174
     
     // Intro selector
     @objc let introLogin: Int                       = 0

+ 10 - 8
iOSClient/Networking/NCNetworkingChunkedUpload.swift

@@ -37,14 +37,16 @@ extension NCNetworking {
         
         var uploadErrorCode: Int = 0
         var uploadErrorDescription: String = ""
-        var counterFileNameInUpload: Int = 0
-        var filesNames = NCManageDatabase.shared.getChunks(account: metadata.account, ocId: metadata.ocId)
+        let out = NCManageDatabase.shared.getChunks(account: metadata.account, ocId: metadata.ocId)
+        var filesNames = out.fileNames
+        var total = out.total
         
         if filesNames.count == 0 {
                         
             if let chunkedFilesNames = NCCommunicationCommon.shared.chunkedFile(path: directoryProviderStorageOcId, fileName: metadata.fileName, outPath: directoryProviderStorageOcId, sizeInMB: chunkSize) {
                 
                 filesNames = chunkedFilesNames
+                total = chunkedFilesNames.count
                 NCManageDatabase.shared.addChunks(account: metadata.account, ocId: metadata.ocId, chunkFolder: chunkFolder, fileNames: filesNames)
                 
             } else {
@@ -74,6 +76,8 @@ extension NCNetworking {
                         
                     for fileName in filesNames {
                                                 
+                        let counterString = (fileName as NSString).pathExtension
+                        let counter = Int(counterString) ?? 0
                         let serverUrlFileName = chunkFolderPath + "/" + fileName
                         let fileNameChunkLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: fileName)!
                         
@@ -83,13 +87,11 @@ extension NCNetworking {
                                 
                             self.uploadRequest[fileNameLocalPath] = request
                             
-                            counterFileNameInUpload += 1
+                            //let progress: Float = Float(counterFileNameInUpload) / Float(filesNames.count)
+                            //let totalBytes: Int64 = (metadata.size / Int64(filesNames.count)) * Int64(counterFileNameInUpload)
+                            //let totalBytesExpected: Int64 = metadata.size
 
-                            let progress: Float = Float(counterFileNameInUpload) / Float(filesNames.count)
-                            let totalBytes: Int64 = (metadata.size / Int64(filesNames.count)) * Int64(counterFileNameInUpload)
-                            let totalBytesExpected: Int64 = metadata.size
-
-                            NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterProgressTask, userInfo: ["account":metadata.account, "ocId":metadata.ocId, "serverUrl":metadata.serverUrl, "status":NSNumber(value: NCGlobal.shared.metadataStatusInUpload), "progress":NSNumber(value: progress), "totalBytes":NSNumber(value: totalBytes), "totalBytesExpected":NSNumber(value: totalBytesExpected)])
+                            //NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterProgressTask, userInfo: ["account":metadata.account, "ocId":metadata.ocId, "serverUrl":metadata.serverUrl, "status":NSNumber(value: NCGlobal.shared.metadataStatusInUpload), "progress":NSNumber(value: progress), "totalBytes":NSNumber(value: totalBytes), "totalBytesExpected":NSNumber(value: totalBytesExpected)])
                             
                         }, taskHandler: { (task) in