marinofaggiana 4 lat temu
rodzic
commit
e48ea17873

+ 9 - 10
iOSClient/AutoUpload/NCAutoUpload.m

@@ -486,18 +486,17 @@
 - (void)createAutoUploadFolderWithSubFolder:(BOOL)useSubFolder assets:(PHFetchResult *)assets selector:(NSString *)selector
 {
     NSString *serverUrl = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:appDelegate.activeUrl];
-    NSString *fileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];    
+    NSString *filename = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
     NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:appDelegate.activeUrl];
-  
-    [[NCNetworking shared] createFolderWithFileName:fileName serverUrl:serverUrl account:appDelegate.activeAccount url:appDelegate.activeAccount overwrite:true completion:^(NSInteger errorCode, NSString *errorDescription) {
-        if (errorCode == 0 && useSubFolder) {
-            for (NSString *dateSubFolder in [CCUtility createNameSubFolder:assets]) {
-                NSString *fileName = dateSubFolder.lastPathComponent;
-                NSString *serverUrl = [NSString stringWithFormat:@"%@/%@", autoUploadPath, dateSubFolder].stringByDeletingLastPathComponent;
-                [[NCNetworking shared] createFolderWithFileName:fileName serverUrl:serverUrl account:appDelegate.activeAccount url:appDelegate.activeAccount overwrite:true completion:^(NSInteger errorCode, NSString *errorDescription) { }];
-            }
+    
+    [[NCOperationQueue shared] createFolderWithFilename:filename serverUrl:serverUrl account:appDelegate.activeAccount url:appDelegate.activeUrl overwrite:true];
+    if (useSubFolder) {
+        for (NSString *dateSubFolder in [CCUtility createNameSubFolder:assets]) {
+            NSString *filename = dateSubFolder.lastPathComponent;
+            NSString *serverUrl = [NSString stringWithFormat:@"%@/%@", autoUploadPath, dateSubFolder].stringByDeletingLastPathComponent;
+            [[NCOperationQueue shared] createFolderWithFilename:filename serverUrl:serverUrl account:appDelegate.activeAccount url:appDelegate.activeUrl overwrite:true];
         }
-    }];
+    }
 }
 
 #pragma --------------------------------------------------------------------------------------------

+ 42 - 0
iOSClient/Networking/NCOperationQueue.swift

@@ -34,13 +34,16 @@ import NCCommunication
     
     private var downloadQueue = Queuer(name: "downloadQueue", maxConcurrentOperationCount: 5, qualityOfService: .default)
     private let readFolderSyncQueue = Queuer(name: "readFolderSyncQueue", maxConcurrentOperationCount: 1, qualityOfService: .default)
+    private let createFolderQueue = Queuer(name: "createFolderQueue", maxConcurrentOperationCount: 1, qualityOfService: .default)
     private let downloadThumbnailQueue = Queuer(name: "downloadThumbnailQueue", maxConcurrentOperationCount: 10, qualityOfService: .default)
     private let readFileForMediaQueue = Queuer(name: "readFileForMediaQueue", maxConcurrentOperationCount: 10, qualityOfService: .default)
+
     private var timerReadFileForMediaQueue: Timer?
 
     @objc func cancelAllQueue() {
         downloadCancelAll()
         readFolderSyncCancelAll()
+        createFolderCancelAll()
         downloadThumbnailCancelAll()
         readFileForMediaCancelAll()
     }
@@ -58,6 +61,7 @@ import NCCommunication
     }
     
     // Read Folder Synchronize
+    
     @objc func readFolderSync(serverUrl: String, selector: String ,account: String) {
         readFolderSyncQueue.addOperation(NCOperationReadFolderSync.init(serverUrl: serverUrl, selector: selector, account: account))
     }
@@ -65,6 +69,15 @@ import NCCommunication
         readFolderSyncQueue.cancelAll()
     }
     
+    // Create Folder
+    
+    @objc func createFolder(filename: String, serverUrl: String, account: String, url: String, overwrite: Bool) {
+        createFolderQueue.addOperation(NCOperationCreaterFolder.init(filename: filename, serverUrl: serverUrl, account: account, url: url, overwrite: overwrite))
+    }
+    @objc func createFolderCancelAll() {
+        createFolderQueue.cancelAll()
+    }
+    
     // Download Thumbnail
     
     @objc func downloadThumbnail(metadata: tableMetadata, activeUrl: String, view: Any, indexPath: IndexPath) {
@@ -182,6 +195,35 @@ class NCOperationReadFolderSync: ConcurrentOperation {
 
 //MARK: -
 
+class NCOperationCreaterFolder: ConcurrentOperation {
+   
+    private var filename: String
+    private var serverUrl: String
+    private var account: String
+    private var url: String
+    private var overwrite: Bool
+
+    init(filename: String, serverUrl: String, account: String, url: String, overwrite: Bool) {
+        self.filename = filename
+        self.serverUrl = serverUrl
+        self.account = account
+        self.url = url
+        self.overwrite = overwrite
+    }
+    
+    override func start() {
+        if isCancelled {
+            self.finish()
+        } else {
+            NCNetworking.shared.createFolder(fileName: filename, serverUrl: serverUrl, account: account, url: url, overwrite: overwrite) { (errorCode, errorDescription) in
+                self.finish()
+            }
+        }
+    }
+}
+
+//MARK: -
+
 class NCOperationDownloadThumbnail: ConcurrentOperation {
    
     var metadata: tableMetadata