Marino Faggiana 6 jaren geleden
bovenliggende
commit
4977bfb666

+ 2 - 2
File Provider Extension/FileProviderEnumerator.swift

@@ -41,7 +41,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                 
             let metadata = providerData.getTableMetadataFromItemIdentifier(enumeratedItemIdentifier)
             if metadata != nil  {
-                if let directorySource = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND directoryID == %@", metadata!.account, metadata!.serverUrl))  {
+                if let directorySource = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata!.account, metadata!.serverUrl))  {
                     serverUrl = directorySource.serverUrl + "/" + metadata!.fileName
                 }
             }
@@ -171,7 +171,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                             }
                         }
                         
-                        metadatasFromDB = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND directoryID == %@", self.providerData.account, serverUrl), sorted: "fileName", ascending: true)
+                        metadatasFromDB = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", self.providerData.account, serverUrl), sorted: "fileName", ascending: true)
                         
                         self.selectFirstPageItems(metadatasFromDB, observer: observer)
                         

+ 4 - 1
File Provider Extension/FileProviderExtension+Network.swift

@@ -200,7 +200,10 @@ extension FileProviderExtension {
         // Is itemIdentifier = directoryID+fileName [Apple Works and ... ?]
         if itemIdentifier.rawValue.contains(fileName) && providerData.fileExists(atPath: CCUtility.getDirectoryProviderStorage()+"/"+itemIdentifier.rawValue) {
             let directoryID = itemIdentifier.rawValue.replacingOccurrences(of: fileName, with: "")
-            guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "directoryID == %@ AND fileName == %@", directoryID, fileName)) else {
+            guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(directoryID) else {
+                return
+            }
+            guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@ AND fileName == %@", providerData.account, serverUrl, fileName)) else {
                 return
             }
             itemIdentifierForUpload = providerData.getItemIdentifier(metadata: metadata)

+ 4 - 4
iOSClient/AppDelegate.m

@@ -1165,12 +1165,12 @@
         return;
     
     // Detect E2EE
