Marino Faggiana 6 жил өмнө
parent
commit
d79bd9a5b4

+ 1 - 1
File Provider Extension/FileProviderEnumerator.swift

@@ -154,7 +154,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                         
                         
                         if metadataFolder != nil {
                         if metadataFolder != nil {
                             // Update directory etag
                             // Update directory etag
-                            NCManageDatabase.sharedInstance.setDirectory(serverUrl: serverUrl, serverUrlTo: nil, etag: metadataFolder!.etag, fileID: metadataFolder!.fileID, encrypted: metadataFolder!.e2eEncrypted)
+                            NCManageDatabase.sharedInstance.setDirectory(serverUrl: serverUrl, serverUrlTo: nil, etag: metadataFolder!.etag, fileID: metadataFolder!.fileID, encrypted: metadataFolder!.e2eEncrypted, account: self.providerData.account)
                             // Save etag for this serverUrl
                             // Save etag for this serverUrl
                             self.providerData.listServerUrlEtag[serverUrl] = metadataFolder!.etag
                             self.providerData.listServerUrlEtag[serverUrl] = metadataFolder!.etag
                         }
                         }

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

@@ -47,7 +47,7 @@ extension FileProviderExtension {
             
             
             metadata.account = self.providerData.account
             metadata.account = self.providerData.account
             metadata.directory = true
             metadata.directory = true
-            metadata.directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl)!
+            metadata.directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl, account: self.providerData.account)!
             metadata.fileID = fileID!
             metadata.fileID = fileID!
             metadata.fileName = directoryName
             metadata.fileName = directoryName
             metadata.fileNameView = directoryName
             metadata.fileNameView = directoryName
@@ -60,7 +60,7 @@ extension FileProviderExtension {
             }
             }
             
             
             // DIRECTORY
             // DIRECTORY
-            guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: fileID!, permissions: nil, serverUrl: serverUrl + "/" + directoryName) else {
+            guard let _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: fileID!, permissions: nil, serverUrl: serverUrl + "/" + directoryName, account: self.providerData.account) else {
                 completionHandler(nil, NSFileProviderError(.noSuchItem))
                 completionHandler(nil, NSFileProviderError(.noSuchItem))
                 return
                 return
             }
             }
@@ -146,7 +146,7 @@ extension FileProviderExtension {
             return
             return
         }
         }
         let serverUrlTo = tableDirectoryTo.serverUrl
         let serverUrlTo = tableDirectoryTo.serverUrl
-        let directoryIDTo = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlTo)!
+        let directoryIDTo = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlTo, account: providerData.account)!
         let fileNameTo = serverUrlTo + "/" + itemFrom.filename
         let fileNameTo = serverUrlTo + "/" + itemFrom.filename
         
         
         let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
         let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
@@ -156,7 +156,7 @@ extension FileProviderExtension {
                 
                 
                 NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: self.providerData.account)
                 NCManageDatabase.sharedInstance.deleteDirectoryAndSubDirectory(serverUrl: serverUrlFrom, account: self.providerData.account)
                 NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo, directoryIDTo: directoryIDTo)
                 NCManageDatabase.sharedInstance.moveMetadata(fileID: fileIDFrom, serverUrlTo: serverUrlTo, directoryIDTo: directoryIDTo)
