Marino Faggiana 6 years ago
parent
commit
7b24221cca

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

@@ -129,6 +129,10 @@ extension FileProviderExtension {
             return
         }
         
+        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(metadata.serverUrl, account: metadata.account) else {
+            return
+        }
+        
         guard let parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata) else {
             return
         }
@@ -138,7 +142,7 @@ extension FileProviderExtension {
             
             // Remove temp fileID = directoryID + fileName
             providerData.queueTradeSafe.sync(flags: .barrier) {
-                let itemIdentifier = NSFileProviderItemIdentifier(metadata.directoryID+fileName)
+                let itemIdentifier = NSFileProviderItemIdentifier(directoryID+fileName)
                 self.providerData.fileProviderSignalDeleteContainerItemIdentifier[itemIdentifier] = itemIdentifier
                 self.providerData.fileProviderSignalDeleteWorkingSetItemIdentifier[itemIdentifier] = itemIdentifier
             }

+ 7 - 2
File Provider Extension/FileProviderExtension.swift

@@ -219,7 +219,12 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             completionHandler(NSFileProviderError(.noSuchItem))
             return
         }
-            
+        
+        guard let directoryID = NCManageDatabase.sharedInstance.getDirectoryID(metadata.serverUrl, account: metadata.account) else {
+            completionHandler(NSFileProviderError(.noSuchItem))
+            return
+        }
+        
         // Error ? reUpload when touch
         if metadata.status == k_metadataStatusUploadError && metadata.session == k_upload_session_extension {
             
@@ -232,7 +237,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
         }
             
         // is Upload [Office 365 !!!]
-        if metadata.fileID.contains(metadata.directoryID + metadata.fileName) {
+        if metadata.fileID.contains(directoryID + metadata.fileName) {
             completionHandler(nil)
             return
         }

+ 6 - 3
iOSClient/Networking/CCNetworking.m

@@ -752,7 +752,8 @@
                     
                     // Change Metadata with new fileID, fileName, fileNameView
                     [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", metadata.fileID]];
-                    metadata.fileID = [metadata.directoryID stringByAppendingString:metadata.fileName];
+                    NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:metadata.serverUrl account:metadata.account];
+                    metadata.fileID = [directoryID stringByAppendingString:metadata.fileName];
                 }
                 
                 tableMetadata *metadataForUpload = [[NCManageDatabase sharedInstance] addMetadata:[CCUtility insertFileSystemInMetadata:metadata]];
@@ -873,7 +874,8 @@
         }
         
         // if new file upload [directoryID + fileName] create a new encrypted filename
-        if ([metadata.fileID isEqualToString:[metadata.directoryID stringByAppendingString:metadata.fileNameView]]) {
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:metadata.serverUrl account:metadata.account];
+        if ([metadata.fileID isEqualToString:[directoryID stringByAppendingString:metadata.fileNameView]]) {
             fileNameIdentifier = [CCUtility generateRandomIdentifier];
         } else {
             fileNameIdentifier = metadata.fileName;
@@ -1177,7 +1179,8 @@
         NSLog(@"[LOG] Insert new upload : %@ - fileID : %@", metadata.fileName, fileID);
 
         // remove tempFileID and adjust the directory provider storage
-        if ([tempFileID isEqualToString:[metadata.directoryID stringByAppendingString:metadata.fileNameView]]) {
+        NSString *directoryID = [[NCManageDatabase sharedInstance] getDirectoryID:metadata.serverUrl account:metadata.account];
+        if ([tempFileID isEqualToString:[directoryID stringByAppendingString:metadata.fileNameView]]) {
             
             [[NCManageDatabase sharedInstance] deleteMetadataWithPredicate:[NSPredicate predicateWithFormat:@"fileID == %@", tempFileID]];