marinofaggiana 4 years ago
parent
commit
9e830d9212

+ 12 - 7
File Provider Extension/FileProviderExtension.swift

@@ -208,7 +208,7 @@ class FileProviderExtension: NSFileProviderExtension {
             return
         }
         
-        guard let metadata = fileProviderUtility.sharedInstance.getTableMetadataFromItemIdentifier(identifier) else {
+        guard var metadata = fileProviderUtility.sharedInstance.getTableMetadataFromItemIdentifier(identifier) else {
             completionHandler(NSFileProviderError(.noSuchItem))
             return
         }
@@ -223,8 +223,9 @@ class FileProviderExtension: NSFileProviderExtension {
         
         NCCommunication.shared.download(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath,  taskHandler: { (task) in
             
+            metadata.status = Int(k_metadataStatusDownloading)
+            if let result = NCManageDatabase.sharedInstance.addMetadata(metadata) { metadata = result }
             self.outstandingSessionTasks[url] = task
-            
             NSFileProviderManager.default.register(task, forItemWithIdentifier: NSFileProviderItemIdentifier(identifier.rawValue)) { (error) in }
             
         }, progressHandler: { (progress) in
@@ -236,16 +237,20 @@ class FileProviderExtension: NSFileProviderExtension {
             if errorCode == 0  {
                 
                 metadata.status = Int(k_metadataStatusNormal)
-                guard let metadataDownloaded = NCManageDatabase.sharedInstance.addMetadata(metadata) else { return }
-                _ = NCManageDatabase.sharedInstance.addLocalFile(metadata: metadataDownloaded)
+                metadata.date = date ?? NSDate()
+                metadata.etag = etag ?? ""
+                
+                NCManageDatabase.sharedInstance.addLocalFile(metadata: metadata)
+                if let result = NCManageDatabase.sharedInstance.addMetadata(metadata) { metadata = result }
                 
                 completionHandler(nil)
                 
             } else {
                 
-                // Error
-                NCManageDatabase.sharedInstance.setMetadataSession("", sessionError: "", sessionSelector: "", sessionTaskIdentifier: 0, status: Int(k_metadataStatusDownloadError), predicate: NSPredicate(format: "ocId == %@", metadata.ocId))
-                
+                metadata.status = Int(k_metadataStatusDownloadError)
+                metadata.sessionError = errorDescription ?? ""
+                NCManageDatabase.sharedInstance.addMetadata(metadata)
+
                 completionHandler(NSFileProviderError(.noSuchItem))
             }
         }

+ 3 - 2
iOSClient/Favorites/CCFavorites.m

@@ -599,8 +599,9 @@
     
     self.metadata = [self setSelfMetadataFromIndexPath:indexPath];
     
-    if (self.metadata.status != k_metadataStatusNormal)
-    return;
+    if (self.metadata.status != k_metadataStatusNormal && self.metadata.status != k_metadataStatusDownloadError) {
+        return;
+    }
     
     // File
     if (self.metadata.directory == NO) {

+ 2 - 1
iOSClient/Main/CCMain.m

@@ -2671,8 +2671,9 @@
         return;
     }
     
-    if (self.metadata.status != k_metadataStatusNormal)
+    if (self.metadata.status != k_metadataStatusNormal && self.metadata.status != k_metadataStatusDownloadError) {
         return;
+    }
     
     // file
     if (self.metadata.directory == NO) {