Marino Faggiana 7 years ago
parent
commit
ae73341b0c
2 changed files with 41 additions and 23 deletions
  1. 37 23
      iOSClient/Networking/OCNetworking.m
  2. 4 0
      iOSClient/Synchronize/CCSynchronize.m

+ 37 - 23
iOSClient/Networking/OCNetworking.m

@@ -289,8 +289,6 @@
     [communication readFolder:_metadataNet.serverUrl withUserSessionToken:nil onCommunication:communication successRequest:^(NSHTTPURLResponse *response, NSArray *items, NSString *redirectedServer, NSString *token) {
         
         NSMutableArray *metadatas = [NSMutableArray new];
-        tableMetadata *metadataFolder;
-        NSString *directoryIDFolder;
         
         // Check items > 0
         if ([items count] == 0) {
@@ -310,34 +308,50 @@
             return;
         }
 
-        // directory [0]
-        OCFileDto *itemDtoFolder = [items objectAtIndex:0];
-        //NSDate *date = [NSDate dateWithTimeIntervalSince1970:itemDtoDirectory.date];
+        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
+            
+            // directory [0]
+            OCFileDto *itemDtoFolder = [items objectAtIndex:0];
+            //NSDate *date = [NSDate dateWithTimeIntervalSince1970:itemDtoDirectory.date];
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:_metadataNet.serverUrl permissions:itemDtoFolder.permissions];
-        _metadataNet.directoryID = directoryID;
+            NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:_metadataNet.serverUrl permissions:itemDtoFolder.permissions];
+            _metadataNet.directoryID = directoryID;
 
-        NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
-        NSString *autoUploadDirectory = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:_activeUrl];
+            NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
+            NSString *autoUploadDirectory = [[NCManageDatabase sharedInstance] getAccountAutoUploadDirectory:_activeUrl];
         
-        NSString *directoryUser = [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl];
+            NSString *directoryUser = [CCUtility getDirectoryActiveUser:_activeUser activeUrl:_activeUrl];
         
-        // Metadata . (Folder)
-        if ([_metadataNet.serverUrl isEqualToString:[CCUtility getHomeServerUrlActiveUrl:_activeUrl]]) {
+            tableMetadata *metadataFolder;
+            NSString *directoryIDFolder;
+            NSString *serverUrlFolder;
+            NSString *serverUrl;
             
-            // root folder
-            directoryIDFolder = @"00000000-0000-0000-0000-000000000000";
-            itemDtoFolder.fileName = @".";
+            // Metadata . (self Folder)
+            if ([_metadataNet.serverUrl isEqualToString:[CCUtility getHomeServerUrlActiveUrl:_activeUrl]]) {
             
-        } else {
+                // root folder
+                serverUrlFolder = @"..";
+                directoryIDFolder = @"00000000-0000-0000-0000-000000000000";
             
-            directoryIDFolder = [[NCManageDatabase sharedInstance] getDirectoryID:[CCUtility deletingLastPathComponentFromServerUrl:_metadataNet.serverUrl]];
-            itemDtoFolder.fileName = [_metadataNet.serverUrl lastPathComponent];
-        }
-        metadataFolder = [CCUtility trasformedOCFileToCCMetadata:itemDtoFolder fileNamePrint:itemDtoFolder.fileName serverUrl:_metadataNet.serverUrl directoryID:directoryIDFolder autoUploadFileName:autoUploadFileName autoUploadDirectory:autoUploadDirectory activeAccount:_metadataNet.account directoryUser:directoryUser];
+                metadataFolder = [CCUtility trasformedOCFileToCCMetadata:itemDtoFolder fileNamePrint:@"" serverUrl:serverUrlFolder directoryID:directoryIDFolder autoUploadFileName:autoUploadFileName autoUploadDirectory:autoUploadDirectory activeAccount:_metadataNet.account directoryUser:directoryUser];
+                
+                metadataFolder.fileName = @".";
+                metadataFolder.fileNameData = @".";
+                metadataFolder.fileNamePrint = @".";
+                
+            } else {
+            
+                serverUrlFolder = [CCUtility deletingLastPathComponentFromServerUrl:_metadataNet.serverUrl];
+                directoryIDFolder = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlFolder];
+                
+                metadataFolder = [CCUtility trasformedOCFileToCCMetadata:itemDtoFolder fileNamePrint:@"" serverUrl:serverUrlFolder directoryID:directoryIDFolder autoUploadFileName:autoUploadFileName autoUploadDirectory:autoUploadDirectory activeAccount:_metadataNet.account directoryUser:directoryUser];
+                
+                metadataFolder.fileName = [_metadataNet.serverUrl lastPathComponent];
+                metadataFolder.fileNameData = [_metadataNet.serverUrl lastPathComponent];
+                metadataFolder.fileNamePrint = [_metadataNet.serverUrl lastPathComponent];
+            }
         
-        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
-
             NSArray *itemsSortedArray = [items sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
                 
                 NSString *first = [(OCFileDto*)a fileName];
@@ -358,7 +372,7 @@
                 if (itemDto.isDirectory) {
                         
                     fileName = [fileName substringToIndex:[fileName length] - 1];
-                    NSString *serverUrl = [CCUtility stringAppendServerUrl:_metadataNet.serverUrl addFileName:fileName];
+                    serverUrl = [CCUtility stringAppendServerUrl:_metadataNet.serverUrl addFileName:fileName];
                         
                     (void)[[NCManageDatabase sharedInstance] addDirectoryWithServerUrl:serverUrl permissions:itemDtoFolder.permissions];
                 }

+ 4 - 0
iOSClient/Synchronize/CCSynchronize.m

@@ -90,6 +90,10 @@
 // MULTI THREAD
 - (void)readFolderSuccess:(CCMetadataNet *)metadataNet metadataFolder:(tableMetadata *)metadataFolder metadatas:(NSArray *)metadatas
 {
+    // Add/update self Folder
+    NSString *serverUrlFolded = [[NCManageDatabase sharedInstance] getServerUrl:metadataFolder.directoryID];
+    (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder activeUrl:app.activeUrl serverUrl:serverUrlFolded];
+    
     dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
         
         tableAccount *recordAccount = [[NCManageDatabase sharedInstance] getAccountActive];