瀏覽代碼

Improved synchronize algorithm

Marino Faggiana 6 年之前
父節點
當前提交
915f4175fa
共有 3 個文件被更改,包括 16 次插入43 次删除
  1. 0 2
      iOSClient/CCGlobal.h
  2. 1 1
      iOSClient/Main/NCMainCommon.swift
  3. 15 40
      iOSClient/Synchronize/CCSynchronize.m

+ 0 - 2
iOSClient/CCGlobal.h

@@ -197,8 +197,6 @@
 #define selectorReadFile                                @"readFile"
 #define selectorReadFileWithDownload                    @"readFileWithDownload"
 #define selectorReadFileReloadFolder                    @"readFileReloadFolder"
-#define selectorReadFileFolder                          @"readFileFolder"
-#define selectorReadFileFolderWithDownload              @"readFileFolderWithDownload"
 #define selectorReadFolder                              @"readFolder"
 #define selectorReadFolderWithDownload                  @"readFolderWithDownload"
 #define selectorReadShare                               @"readShare"

+ 1 - 1
iOSClient/Main/NCMainCommon.swift

@@ -873,7 +873,7 @@ class NCFunctionMain: NSObject {
                 guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID) else {
                     continue
                 }
-                CCSynchronize.shared()?.readFile(metadata.fileID, fileName: metadata.fileName, serverUrl: serverUrl, selector: selectorReadFileFolderWithDownload)
+                CCSynchronize.shared()?.readFile(metadata.fileID, fileName: metadata.fileName, serverUrl: serverUrl, selector: selectorReadFileWithDownload)
             }
         }
     

+ 15 - 40
iOSClient/Synchronize/CCSynchronize.m

@@ -255,55 +255,30 @@
     
         dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
             
-            // Selector : selectorReadFile, selectorReadFileWithDownload
-            if ([metadataNet.selector isEqualToString:selectorReadFile] || [metadataNet.selector isEqualToString:selectorReadFileWithDownload]) {
+            BOOL withDownload = NO;
             
-                BOOL withDownload = NO;
+            if ([metadataNet.selector isEqualToString:selectorReadFileWithDownload])
+                withDownload = YES;
             
-                if ([metadataNet.selector isEqualToString:selectorReadFileWithDownload])
-                    withDownload = YES;
-            
-                //Add/Update Metadata
-                tableMetadata *addMetadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
-                
-                if (addMetadata)
-                    [self verifyChangeMedatas:[[NSArray alloc] initWithObjects:addMetadata, nil] serverUrl:metadataNet.serverUrl account:appDelegate.activeAccount withDownload:withDownload];
-            }
-            
-            // Selector : selectorReadFileReloadFolder, selectorReadFileFolderWithDownload
-            if ([metadataNet.selector isEqualToString:selectorReadFileFolder] || [metadataNet.selector isEqualToString:selectorReadFileFolderWithDownload]) {
-                
-                NSString *serverUrl = [CCUtility stringAppendServerUrl:metadataNet.serverUrl addFileName:metadataNet.fileName];
-                tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", metadataNet.account, serverUrl]];
-                tableMetadata *tableMetadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
+            //Add/Update Metadata
+            tableMetadata *addMetadata = [[NCManageDatabase sharedInstance] addMetadata:metadata];
                 
-                // Verify changed etag OR was not favorite
-                if (!([tableDirectory.etag isEqualToString:metadata.etag]) || (tableMetadata == nil || tableMetadata.favorite == NO)) {
-                    
-                    if ([metadataNet.selector isEqualToString:selectorReadFileFolder])
-                        [self readFolder:serverUrl selector:selectorReadFolder];
-                    if ([metadataNet.selector isEqualToString:selectorReadFileFolderWithDownload])
-                        [self readFolder:serverUrl selector:selectorReadFolderWithDownload];
-                }
-            }
+            if (addMetadata)
+                [self verifyChangeMedatas:[[NSArray alloc] initWithObjects:addMetadata, nil] serverUrl:metadataNet.serverUrl account:appDelegate.activeAccount withDownload:withDownload];
         });
         
     } else {
         
-        // Selector : selectorReadFile, selectorReadFileWithDownload
-        if ([metadataNet.selector isEqualToString:selectorReadFile] || [metadataNet.selector isEqualToString:selectorReadFileWithDownload]) {
-            
-            // File not present, remove it
-            if (errorCode == 404) {
+        // File not present, remove it
+        if (errorCode == 404) {
                 
-                [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID] clearDateReadDirectoryID:nil];
-                [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID]];
-                [[NCManageDatabase sharedInstance] deletePhotosWithFileID:metadataNet.fileID];
+            [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID] clearDateReadDirectoryID:nil];
+            [[NCManageDatabase sharedInstance] deleteLocalFileWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadataNet.fileID]];
+            [[NCManageDatabase sharedInstance] deletePhotosWithFileID:metadataNet.fileID];
                 
-                NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadataNet.directoryID];
-                if (serverUrl)
-                    [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:serverUrl fileID:nil action:k_action_NULL];
-            }
+            NSString *serverUrl = [[NCManageDatabase sharedInstance] getServerUrl:metadataNet.directoryID];
+            if (serverUrl)
+                [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:serverUrl fileID:nil action:k_action_NULL];
         }
     }
 }