Browse Source

new automaticCreateFolder

Marino Faggiana 8 years ago
parent
commit
a8c8f6e8d4

+ 2 - 2
iOSClient/Main/CCMain.m

@@ -1567,7 +1567,7 @@
     // Create if request the folder for Photos
     if ((useSubFolder || [serverUrl isEqualToString:folderPhotos]) && [_serverUrl isEqualToString:serverUrl] == NO){
         
-        if(![app.activePhotosCameraUpload createFolder:folderPhotos]) {
+        if(![app.activePhotosCameraUpload automaticCreateFolder:folderPhotos]) {
             
             [_hud hideHud];
             
@@ -1582,7 +1582,7 @@
         
         for (NSString *dateSubFolder in [CCUtility createNameSubFolder:assets]) {
                 
-            if(![app.activePhotosCameraUpload createFolder:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
+            if(![app.activePhotosCameraUpload automaticCreateFolder:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
                 
                 [_hud hideHud];
                 

+ 0 - 1
iOSClient/Networking/OCNetworking.h

@@ -43,7 +43,6 @@
 @property (nonatomic, assign) BOOL isExecuting;
 @property (nonatomic, assign) BOOL isFinished;
 
-- (NSError *)createFolderSync:(NSString *)folderPathName;
 - (NSError *)readFileSync:(NSString *)filePathName;
 - (NSError *)checkServerSync:(NSString *)serverUrl;
 

+ 0 - 36
iOSClient/Networking/OCNetworking.m

@@ -488,42 +488,6 @@
     }];
 }
 
-- (NSError *)createFolderSync:(NSString *)folderPathName
-{
-    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
-    __block NSError *returnError;
-    
-    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
-    
-    [communication setCredentialsWithUser:_activeUser andPassword:_activePassword];
-    [communication setUserAgent:[CCUtility getUserAgent]];
-    
-    [communication createFolder:folderPathName onCommunication:communication withForbiddenCharactersSupported:_hasServerForbiddenCharactersSupport successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
-        
-        dispatch_semaphore_signal(semaphore);
-        
-    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
-        
-        // Request trusted certificated
-        if ([error code] == NSURLErrorServerCertificateUntrusted)
-            [[CCCertificate sharedManager] presentViewControllerCertificateWithTitle:[error localizedDescription] viewController:(UIViewController *)self.delegate delegate:self];
-        
-        returnError = error;
-        
-        dispatch_semaphore_signal(semaphore);
-        
-    } errorBeforeRequest:^(NSError *error) {
-    
-        returnError = error;
-        dispatch_semaphore_signal(semaphore);
-    }];
-    
-    while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
-        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
-    
-    return returnError;
-}
-
 #pragma --------------------------------------------------------------------------------------------
 #pragma mark =====  Delete =====
 #pragma --------------------------------------------------------------------------------------------

+ 1 - 1
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.h

@@ -51,6 +51,6 @@
 - (void)downloadFileFailure:(NSInteger)errorCode;
 
 - (void)reloadDatasourceForced;
-- (BOOL)createFolder:(NSString *)folderPathName;
+- (BOOL)automaticCreateFolder:(NSString *)folderPathName;
 
 @end

+ 36 - 16
iOSClient/PhotosCameraUpload/CCPhotosCameraUpload.m

@@ -1109,7 +1109,7 @@
     }
     
     // verify/create folder Camera Upload, if error exit
-    if(![self createFolder:folderPhotos]) {
+    if(![self automaticCreateFolder:folderPhotos]) {
         
         // Full Upload ?
         if (assetsFull)
@@ -1126,7 +1126,7 @@
         
         for (NSString *dateSubFolder in [CCUtility createNameSubFolder:newItemsPHAssetToUpload]) {
             
-            if (![self createFolder:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
+            if (![self automaticCreateFolder:[NSString stringWithFormat:@"%@/%@", folderPhotos, dateSubFolder]]) {
                 
                 [self endLoadingAssets];
                 
@@ -1204,25 +1204,45 @@
     [app updateApplicationIconBadgeNumber];
 }
 
-- (BOOL)createFolder:(NSString *)folderPathName
+- (BOOL)automaticCreateFolder:(NSString *)folderPathName
 {
-    OCnetworking *ocNet;
-    NSError *error;
+    OCCommunication *communication = [CCNetworking sharedNetworking].sharedOCCommunication;
+    __block BOOL noError = YES;
         
-    ocNet = [[OCnetworking alloc] initWithDelegate:self metadataNet:nil withUser:app.activeUser withPassword:app.activePassword withUrl:app.activeUrl activityIndicator:NO isCryptoCloudMode:app.isCryptoCloudMode];
-    
-    error = [ocNet readFileSync:folderPathName];
-    if(!error)
-        return YES;
+    dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
         
-    error = [ocNet createFolderSync:folderPathName];
-    if (!error) {
+    [communication setCredentialsWithUser:app.activeUser andPassword:app.activePassword];
+    [communication setUserAgent:[CCUtility getUserAgent]];
         
-        [CCCoreData clearDateReadDirectory:[CCUtility deletingLastPathComponentFromServerUrl:folderPathName] activeAccount:app.activeAccount];
-        return YES;
-    }
+    [communication readFile:folderPathName onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer) {
+            
+        dispatch_semaphore_signal(semaphore);
+            
+    } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+        
+        [communication createFolder:folderPathName onCommunication:communication withForbiddenCharactersSupported:app.hasServerForbiddenCharactersSupport successRequest:^(NSHTTPURLResponse *response, NSString *redirectedServer) {
+            
+            [CCCoreData clearDateReadDirectory:[CCUtility deletingLastPathComponentFromServerUrl:folderPathName] activeAccount:app.activeAccount];
+            
+            dispatch_semaphore_signal(semaphore);
+            
+        } failureRequest:^(NSHTTPURLResponse *response, NSError *error, NSString *redirectedServer) {
+            
+            noError = NO;
+            
+            dispatch_semaphore_signal(semaphore);
+            
+        } errorBeforeRequest:^(NSError *error) {
+            
+            noError = NO;
+            dispatch_semaphore_signal(semaphore);
+        }];
+    }];
+        
+    while (dispatch_semaphore_wait(semaphore, DISPATCH_TIME_NOW))
+        [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:k_timeout_webdav]];
     
-    return NO;
+    return noError;
 }
 
 -(void)endLoadingAssets