-                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo)
+                _ = NCManageDatabase.sharedInstance.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrlTo, account: self.providerData.account)
                 
                 
             } else {
             } else {
                 
                 
@@ -217,7 +217,7 @@ extension FileProviderExtension {
             
             
             if metadata.directory {
             if metadata.directory {
                 
                 
-                NCManageDatabase.sharedInstance.setDirectory(serverUrl: fileNamePathFrom, serverUrlTo: fileNamePathTo, etag: nil, fileID: nil, encrypted: directoryTable.e2eEncrypted)
+                NCManageDatabase.sharedInstance.setDirectory(serverUrl: fileNamePathFrom, serverUrlTo: fileNamePathTo, etag: nil, fileID: nil, encrypted: directoryTable.e2eEncrypted, account: self.providerData.account)
                 
                 
             } else {
             } else {
                 
                 

+ 1 - 1
Share/ShareViewController.m

@@ -213,7 +213,7 @@
 {
 {
     if ([self.filesName count] > 0) {
     if ([self.filesName count] > 0) {
     
     
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:self.serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:self.serverUrl account:self.activeAccount];
         NSString *fileName = [[NCUtility sharedInstance] createFileName:[self.filesName objectAtIndex:0] directoryID:directoryID];
         NSString *fileName = [[NCUtility sharedInstance] createFileName:[self.filesName objectAtIndex:0] directoryID:directoryID];
         
         
         tableMetadata *metadataForUpload = [tableMetadata new];
         tableMetadata *metadataForUpload = [tableMetadata new];

+ 3 - 3
iOSClient/AutoUpload/NCAutoUpload.m

@@ -402,7 +402,7 @@
             serverUrl = autoUploadPath;
             serverUrl = autoUploadPath;
         
         
         if (![serverUrl isEqualToString:prevServerUrl]) {
         if (![serverUrl isEqualToString:prevServerUrl]) {
-            directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+            directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
             prevServerUrl = serverUrl;
             prevServerUrl = serverUrl;
         }
         }
         
         
@@ -497,7 +497,7 @@
         
         
         tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, autoUploadPath]];
         tableDirectory *tableDirectory = [[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@", appDelegate.activeAccount, autoUploadPath]];
         if (!tableDirectory)
         if (!tableDirectory)
-            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID permissions:nil serverUrl:autoUploadPath];
+            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID permissions:nil serverUrl:autoUploadPath account:appDelegate.activeAccount];
         
         
     } else {
     } else {
         
         
@@ -521,7 +521,7 @@
             
             
             if ( error == nil) {
             if ( error == nil) {
                 
                 
-                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID permissions:nil serverUrl:folderPathName];
+                (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:encrypted favorite:false fileID:fileID permissions:nil serverUrl:folderPathName account:appDelegate.activeAccount];
                 
                 
             } else {
             } else {
                 
                 

+ 17 - 53
iOSClient/Database/NCManageDatabase.swift

@@ -788,23 +788,19 @@ class NCManageDatabase: NSObject {
     //MARK: -
     //MARK: -
     //MARK: Table Directory
     //MARK: Table Directory
     
     
-    @objc func addDirectory(encrypted: Bool, favorite: Bool, fileID: String?, permissions: String?, serverUrl: String) -> tableDirectory? {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return nil
-        }
+    @objc func addDirectory(encrypted: Bool, favorite: Bool, fileID: String?, permissions: String?, serverUrl: String, account: String) -> tableDirectory? {
         
         
         var result: tableDirectory?
         var result: tableDirectory?
         let realm = try! Realm()
         let realm = try! Realm()
 
 
-        result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first
+        result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first
         
         
         realm.beginWrite()
         realm.beginWrite()
         
         
         if result == nil || (result?.isInvalidated)! {
         if result == nil || (result?.isInvalidated)! {
             
             
             result = tableDirectory()
             result = tableDirectory()
-            result!.account = tableAccount.account
+            result!.account = account
                 
                 
             result!.directoryID = NSUUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased()
             result!.directoryID = NSUUID().uuidString.replacingOccurrences(of: "-", with: "").lowercased()
             result!.e2eEncrypted = encrypted
             result!.e2eEncrypted = encrypted
@@ -838,7 +834,7 @@ class NCManageDatabase: NSObject {
             }
             }
                     
                     
             result =  tableDirectory.init(value: result!)
             result =  tableDirectory.init(value: result!)
-            let results = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl)
+            let results = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl)
 
 
             realm.delete(results)
             realm.delete(results)
             realm.add(result!)
             realm.add(result!)
@@ -878,18 +874,14 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func setDirectory(serverUrl: String, serverUrlTo: String?, etag: String?, fileID: String?, encrypted: Bool) {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return
-        }
+    @objc func setDirectory(serverUrl: String, serverUrlTo: String?, etag: String?, fileID: String?, encrypted: Bool, account: String) {
         
         
         let realm = try! Realm()
         let realm = try! Realm()
 
 
         do {
         do {
             try realm.write {
             try realm.write {
             
             
-                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first else {
+                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first else {
                     return
                     return
                 }
                 }
                 
                 
@@ -935,10 +927,6 @@ class NCManageDatabase: NSObject {
     
     
     @objc func getTableDirectory(predicate: NSPredicate) -> tableDirectory? {
     @objc func getTableDirectory(predicate: NSPredicate) -> tableDirectory? {
         
         
-        guard self.getAccountActive() != nil else {
-            return nil
-        }
-        
         let realm = try! Realm()
         let realm = try! Realm()
         realm.refresh()
         realm.refresh()
 
 
@@ -951,10 +939,6 @@ class NCManageDatabase: NSObject {
     
     
     @objc func getTablesDirectory(predicate: NSPredicate, sorted: String, ascending: Bool) -> [tableDirectory]? {
     @objc func getTablesDirectory(predicate: NSPredicate, sorted: String, ascending: Bool) -> [tableDirectory]? {
         
         
-        guard self.getAccountActive() != nil else {
-            return nil
-        }
-        
         let realm = try! Realm()
         let realm = try! Realm()
         realm.refresh()
         realm.refresh()
 
 
@@ -967,11 +951,7 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func getDirectoryID(_ serverUrl: String?) -> String? {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return nil
-        }
+    @objc func getDirectoryID(_ serverUrl: String?, account: String) -> String? {
         
         
         guard let serverUrl = serverUrl else {
         guard let serverUrl = serverUrl else {
             return nil
             return nil
@@ -980,8 +960,8 @@ class NCManageDatabase: NSObject {
         let realm = try! Realm()
         let realm = try! Realm()
         realm.refresh()
         realm.refresh()
 
 
-        guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first else {
-            return self.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrl)?.directoryID
+        guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first else {
+            return self.addDirectory(encrypted: false, favorite: false, fileID: nil, permissions: nil, serverUrl: serverUrl, account: account)?.directoryID
         }
         }
         
         
         return result.directoryID
         return result.directoryID
@@ -1025,10 +1005,6 @@ class NCManageDatabase: NSObject {
     
     
     @objc func setClearAllDateReadDirectory() {
     @objc func setClearAllDateReadDirectory() {
         
         
-        guard self.getAccountActive() != nil else {
-            return
-        }
-        
         let realm = try! Realm()
         let realm = try! Realm()
 
 
         do {
         do {
@@ -1046,11 +1022,7 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func setDirectoryLock(serverUrl: String, lock: Bool) -> Bool {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return false
-        }
+    @objc func setDirectoryLock(serverUrl: String, lock: Bool, account: String) -> Bool {
         
         
         let realm = try! Realm()
         let realm = try! Realm()
 
 
@@ -1059,7 +1031,7 @@ class NCManageDatabase: NSObject {
         do {
         do {
             try realm.write {
             try realm.write {
             
             
-                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first else {
+                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first else {
                     realm.cancelWrite()
                     realm.cancelWrite()
                     return
                     return
                 }
                 }
@@ -1075,18 +1047,14 @@ class NCManageDatabase: NSObject {
         return update
         return update
     }
     }
     
     
-    @objc func setAllDirectoryUnLock() {
+    @objc func setAllDirectoryUnLock(account: String) {
         
         
-        guard let tableAccount = self.getAccountActive() else {
-            return
-        }
-
         let realm = try! Realm()
         let realm = try! Realm()
 
 
         do {
         do {
             try realm.write {
             try realm.write {
             
             
-                let results = realm.objects(tableDirectory.self).filter("account = %@", tableAccount.account)
+                let results = realm.objects(tableDirectory.self).filter("account = %@", account)
 
 
                 for result in results {
                 for result in results {
                     result.lock = false;
                     result.lock = false;
@@ -1097,18 +1065,14 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func setDirectory(serverUrl: String, offline: Bool) {
-        
-        guard let tableAccount = self.getAccountActive() else {
-            return
-        }
+    @objc func setDirectory(serverUrl: String, offline: Bool, account: String) {
         
         
         let realm = try! Realm()
         let realm = try! Realm()
         
         
         do {
         do {
             try realm.write {
             try realm.write {
                 
                 
-                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", tableAccount.account, serverUrl).first else {
+                guard let result = realm.objects(tableDirectory.self).filter("account = %@ AND serverUrl = %@", account, serverUrl).first else {
                     realm.cancelWrite()
                     realm.cancelWrite()
                     return
                     return
                 }
                 }
@@ -1846,12 +1810,12 @@ class NCManageDatabase: NSObject {
         }
         }
     }
     }
     
     
-    @objc func getMetadataInSessionFromFileName(_ fileName: String, directoryID: String) -> tableMetadata? {
+    @objc func getMetadataInSessionFromFileName(_ fileName: String, serverUrl: String, taskIdentifier: Int) -> tableMetadata? {
         
         
         let realm = try! Realm()
         let realm = try! Realm()
         realm.refresh()
         realm.refresh()
         
         
-        guard let result = realm.objects(tableMetadata.self).filter("directoryID == %@ AND fileName == %@ AND session != ''", directoryID, fileName).first else {
+        guard let result = realm.objects(tableMetadata.self).filter("serverUrl == %@ AND fileName == %@ AND session != '' AND sessionTaskIdentifier == %d", serverUrl, fileName, taskIdentifier).first else {
             return nil
             return nil
         }
         }
         
         

+ 2 - 2
iOSClient/Favorites/CCFavorites.m

@@ -167,7 +167,7 @@
 
 
 - (void)addFavoriteFolder:(NSString *)serverUrl
 - (void)addFavoriteFolder:(NSString *)serverUrl
 {
 {
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
     if (!directoryID) return;
     if (!directoryID) return;
     
     
     NSString *selector;
     NSString *selector;
@@ -555,7 +555,7 @@
         
         
     } else {
     } else {
         
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl account:appDelegate.activeAccount];
         
         
         if (directoryID)
         if (directoryID)
             recordsTableMetadata = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@", directoryID] sorted:sorted ascending:[CCUtility getAscendingSettings]];
             recordsTableMetadata = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@", directoryID] sorted:sorted ascending:[CCUtility getAscendingSettings]];

+ 14 - 14
iOSClient/Main/CCMain.m

@@ -707,7 +707,7 @@
         [coordinator coordinateReadingItemAtURL:url options:NSFileCoordinatorReadingForUploading error:&error byAccessor:^(NSURL *newURL) {
         [coordinator coordinateReadingItemAtURL:url options:NSFileCoordinatorReadingForUploading error:&error byAccessor:^(NSURL *newURL) {
             
             
             NSString *serverUrl = [appDelegate getTabBarControllerActiveServerUrl];
             NSString *serverUrl = [appDelegate getTabBarControllerActiveServerUrl];
-            NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+            NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
             NSString *fileName =  [[NCUtility sharedInstance] createFileName:[url lastPathComponent] directoryID:directoryID];
             NSString *fileName =  [[NCUtility sharedInstance] createFileName:[url lastPathComponent] directoryID:directoryID];
             NSString *fileID = [directoryID stringByAppendingString:fileName];
             NSString *fileID = [directoryID stringByAppendingString:fileName];
             NSData *data = [NSData dataWithContentsOfURL:newURL];
             NSData *data = [NSData dataWithContentsOfURL:newURL];
@@ -1057,7 +1057,7 @@
             serverUrl = [NSString stringWithFormat:@"%@/%@/%@", autoUploadPath, yearString, monthString];
             serverUrl = [NSString stringWithFormat:@"%@/%@/%@", autoUploadPath, yearString, monthString];
         }
         }
         
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
         if (!directoryID) return;
         if (!directoryID) return;
         
         
         // Check if is in upload
         // Check if is in upload
@@ -1224,7 +1224,7 @@
     
     
     if (_isSearchMode == NO) {
     if (_isSearchMode == NO) {
         
         
-        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];
+        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted account:appDelegate.activeAccount];
         
         
         [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND (status == %d OR status == %d)", metadataNet.directoryID, k_metadataStatusNormal, k_metadataStatusHide]];
         [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND (status == %d OR status == %d)", metadataNet.directoryID, k_metadataStatusNormal, k_metadataStatusHide]];
         
         
@@ -1387,7 +1387,7 @@
     metadataNet.action = actionSearch;
     metadataNet.action = actionSearch;
     metadataNet.contentType = nil;
     metadataNet.contentType = nil;
     metadataNet.date = nil;
     metadataNet.date = nil;
-    metadataNet.directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:startDirectory];
+    metadataNet.directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:startDirectory account:appDelegate.activeAccount];
     metadataNet.fileName = _searchFileName;
     metadataNet.fileName = _searchFileName;
     metadataNet.etag = @"";
     metadataNet.etag = @"";
     metadataNet.depth = @"infinity";
     metadataNet.depth = @"infinity";
@@ -1419,7 +1419,7 @@
         
         
         // First : filter
         // First : filter
             
             
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl account:appDelegate.activeAccount];
         if (!directoryID) return;
         if (!directoryID) return;
         
         
         NSPredicate *predicate = [NSPredicate predicateWithFormat:@"directoryID == %@ AND fileNameView CONTAINS[cd] %@", directoryID, fileName];
         NSPredicate *predicate = [NSPredicate predicateWithFormat:@"directoryID == %@ AND fileNameView CONTAINS[cd] %@", directoryID, fileName];
@@ -1553,7 +1553,7 @@
             return;
             return;
         }
         }
         
         
-        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:serverUrl serverUrlTo:serverUrlTo etag:nil fileID:nil encrypted:directoryTable.e2eEncrypted];
+        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:serverUrl serverUrlTo:serverUrlTo etag:nil fileID:nil encrypted:directoryTable.e2eEncrypted account:appDelegate.activeAccount];
 
 
     } else {
     } else {
         
         
@@ -1740,7 +1740,7 @@
     NSInteger numFile = [[arguments objectAtIndex:2] integerValue];
     NSInteger numFile = [[arguments objectAtIndex:2] integerValue];
     NSInteger ofFile = [[arguments objectAtIndex:3] integerValue];
     NSInteger ofFile = [[arguments objectAtIndex:3] integerValue];
     
     
-    NSString *directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo];
+    NSString *directoryIDTo = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlTo account:appDelegate.activeAccount];
     if (!directoryIDTo) return;
     if (!directoryIDTo) return;
     
     
     OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:appDelegate.activeUser withUserID:appDelegate.activeUserID withPassword:appDelegate.activePassword withUrl:appDelegate.activeUrl];
     OCnetworking *ocNetworking = [[OCnetworking alloc] initWithDelegate:nil metadataNet:nil withUser:appDelegate.activeUser withUserID:appDelegate.activeUserID withPassword:appDelegate.activePassword withUrl:appDelegate.activeUrl];
@@ -1881,7 +1881,7 @@
 {
 {
     fileNameFolder = [CCUtility removeForbiddenCharactersServer:fileNameFolder];
     fileNameFolder = [CCUtility removeForbiddenCharactersServer:fileNameFolder];
     if (![fileNameFolder length]) return;
     if (![fileNameFolder length]) return;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
     if (!directoryID) return;
     if (!directoryID) return;
     NSString *fileIDTemp = [[NSUUID UUID] UUIDString];
     NSString *fileIDTemp = [[NSUUID UUID] UUIDString];
     
     
@@ -3066,7 +3066,7 @@
         
         
         NSData *dataFileID = [dic objectForKey: k_metadataKeyedUnarchiver];
         NSData *dataFileID = [dic objectForKey: k_metadataKeyedUnarchiver];
         NSString *fileID = [NSKeyedUnarchiver unarchiveObjectWithData:dataFileID];
         NSString *fileID = [NSKeyedUnarchiver unarchiveObjectWithData:dataFileID];
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:self.serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:self.serverUrl account:appDelegate.activeAccount];
 
 
         tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileID]];
         tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", fileID]];
         
         
@@ -3158,7 +3158,7 @@
             
             
                 NSString *lockServerUrl = [CCUtility stringAppendServerUrl:self.metadata.serverUrl addFileName:self.metadata.fileName];
                 NSString *lockServerUrl = [CCUtility stringAppendServerUrl:self.metadata.serverUrl addFileName:self.metadata.fileName];
                 
                 
-                if (![[NCManageDatabase sharedInstance] setDirectoryLockWithServerUrl:lockServerUrl lock:NO]) {
+                if (![[NCManageDatabase sharedInstance] setDirectoryLockWithServerUrl:lockServerUrl lock:NO account:appDelegate.activeAccount]) {
                 
                 
                     [appDelegate messageNotification:@"_error_" description:@"_error_operation_canc_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:k_CCErrorInternalError];
                     [appDelegate messageNotification:@"_error_" description:@"_error_operation_canc_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:k_CCErrorInternalError];
                 }
                 }
@@ -3225,7 +3225,7 @@
     
     
     // ---------------- ACTIVATE PASSWORD
     // ---------------- ACTIVATE PASSWORD
     
     
-    if ([[NCManageDatabase sharedInstance] setDirectoryLockWithServerUrl:lockServerUrl lock:YES]) {
+    if ([[NCManageDatabase sharedInstance] setDirectoryLockWithServerUrl:lockServerUrl lock:YES account:appDelegate.activeAccount]) {
         
         
         NSIndexPath *indexPath = [sectionDataSource.fileIDIndexPath objectForKey:self.metadata.fileID];
         NSIndexPath *indexPath = [sectionDataSource.fileIDIndexPath objectForKey:self.metadata.fileID];
         if ([self indexPathIsValid:indexPath])
         if ([self indexPathIsValid:indexPath])
@@ -3486,10 +3486,10 @@
                                        type:AHKActionSheetButtonTypeDefault
                                        type:AHKActionSheetButtonTypeDefault
                                     handler:^(AHKActionSheet *as) {
                                     handler:^(AHKActionSheet *as) {
                                         if (isOffline) {
                                         if (isOffline) {
-                                            [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:dirServerUrl offline:false];
+                                            [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:dirServerUrl offline:false account:appDelegate.activeAccount];
                                             [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                             [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                         } else {
                                         } else {
-                                            [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:dirServerUrl offline:true];
+                                            [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:dirServerUrl offline:true account:appDelegate.activeAccount];
                                             [[CCSynchronize sharedSynchronize] readFolder:dirServerUrl selector:selectorReadFolderWithDownload];
                                             [[CCSynchronize sharedSynchronize] readFolder:dirServerUrl selector:selectorReadFolderWithDownload];
                                             [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                             [self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
                                         }
                                         }
@@ -3817,7 +3817,7 @@
     }
     }
     
     
     // current directoryID
     // current directoryID
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
     if (directoryID == nil) {
     if (directoryID == nil) {
         return nil;
         return nil;
     }
     }

+ 2 - 2
iOSClient/Main/Create cloud/NCCreateFormUploadFileText.swift

@@ -170,7 +170,7 @@ class NCCreateFormUploadFileText: XLFormViewController, NCSelectDelegate {
             fileNameSave = (name as! NSString).deletingPathExtension + ".txt"
             fileNameSave = (name as! NSString).deletingPathExtension + ".txt"
         }
         }
         
         
-        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl) else {
+        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl, account: appDelegate.activeAccount) else {
             return
             return
         }
         }
         let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "directoryID == %@ AND fileNameView == %@", directoryID, fileNameSave))
         let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "directoryID == %@ AND fileNameView == %@", directoryID, fileNameSave))
@@ -192,7 +192,7 @@ class NCCreateFormUploadFileText: XLFormViewController, NCSelectDelegate {
             self.present(alertController, animated: true, completion:nil)
             self.present(alertController, animated: true, completion:nil)
             
             
         } else {
         } else {
-            let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl)!
+            let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl, account: appDelegate.activeAccount)!
             dismissAndUpload(fileNameSave, fileID: directoryID + fileNameSave, directoryID: directoryID, serverUrl: serverUrl)
             dismissAndUpload(fileNameSave, fileID: directoryID + fileNameSave, directoryID: directoryID, serverUrl: serverUrl)
         }
         }
     }
     }

+ 1 - 1
iOSClient/Main/Create cloud/NCCreateFormUploadRichdocuments.swift

@@ -256,7 +256,7 @@ class NCCreateFormUploadRichdocuments: XLFormViewController, NCSelectDelegate, U
             fileName = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
             fileName = (fileNameForm as! NSString).deletingPathExtension + "." + fileNameExtension
             fileName = CCUtility.returnFileNamePath(fromFileName: fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
             fileName = CCUtility.returnFileNamePath(fromFileName: fileName, serverUrl: serverUrl, activeUrl: appDelegate.activeUrl)
         }
         }
-        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl) else {
+        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl, account: appDelegate.activeAccount) else {
             return
             return
         }
         }
         
         

+ 2 - 2
iOSClient/Main/Create cloud/NCCreateFormUploadScanDocument.swift

@@ -310,7 +310,7 @@ class NCCreateFormUploadScanDocument: XLFormViewController, NCSelectDelegate {
             fileNameSave = (name as! NSString).deletingPathExtension + "." + fileType.lowercased()
             fileNameSave = (name as! NSString).deletingPathExtension + "." + fileType.lowercased()
         }
         }
         
         
-        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl) else {
+        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl, account: appDelegate.activeAccount) else {
             return
             return
         }
         }
         let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "directoryID == %@ AND fileNameView == %@", directoryID, fileNameSave))
         let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "directoryID == %@ AND fileNameView == %@", directoryID, fileNameSave))
@@ -333,7 +333,7 @@ class NCCreateFormUploadScanDocument: XLFormViewController, NCSelectDelegate {
             self.present(alertController, animated: true, completion:nil)
             self.present(alertController, animated: true, completion:nil)
             
             
         } else {
         } else {
-            let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl)!
+            let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(self.serverUrl, account: appDelegate.activeAccount)!
             dismissAndUpload(fileNameSave, fileID: directoryID + fileNameSave, directoryID: directoryID, serverUrl: serverUrl)
             dismissAndUpload(fileNameSave, fileID: directoryID + fileNameSave, directoryID: directoryID, serverUrl: serverUrl)
         }
         }
     }
     }

+ 1 - 1
iOSClient/Media/CCMedia.m

@@ -733,7 +733,7 @@
             metadataNet.action = actionSearch;
             metadataNet.action = actionSearch;
             metadataNet.contentType = @[@"image/%", @"video/%"];
             metadataNet.contentType = @[@"image/%", @"video/%"];
             metadataNet.date = [NSDate distantPast];
             metadataNet.date = [NSDate distantPast];
-            metadataNet.directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:startDirectory];
+            metadataNet.directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:startDirectory account:appDelegate.activeAccount];
             metadataNet.fileName = @"";
             metadataNet.fileName = @"";
             metadataNet.etag = metadata.etag;
             metadataNet.etag = metadata.etag;
             metadataNet.depth = @"infinity";
             metadataNet.depth = @"infinity";

+ 3 - 3
iOSClient/Move/CCMove.m

@@ -304,7 +304,7 @@
     [ocNetworking readFolder:_serverUrl depth:@"1" account:activeAccount success:^(NSArray *metadatas, tableMetadata *metadataFolder, NSString *directoryID) {
     [ocNetworking readFolder:_serverUrl depth:@"1" account:activeAccount success:^(NSArray *metadatas, tableMetadata *metadataFolder, NSString *directoryID) {
         
         
         // Update directory etag
         // Update directory etag
-        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:_serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];
+        [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:_serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted account:activeAccount];
         [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND (status == %d OR status == %d)", directoryID, k_metadataStatusNormal, k_metadataStatusHide]];
         [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND (status == %d OR status == %d)", directoryID, k_metadataStatusNormal, k_metadataStatusHide]];
         [[NCManageDatabase sharedInstance] setDateReadDirectoryWithServerUrl:_serverUrl account:activeAccount];
         [[NCManageDatabase sharedInstance] setDateReadDirectoryWithServerUrl:_serverUrl account:activeAccount];
         
         
@@ -368,7 +368,7 @@
 
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
 {
 {
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl account:activeAccount];
     if (!directoryID) return 0;
     if (!directoryID) return 0;
 
 
     if (self.includeDirectoryE2EEncryption) {
     if (self.includeDirectoryE2EEncryption) {
@@ -475,7 +475,7 @@
     NSString *nomeDir;
     NSString *nomeDir;
 
 
     NSIndexPath *index = [self.tableView indexPathForSelectedRow];
     NSIndexPath *index = [self.tableView indexPathForSelectedRow];
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:_serverUrl account:activeAccount];
     if (!directoryID) return;
     if (!directoryID) return;
     
     
     tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataAtIndexWithPredicate:predicateDataSource sorted:@"fileName" ascending:YES index:index.row];
     tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataAtIndexWithPredicate:predicateDataSource sorted:@"fileName" ascending:YES index:index.row];

+ 5 - 15
iOSClient/Networking/CCNetworking.m

@@ -370,9 +370,6 @@
     NSString *fileName = [url lastPathComponent];
     NSString *fileName = [url lastPathComponent];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     if (!serverUrl) return;
     if (!serverUrl) return;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
-    if (!directoryID) return;
-    tableMetadata *metadata;
     
     
     NSInteger errorCode;
     NSInteger errorCode;
     NSDate *date = [NSDate date];
     NSDate *date = [NSDate date];
@@ -399,7 +396,7 @@
     
     
     if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) {
     if ([task isKindOfClass:[NSURLSessionDownloadTask class]]) {
         
         
-        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, fileName]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName serverUrl:serverUrl taskIdentifier:task.taskIdentifier];
         if (metadata) {
         if (metadata) {
             
             
             NSString *etag = metadata.etag;
             NSString *etag = metadata.etag;
@@ -443,7 +440,7 @@
     
     
     if ([task isKindOfClass:[NSURLSessionUploadTask class]]) {
     if ([task isKindOfClass:[NSURLSessionUploadTask class]]) {
         
         
-        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, fileName]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName serverUrl:serverUrl taskIdentifier:task.taskIdentifier];
         if (metadata) {
         if (metadata) {
             
             
             NSDictionary *fields = [httpResponse allHeaderFields];
             NSDictionary *fields = [httpResponse allHeaderFields];
@@ -561,8 +558,6 @@
     NSString *fileName = [url lastPathComponent];
     NSString *fileName = [url lastPathComponent];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     if (!serverUrl) return;
     if (!serverUrl) return;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
-    if (!directoryID) return;
     
     
     if (totalBytesExpectedToWrite < 1) {
     if (totalBytesExpectedToWrite < 1) {
         totalBytesExpectedToWrite = totalBytesWritten;
         totalBytesExpectedToWrite = totalBytesWritten;
@@ -570,8 +565,7 @@
         
         
     float progress = (float) totalBytesWritten / (float)totalBytesExpectedToWrite;
     float progress = (float) totalBytesWritten / (float)totalBytesExpectedToWrite;
     
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName directoryID:directoryID];
-    
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName serverUrl:serverUrl taskIdentifier:downloadTask.taskIdentifier];
     if (metadata) {
     if (metadata) {
         
         
         NSDictionary* userInfo = @{@"fileID": (metadata.fileID), @"serverUrl": (serverUrl), @"status": ([NSNumber numberWithLong:k_metadataStatusInDownload]), @"progress": ([NSNumber numberWithFloat:progress]), @"totalBytes": ([NSNumber numberWithLongLong:totalBytesWritten]), @"totalBytesExpected": ([NSNumber numberWithLongLong:totalBytesExpectedToWrite])};
         NSDictionary* userInfo = @{@"fileID": (metadata.fileID), @"serverUrl": (serverUrl), @"status": ([NSNumber numberWithLong:k_metadataStatusInDownload]), @"progress": ([NSNumber numberWithFloat:progress]), @"totalBytes": ([NSNumber numberWithLongLong:totalBytesWritten]), @"totalBytesExpected": ([NSNumber numberWithLongLong:totalBytesExpectedToWrite])};
@@ -591,10 +585,8 @@
     NSString *fileName = [url lastPathComponent];
     NSString *fileName = [url lastPathComponent];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     if (!serverUrl) return;
     if (!serverUrl) return;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
-    if (!directoryID) return;
     
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, fileName]];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName serverUrl:serverUrl taskIdentifier:downloadTask.taskIdentifier];
     if (!metadata) {
     if (!metadata) {
         
         
         [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:@"" action:k_activityDebugActionUpload selector:@"" note:[NSString stringWithFormat:@"Serious error internal download : metadata not found %@", url] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
         [[NCManageDatabase sharedInstance] addActivityClient:fileName fileID:@"" action:k_activityDebugActionUpload selector:@"" note:[NSString stringWithFormat:@"Serious error internal download : metadata not found %@", url] type:k_activityTypeFailure verbose:k_activityVerboseDefault activeUrl:_activeUrl];
@@ -1113,8 +1105,6 @@
     NSString *fileName = [url lastPathComponent];
     NSString *fileName = [url lastPathComponent];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     NSString *serverUrl = [self getServerUrlFromUrl:url];
     if (!serverUrl) return;
     if (!serverUrl) return;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
-    if (!directoryID) return;
     
     
     if (totalBytesExpectedToSend < 1) {
     if (totalBytesExpectedToSend < 1) {
         totalBytesExpectedToSend = totalBytesSent;
         totalBytesExpectedToSend = totalBytesSent;
@@ -1122,7 +1112,7 @@
     
     
     float progress = (float) totalBytesSent / (float)totalBytesExpectedToSend;
     float progress = (float) totalBytesSent / (float)totalBytesExpectedToSend;
 
 
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName directoryID:directoryID];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName serverUrl:serverUrl taskIdentifier:task.taskIdentifier];
     
     
     if (metadata) {
     if (metadata) {
 
 

+ 8 - 8
iOSClient/Networking/OCNetworking.m

@@ -574,7 +574,7 @@
                     OCFileDto *itemDtoFolder = [items objectAtIndex:0];
                     OCFileDto *itemDtoFolder = [items objectAtIndex:0];
                     //NSDate *date = [NSDate dateWithTimeIntervalSince1970:itemDtoDirectory.date];
                     //NSDate *date = [NSDate dateWithTimeIntervalSince1970:itemDtoDirectory.date];
                     
                     
-                    NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDtoFolder.isEncrypted favorite:itemDtoFolder.isFavorite fileID:itemDtoFolder.ocId permissions:itemDtoFolder.permissions serverUrl:serverUrl].directoryID;
+                    NSString *directoryID = [[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDtoFolder.isEncrypted favorite:itemDtoFolder.isFavorite fileID:itemDtoFolder.ocId permissions:itemDtoFolder.permissions serverUrl:serverUrl account:account].directoryID;
                     NSMutableArray *metadatas = [NSMutableArray new];
                     NSMutableArray *metadatas = [NSMutableArray new];
                     tableMetadata *metadataFolder = [tableMetadata new];
                     tableMetadata *metadataFolder = [tableMetadata new];
                     
                     
@@ -596,7 +596,7 @@
                     } else {
                     } else {
                         
                         
                         serverUrlFolder = [CCUtility deletingLastPathComponentFromServerUrl:serverUrl];
                         serverUrlFolder = [CCUtility deletingLastPathComponentFromServerUrl:serverUrl];
-                        directoryIDFolder = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlFolder];
+                        directoryIDFolder = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlFolder account:account];
                         
                         
                         if (!directoryIDFolder) {
                         if (!directoryIDFolder) {
                             dispatch_async(dispatch_get_main_queue(), ^{
                             dispatch_async(dispatch_get_main_queue(), ^{
@@ -628,7 +628,7 @@
                         }
                         }
                         
                         
                         if (itemDto.isDirectory) {
                         if (itemDto.isDirectory) {
-                            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[CCUtility stringAppendServerUrl:serverUrl addFileName:fileName]];
+                            (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[CCUtility stringAppendServerUrl:serverUrl addFileName:fileName] account:account];
                         }
                         }
                         
                         
                         // ----- BUG #942 ---------
                         // ----- BUG #942 ---------
@@ -732,7 +732,7 @@
                 
                 
                 OCFileDto *itemDto = [items objectAtIndex:0];
                 OCFileDto *itemDto = [items objectAtIndex:0];
                 
                 
-                NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+                NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:account];
                 if (directoryID) {
                 if (directoryID) {
                     
                     
                     NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
                     NSString *autoUploadFileName = [[NCManageDatabase sharedInstance] getAccountAutoUploadFileName];
@@ -859,10 +859,10 @@
                 serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                 serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                 
                 
                 if (itemDto.isDirectory) {
                 if (itemDto.isDirectory) {
-                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName]];
+                    (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:_metadataNet.account];
                 }
                 }
                 
                 
-                directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+                directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:_metadataNet.account];
                 
                 
                 isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:_metadataNet.account];
                 isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:_metadataNet.account];
                 
                 
@@ -1014,10 +1014,10 @@
                     serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                     serverUrl = [CCUtility stringAppendServerUrl:[_activeUrl stringByAppendingString:k_webDAV] addFileName:serverPath];
                     
                     
                     if (itemDto.isDirectory) {
                     if (itemDto.isDirectory) {
-                        (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName]];
+                        (void)[[NCManageDatabase sharedInstance] addDirectoryWithEncrypted:itemDto.isEncrypted favorite:itemDto.isFavorite fileID:itemDto.ocId permissions:itemDto.permissions serverUrl:[NSString stringWithFormat:@"%@/%@", serverUrl, fileName] account:account];
                     }
                     }
                     
                     
-                    directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+                    directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:account];
                     
                     
                     isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:account];
                     isFolderEncrypted = [CCUtility isFolderEncrypted:serverUrl account:account];
                     
                     

+ 2 - 2
iOSClient/Offline/NCOffline.swift

@@ -327,7 +327,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
             actionSheet = ActionSheet(items: items) { sheet, item in
             actionSheet = ActionSheet(items: items) { sheet, item in
                 if item.value as? Int == 0 {
                 if item.value as? Int == 0 {
                     if metadata.directory {
                     if metadata.directory {
-                        NCManageDatabase.sharedInstance.setDirectory(serverUrl: CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName)!, offline: false)
+                        NCManageDatabase.sharedInstance.setDirectory(serverUrl: CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName)!, offline: false, account: self.appDelegate.activeAccount)
                     } else {
                     } else {
                         NCManageDatabase.sharedInstance.setLocalFile(fileID: metadata.fileID, offline: false)
                         NCManageDatabase.sharedInstance.setLocalFile(fileID: metadata.fileID, offline: false)
                     }
                     }
@@ -648,7 +648,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
     private func performSegueDirectoryWithControlPasscode(controlPasscode: Bool) {
     private func performSegueDirectoryWithControlPasscode(controlPasscode: Bool) {
         
         
         let serverUrlPush = CCUtility.stringAppendServerUrl(metadataPush!.serverUrl, addFileName: metadataPush!.fileName)
         let serverUrlPush = CCUtility.stringAppendServerUrl(metadataPush!.serverUrl, addFileName: metadataPush!.fileName)
-        guard let directoryIDPush = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlPush) else {
+        guard let directoryIDPush = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlPush, account: appDelegate.activeAccount) else {
             return
             return
         }
         }
         guard let directoryPush = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "directoryID == %@", directoryIDPush))  else {
         guard let directoryPush = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "directoryID == %@", directoryIDPush))  else {

+ 3 - 3
iOSClient/Select/NCSelect.swift

@@ -484,7 +484,7 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
             self.metadataFolder = metadataFolder
             self.metadataFolder = metadataFolder
             
             
             // Update directory etag
             // Update directory etag
-            NCManageDatabase.sharedInstance.setDirectory(serverUrl: self.serverUrl, serverUrlTo: nil, etag: metadataFolder?.etag, fileID: metadataFolder?.fileID, encrypted: metadataFolder!.e2eEncrypted)
+            NCManageDatabase.sharedInstance.setDirectory(serverUrl: self.serverUrl, serverUrlTo: nil, etag: metadataFolder?.etag, fileID: metadataFolder?.fileID, encrypted: metadataFolder!.e2eEncrypted, account: self.appDelegate.activeAccount)
             NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "directoryID == %@ AND (status == %d OR status == %d)", directoryID!, k_metadataStatusNormal, k_metadataStatusHide))
             NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "directoryID == %@ AND (status == %d OR status == %d)", directoryID!, k_metadataStatusNormal, k_metadataStatusHide))
             NCManageDatabase.sharedInstance.setDateReadDirectory(serverUrl: self.serverUrl, account: self.appDelegate.activeAccount)
             NCManageDatabase.sharedInstance.setDateReadDirectory(serverUrl: self.serverUrl, account: self.appDelegate.activeAccount)
             
             
@@ -520,7 +520,7 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
         if directoryID == "" {
         if directoryID == "" {
             
             
             serverUrl = CCUtility.getHomeServerUrlActiveUrl(appDelegate.activeUrl)
             serverUrl = CCUtility.getHomeServerUrlActiveUrl(appDelegate.activeUrl)
-            directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl) ?? ""
+            directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl, account: appDelegate.activeAccount) ?? ""
         }
         }
         
         
         if includeDirectoryE2EEncryption {
         if includeDirectoryE2EEncryption {
@@ -680,7 +680,7 @@ class NCSelect: UIViewController ,UICollectionViewDataSource, UICollectionViewDe
             guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName) else {
             guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadata.serverUrl, addFileName: metadata.fileName) else {
                 return
                 return
             }
             }
-            guard let directoryIDPush = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlPush) else {
+            guard let directoryIDPush = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlPush, account: appDelegate.activeAccount) else {
                 return
                 return
             }
             }
             
             

+ 2 - 2
iOSClient/Settings/CCSettings.m

@@ -518,7 +518,7 @@
             if (aViewController.fromType == CCBKPasscodeFromSettingsPasscode) {
             if (aViewController.fromType == CCBKPasscodeFromSettingsPasscode) {
                 
                 
                 [CCUtility setBlockCode:@""];
                 [CCUtility setBlockCode:@""];
-                [[NCManageDatabase sharedInstance] setAllDirectoryUnLock];
+                [[NCManageDatabase sharedInstance] setAllDirectoryUnLockWithAccount:appDelegate.activeAccount];
                 [appDelegate.activeMain.tableView reloadData];
                 [appDelegate.activeMain.tableView reloadData];
             }
             }
             
             
@@ -527,7 +527,7 @@
                 
                 
                 // disable passcode
                 // disable passcode
                 [CCUtility setBlockCode:@""];
                 [CCUtility setBlockCode:@""];
-                [[NCManageDatabase sharedInstance] setAllDirectoryUnLock];
+                [[NCManageDatabase sharedInstance] setAllDirectoryUnLockWithAccount:appDelegate.activeAccount];
                 [appDelegate.activeMain.tableView reloadData];
                 [appDelegate.activeMain.tableView reloadData];
                 
                 
                 [CCUtility setSimplyBlockCode:![CCUtility getSimplyBlockCode]];
                 [CCUtility setSimplyBlockCode:![CCUtility getSimplyBlockCode]];

+ 4 - 4
iOSClient/Shares/NCShares.m

@@ -219,7 +219,7 @@
     
     
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
     
     
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
         if (directoryID)
         if (directoryID)
             metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName = %@", directoryID, table.fileName]];
             metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName = %@", directoryID, table.fileName]];
     }
     }
@@ -234,7 +234,7 @@
         
         
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
         
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
         if (directoryID) {
         if (directoryID) {
             tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
             tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
         
         
@@ -293,7 +293,7 @@
     
     
     tableShare *table = [_dataSource objectAtIndex:indexPath.row];
     tableShare *table = [_dataSource objectAtIndex:indexPath.row];
     
     
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
     if (!directoryID)
     if (!directoryID)
         return cell;
         return cell;
     
     
@@ -351,7 +351,7 @@
 
 
     if (table.serverUrl) {
     if (table.serverUrl) {
         
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl];
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
         if (directoryID)
         if (directoryID)
             metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
             metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
 
 

+ 2 - 2
iOSClient/Synchronize/CCSynchronize.m

@@ -64,7 +64,7 @@
     CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:appDelegate.activeAccount];
     CCMetadataNet *metadataNet = [[CCMetadataNet alloc] initWithAccount:appDelegate.activeAccount];
     
     
     metadataNet.action = actionReadFolder;
     metadataNet.action = actionReadFolder;
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrl account:appDelegate.activeAccount];
     if (!directoryID) return;
     if (!directoryID) return;
     
     
     metadataNet.depth = @"1";
     metadataNet.depth = @"1";
@@ -108,7 +108,7 @@
     
     
     // Add metadata and update etag Directory
     // Add metadata and update etag Directory
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder];
     (void)[[NCManageDatabase sharedInstance] addMetadata:metadataFolder];
-    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted];
+    [[NCManageDatabase sharedInstance] setDirectoryWithServerUrl:metadataNet.serverUrl serverUrlTo:nil etag:metadataFolder.etag fileID:metadataFolder.fileID encrypted:metadataFolder.e2eEncrypted account:appDelegate.activeAccount];
 
 
     // reload folder ../ *
     // reload folder ../ *
     [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:metadataFolder.serverUrl fileID:nil action:k_action_NULL];
     [[NCMainCommon sharedInstance] reloadDatasourceWithServerUrl:metadataFolder.serverUrl fileID:nil action:k_action_NULL];

+ 1 - 1
iOSClient/UploadFromOtherUpp/CCUploadFromOtherUpp.m

@@ -173,7 +173,7 @@
 
 
 -(void)upload
 -(void)upload
 {
 {
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlLocal];
+    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:serverUrlLocal account:appDelegate.activeAccount];
     NSString *fileName = [[NCUtility sharedInstance] createFileName:appDelegate.fileNameUpload directoryID:directoryID];
     NSString *fileName = [[NCUtility sharedInstance] createFileName:appDelegate.fileNameUpload directoryID:directoryID];
     NSString *fileID = [directoryID stringByAppendingString:appDelegate.fileNameUpload];
     NSString *fileID = [directoryID stringByAppendingString:appDelegate.fileNameUpload];