-    NSString *saveDirectoryID = @"";
+    NSString *saveserverUrl = @"";
     NSArray *metadatasForE2EE = [[NCManageDatabase sharedInstance] getMetadatasWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND status != %d", self.activeAccount, k_metadataStatusNormal] sorted:nil ascending:NO];
     for (tableMetadata *metadata in metadatasForE2EE) {
-        if (![saveDirectoryID isEqualToString:metadata.directoryID]) {
-            saveDirectoryID = metadata.directoryID;
-            if ([[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND e2eEncrypted == 1", metadata.directoryID]] != nil) {
+        if (![saveserverUrl isEqualToString:metadata.serverUrl]) {
+            saveserverUrl = metadata.serverUrl;
+            if ([[NCManageDatabase sharedInstance] getTableDirectoryWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@ AND e2eEncrypted == 1", metadata.account, metadata.serverUrl]] != nil) {
                 isE2EE = true;
                 break;
             }

+ 2 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -1730,13 +1730,13 @@ class NCManageDatabase: NSObject {
         setDateReadDirectory(serverUrl: serverUrl, account: account)
     }
     
-    @objc func setMetadataFileNameView(directoryID: String, fileName: String, newFileNameView: String) {
+    @objc func setMetadataFileNameView(serverUrl: String, fileName: String, newFileNameView: String, account: String) {
         
         let realm = try! Realm()
 
         realm.beginWrite()
 
-        guard let result = realm.objects(tableMetadata.self).filter("directoryID == %@ AND fileName == %@", directoryID, fileName).first else {
+        guard let result = realm.objects(tableMetadata.self).filter("account == %@ AND serverUrl == %@ AND fileName == %@", account, serverUrl, fileName).first else {
             realm.cancelWrite()
             return
         }

+ 1 - 1
iOSClient/Main/CCMain.m

@@ -1589,7 +1589,7 @@
                     [appDelegate messageNotification:@"_error_e2ee_" description:@"_e2e_error_send_metadata_" visible:YES delay:k_dismissAfterSecond type:TWMessageBarMessageTypeError errorCode:error.code];
                 });
             } else {
-                [[NCManageDatabase sharedInstance] setMetadataFileNameViewWithDirectoryID:metadata.directoryID fileName:metadata.fileName newFileNameView:fileName];
+                [[NCManageDatabase sharedInstance] setMetadataFileNameViewWithServerUrl:metadata.serverUrl fileName:metadata.fileName newFileNameView:fileName account:appDelegate.activeAccount];
                 
                 // Move file system
                 NSString *atPath = [NSString stringWithFormat:@"%@/%@", [CCUtility getDirectoryProviderStorageFileID:metadata.fileID], metadata.fileNameView];

+ 6 - 7
iOSClient/Offline/NCOffline.swift

@@ -29,7 +29,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
     @IBOutlet fileprivate weak var collectionView: UICollectionView!
 
     var titleCurrentFolder = NSLocalizedString("_manage_file_offline_", comment: "")
-    var directoryID = ""
+    var serverUrl = ""
     
     private let appDelegate = UIApplication.shared.delegate as! AppDelegate
    
@@ -454,7 +454,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
         var fileIDs = [String]()
         sectionDatasource = CCSectionDataSourceMetadata()
 
-        if directoryID == "" {
+        if serverUrl == "" {
         
             if let directories = NCManageDatabase.sharedInstance.getTablesDirectory(predicate: NSPredicate(format: "account == %@ AND offline == true", appDelegate.activeAccount), sorted: "serverUrl", ascending: true) {
                 for directory: tableDirectory in directories {
@@ -475,7 +475,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
             
         } else {
         
-            if let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND directoryID == %@", appDelegate.activeAccount, directoryID), sorted: datasourceSorted, ascending: datasourceAscending)  {
+            if let metadatas = NCManageDatabase.sharedInstance.getMetadatas(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", appDelegate.activeAccount, serverUrl), sorted: datasourceSorted, ascending: datasourceAscending)  {
                 
                 sectionDatasource = CCSectionMetadata.creataDataSourseSectionMetadata(metadatas, listProgressMetadata: nil, groupByField: datasourceGroupBy, filterFileID: nil, filterTypeFileImage: false, filterTypeFileVideo: false, activeAccount: appDelegate.activeAccount)
             }
@@ -647,11 +647,10 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
     
     private func performSegueDirectoryWithControlPasscode(controlPasscode: Bool) {
         
-        let serverUrlPush = CCUtility.stringAppendServerUrl(metadataPush!.serverUrl, addFileName: metadataPush!.fileName)
-        guard let directoryIDPush = NCManageDatabase.sharedInstance.getDirectoryID(serverUrlPush, account: appDelegate.activeAccount) else {
+        guard let serverUrlPush = CCUtility.stringAppendServerUrl(metadataPush!.serverUrl, addFileName: metadataPush!.fileName) else {
             return
         }
-        guard let directoryPush = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "directoryID == %@", directoryIDPush))  else {
+        guard let directoryPush = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", appDelegate.activeAccount, serverUrlPush))  else {
             return
         }
         
@@ -686,7 +685,7 @@ class NCOffline: UIViewController ,UICollectionViewDataSource, UICollectionViewD
         
         let ncOffline:NCOffline = UIStoryboard(name: "NCOffline", bundle: nil).instantiateInitialViewController() as! NCOffline
         
-        ncOffline.directoryID = directoryIDPush
+        ncOffline.serverUrl = serverUrlPush
         ncOffline.titleCurrentFolder = metadataPush!.fileNameView
         
         self.navigationController?.pushViewController(ncOffline, animated: true)

+ 5 - 20
iOSClient/Shares/NCShares.m

@@ -218,10 +218,7 @@
     if (indexPath.row+1 <= _dataSource.count) {
     
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
-    
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
-        if (directoryID)
-            metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName = %@", directoryID, table.fileName]];
+        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@ AND fileName = %@", appDelegate.activeAccount, table.serverUrl, table.fileName]];
     }
         
     if (metadata) return YES;
@@ -234,12 +231,9 @@
         
         tableShare *table = [_dataSource objectAtIndex:indexPath.row];
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
-        if (directoryID) {
-            tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
+        tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@ AND fileName == %@", appDelegate.activeAccount, table.serverUrl, table.fileName]];
         
-            [self removeShares:metadata tableShare:table];
-        }
+        [self removeShares:metadata tableShare:table];
     }
 }
 
@@ -293,12 +287,7 @@
     
     tableShare *table = [_dataSource objectAtIndex:indexPath.row];
     
-    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
-    if (!directoryID)
-        return cell;
-    
-    if (directoryID.length > 0)
-         metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
+    metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@ AND fileName == %@", appDelegate.activeAccount, table.serverUrl, table.fileName]];
     
     if (metadata) {
         
@@ -351,12 +340,8 @@
 
     if (table.serverUrl) {
         
-        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:table.serverUrl account:appDelegate.activeAccount];
-        if (directoryID)
-            metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"directoryID == %@ AND fileName == %@", directoryID, table.fileName]];
-
+        metadata = [[NCManageDatabase sharedInstance] getMetadataWithPredicate:[NSPredicate predicateWithFormat:@"account == %@ AND serverUrl == %@ AND fileName == %@", appDelegate.activeAccount, table.serverUrl, table.fileName]];
         if (metadata) {
-        
             [appDelegate.activeMain openWindowShare:metadata];
         }
     }