Marino Faggiana 6 жил өмнө
parent
commit
2bbcec96ee

+ 2 - 2
File Provider Extension/FileProviderExtension+Actions.swift

@@ -59,7 +59,7 @@ extension FileProviderExtension {
             }
             
             // DIRECTORY
-            guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, lock: false, offline: false, fileID: fileID!, permissions: nil, serverUrl: serverUrl + "/" + directoryName, account: self.providerData.account) else {
+            guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: fileID!, etag: nil, permissions: nil, serverUrl: serverUrl + "/" + directoryName, account: self.providerData.account) else {
                 completionHandler(nil, NSFileProviderError(.noSuchItem))
                 return
             }
@@ -154,7 +154,7 @@ extension FileProviderExtension {
                 
                 NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: self.providerData.account)
                 NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo)
-                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, lock: false, offline: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo, account: self.providerData.account)
+                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, etag: nil, permissions: nil, serverUrl: serverUrlTo, account: self.providerData.account)
                 
             } else {
                 

+ 1 - 1
iOSClient/AppDelegate.m

@@ -1537,7 +1537,7 @@
             [[NCManageDatabase sharedInstance] clearTable:[tableDirectory class] account:nil];
 
             for (tableDirectory *directory in directories) {
-                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:directory.e2eEncrypted favorite:directory.favorite lock:directory.lock offline:directory.offline fileID:directory.fileID permissions:directory.permissions serverUrl:directory.serverUrl account:directory.account];
+                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:directory.e2eEncrypted favorite:directory.favorite fileID:directory.fileID etag:directory.etag permissions:directory.permissions serverUrl:directory.serverUrl account:directory.account];
             }
             
             [[NCManageDatabase sharedInstance] setClearAllDateReadDirectory];

+ 2 - 2
iOSClient/AutoUpload/NCAutoUpload.m

@@ -490,7 +490,7 @@
         
         tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, autoUploadPath]];
         if (!tableDirectory)
-            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false lock:false offline:false fileID:fileID permissions:nil serverUrl:autoUploadPath account:appDelegate.activeAccount];
+            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID etag:nil permissions:nil serverUrl:autoUploadPath account:appDelegate.activeAccount];
         
     } else {
         
@@ -514,7 +514,7 @@
             
             if ( error == nil) {
                 
-                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false lock:false offline:false fileID:fileID permissions:nil serverUrl:folderPathName account:appDelegate.activeAccount];
+                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID etag:nil permissions:nil serverUrl:folderPathName account:appDelegate.activeAccount];
                 
             } else {
                 

+ 12 - 5
iOSClient/Database/NCManageDatabase.swift

@@ -803,22 +803,29 @@ class NCManageDatabase: NSObject {
     //MARK: -
     //MARK: Table Directory
     
-    @objc func addDirectory(encrypted: Bool, favorite: Bool, lock: Bool, offline: Bool, fileID: String?, permissions: String?, serverUrl: String, account: String) -> tableDirectory? {
+    @objc func addDirectory(encrypted: Bool, favorite: Bool, fileID: String?, etag: String?, permissions: String?, serverUrl: String, account: String) -> tableDirectory? {
         
         let realm = try! Realm()
         realm.beginWrite()
         
-        let addObject = tableDirectory()
+        var addObject = tableDirectory()
+        
+        let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first
+        if result != nil {
+            addObject = result!
+        } else {
+            addObject.directoryID = CCUtility.createDirectoyID(fromAccount: account, serverUrl: serverUrl)
+        }
         
         addObject.account = account
-        addObject.directoryID = CCUtility.createDirectoyID(fromAccount: account, serverUrl: serverUrl)
         addObject.e2eEncrypted = encrypted
         addObject.favorite = favorite
+        if let etag = etag {
+            addObject.etag = etag
+        }
         if let fileID = fileID {
             addObject.fileID = fileID
         }
-        addObject.lock = lock
-        addObject.offline = offline
         if let permissions = permissions {
             addObject.permissions = permissions
         }

+ 3 - 3
iOSClient/Networking/OCNetworking.m

@@ -614,7 +614,7 @@
                         }
                         
                         if (itemDto.isDirectory) {
-                            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite lock:false offline:false fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[CCUtility stringAppendServerUrl:serverUrl addFileName:fileName] account:account];
+                            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId etag:itemDto.etag permissions:itemDto.permissions serverUrl:[CCUtility stringAppendServerUrl:serverUrl addFileName:fileName] account:account];
                         }
                         
                         // ----- BUG #942 ---------
@@ -837,7 +837,7 @@
                 serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                 
                 if (itemDto.isDirectory) {
-                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite lock:false offline:false fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:_metadataNet.account];
+                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId etag:itemDto.etag permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:_metadataNet.account];
                 }
                 
                 isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:_metadataNet.account];
@@ -990,7 +990,7 @@
                     serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                     
                     if (itemDto.isDirectory) {
-                        (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite lock:false offline:false fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:account];
+                        (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId etag:itemDto.etag permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:account];
                     }
                     
                     isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:account];