Marino Faggiana 7 years ago
parent
commit
c15f9b5bc9
2 changed files with 23 additions and 56 deletions
  1. 4 40
      iOSClient/FileSystem/NCManageDatabase.swift
  2. 19 16
      iOSClient/Networking/CCNetworking.m

+ 4 - 40
iOSClient/FileSystem/NCManageDatabase.swift

@@ -1194,55 +1194,19 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    func updateMetadata(_ metadata: tableMetadata, date: NSDate?, fileID: String?, rev: String?, session: String?, sessionError: String?, sessionTaskIdentifier: Int, sessionTaskIdentifierPlist: Int, activeUrl: String) {
-        
-        let tableAccount = self.getAccountActive()
-        if tableAccount == nil {
-            return
-        }
+    func updateMetadata(_ metadata: tableMetadata, activeUrl: String) {
         
         let cameraFolderName = self.getAccountCameraUploadFolderName()
         let cameraFolderPath = self.getAccountCameraUploadFolderPath(activeUrl)
         let direcory = CCCoreData.getServerUrl(fromDirectoryID: metadata.directoryID, activeAccount: metadata.account)
         
+        let metadataWithIcon = CCUtility.insertTypeFileIconName(metadata, directory: direcory, cameraFolderName: cameraFolderName, cameraFolderPath: cameraFolderPath)
+        
         let realm = try! Realm()
         
         try! realm.write {
-            
-            let metadataWithIcon = CCUtility.insertTypeFileIconName(metadata, directory: direcory, cameraFolderName: cameraFolderName, cameraFolderPath: cameraFolderPath)
-            
-            if date != nil {
-                metadata.date = date!
-            }
-            if rev != nil {
-                metadata.rev = rev!
-            }
-            if session != nil {
-                metadata.session = session!
-            }
-            if sessionError != nil {
-                metadata.sessionError = sessionError!
-            }
-            if sessionTaskIdentifier != Int(k_taskIdentifierNULL) {
-                metadata.sessionTaskIdentifier = sessionTaskIdentifier
-            }
-            if sessionTaskIdentifierPlist != Int(k_taskIdentifierNULL) {
-                metadata.sessionTaskIdentifierPlist = sessionTaskIdentifierPlist
-            }
-            
-            if fileID != nil {
-                
-                let copyMetadata = self.copyTableMetadata(metadata)
-                
-                copyMetadata.fileID = fileID!
-                realm.add(copyMetadata, update: true)
-                
-            } else {
-                
-                realm.add(metadataWithIcon!, update: true)
-            }
+            realm.add(metadataWithIcon!, update: true)
         }
-        
     }
     
     func setMetadataSession(_ session: String?, sessionError: String?, sessionSelector: String?, sessionSelectorPost: String?, sessionTaskIdentifier: Int, sessionTaskIdentifierPlist: Int, predicate: NSPredicate) {

+ 19 - 16
iOSClient/Networking/CCNetworking.m

@@ -1366,38 +1366,39 @@
     // PLAIN or PLIST
     if ([CCUtility isFileNotCryptated:fileName] || [CCUtility isCryptoPlistString:fileName]) {
         
-        NSInteger sessionTaskIdentifierPlist = k_taskIdentifierDone;
-        NSInteger sessionTaskIdentifier = k_taskIdentifierNULL;
-        
-        //metadata.fileID = fileID;
-        //metadata.rev = rev;
-        //metadata.date = date;
-        //metadata.sessionTaskIdentifierPlist = k_taskIdentifierDone;
-        
-        if ([CCUtility isFileNotCryptated:fileName])
-            sessionTaskIdentifier = k_taskIdentifierDone;
-        
         // copy ico in new fileID
         [CCUtility copyFileAtPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, sessionID] toPath:[NSString stringWithFormat:@"%@/%@.ico", _directoryUser, fileID]];
         
-        //[CCCoreData updateMetadata:metadata predicate:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount] activeAccount:_activeAccount activeUrl:_activeUrl context:_context];
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        metadata.fileID = fileID;
+        metadata.rev = rev;
+        metadata.date = date;
+        metadata.sessionTaskIdentifierPlist = k_taskIdentifierDone;
+        
+        if ([CCUtility isFileNotCryptated:fileName])
+            metadata.sessionTaskIdentifier = k_taskIdentifierDone;
         
-        [[NCManageDatabase sharedInstance] updateMetadata:metadata date:date fileID:fileID rev:rev session:nil sessionError:nil sessionTaskIdentifier:sessionTaskIdentifier sessionTaskIdentifierPlist:sessionTaskIdentifierPlist activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", sessionID]];
     }
     
     // CRYPTO
     if ([CCUtility isCryptoString:fileName]) {
         
-        //metadata.sessionTaskIdentifier = k_taskIdentifierDone;
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        metadata.sessionTaskIdentifier = k_taskIdentifierDone;
         
+        [[NCManageDatabase sharedInstance] addMetadata:metadata activeUrl:_activeUrl];
+        [[NCManageDatabase sharedInstance] deleteMetadata:[NSPredicate predicateWithFormat:@"fileID = %@", sessionID]];
+
         //[CCCoreData updateMetadata:metadata predicate:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount] activeAccount:_activeAccount activeUrl:_activeUrl context:_context];
-        
-        [[NCManageDatabase sharedInstance] updateMetadata:metadata date:nil fileID:nil rev:nil session:nil sessionError:nil sessionTaskIdentifier:k_taskIdentifierDone sessionTaskIdentifierPlist:k_taskIdentifierNULL activeUrl:_activeUrl];
     }
     
     // ALL TASK DONE (PLAIN/CRYPTO)
     if (metadata.sessionTaskIdentifier == k_taskIdentifierDone && metadata.sessionTaskIdentifierPlist == k_taskIdentifierDone) {
         
+        metadata = [[NCManageDatabase sharedInstance] copyTableMetadata:metadata];
+        
 #ifndef EXTENSION
         if (sessionID)
             [app.listProgressMetadata removeObjectForKey:sessionID];
@@ -1409,6 +1410,8 @@
         metadata.sessionError = @"";
         metadata.sessionID = @"";
         
+        
+        
         //[CCCoreData updateMetadata:metadata predicate:[NSPredicate predicateWithFormat:@"(sessionID == %@) AND (account == %@)", sessionID, _activeAccount] activeAccount:_activeAccount activeUrl:_activeUrl context:_context];
         
         //[[NCManageDatabase sharedInstance] updateMetadata:metadata activeUrl:_activeUrl];