Ver Fonte

fix freeze manual upload on Photos folder

Marino Faggiana há 7 anos atrás
pai
commit
733d7eeeb8
2 ficheiros alterados com 17 adições e 14 exclusões
  1. 4 0
      iOSClient/CCGlobal.h
  2. 13 14
      iOSClient/Main/CCMain.m

+ 4 - 0
iOSClient/CCGlobal.h

@@ -34,6 +34,10 @@ extern NSString *const dav;
 
 //AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
 //#define app ((AppDelegate *)[[UIApplication sharedApplication] delegate])
+//dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+//dispatch_async(dispatch_get_main_queue(), ^{
+//dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.3 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void) {
+
 #define CALL_ORIGIN NSLog(@"Origin: [%@]", [[[[NSThread callStackSymbols] objectAtIndex:1] componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"[]"]] objectAtIndex:1])
 
 #endif

+ 13 - 14
iOSClient/Main/CCMain.m

@@ -1558,27 +1558,26 @@
 //
 - (void)uploadFileAsset:(NSMutableArray *)assets serverUrl:(NSString *)serverUrl useSubFolder:(BOOL)useSubFolder session:(NSString *)session
 {
-    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 0.01 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void){
-        [self performSelectorOnMainThread:@selector(uploadFileAssetBridge:) withObject:@[assets, serverUrl, [NSNumber numberWithBool:useSubFolder], session] waitUntilDone:NO];
+    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+ 
+        NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:appDelegate.activeUrl];
+
+        // if request create the folder for Photos &  the subfolders
+        if ([autoUploadPath isEqualToString:serverUrl])
+            if (![[NCAutoUpload sharedInstance] createFolderSubFolderAutoUploadFolderPhotos:autoUploadPath useSubFolder:useSubFolder assets:(PHFetchResult *)assets selector:selectorUploadFile])
+                return;
+    
+        dispatch_async(dispatch_get_main_queue(), ^{
+            [self uploadFileAsset:assets serverUrl:serverUrl autoUploadPath:autoUploadPath useSubFolder:useSubFolder session:session];
+        });
     });
 }
 
-- (void)uploadFileAssetBridge:(NSArray *)arguments
+- (void)uploadFileAsset:(NSArray *)assets serverUrl:(NSString *)serverUrl autoUploadPath:(NSString *)autoUploadPath useSubFolder:(BOOL)useSubFolder session:(NSString *)session
 {
-    NSArray *assets = [arguments objectAtIndex:0];
-    __block NSString *serverUrl = [arguments objectAtIndex:1];
-    BOOL useSubFolder = [[arguments objectAtIndex:2] boolValue];
-    NSString *session = [arguments objectAtIndex:3];
-
-    NSString *autoUploadPath = [[NCManageDatabase sharedInstance] getAccountAutoUploadPath:appDelegate.activeUrl];
     NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
     if (!directoryID) return;
     
-    // if request create the folder for Photos &  the subfolders
-    if ([autoUploadPath isEqualToString:serverUrl])
-        if (![[NCAutoUpload sharedInstance] createFolderSubFolderAutoUploadFolderPhotos:autoUploadPath useSubFolder:useSubFolder assets:(PHFetchResult *)assets selector:selectorUploadFile])
-            return;
-    
     for (PHAsset *asset in assets) {
         
         NSString *fileName = [CCUtility createFileName:[asset valueForKey:@"filename"] fileDate:asset.creationDate fileType:asset.mediaType keyFileName:k_keyFileNameMask keyFileNameType:k_keyFileNameType];