marinofaggiana 4 gadi atpakaļ
vecāks
revīzija
1377731170

+ 11 - 10
File Provider Extension/FileProviderExtension.swift

@@ -227,16 +227,13 @@ class FileProviderExtension: NSFileProviderExtension {
         let serverUrlFileName = metadata.serverUrl + "/" + metadata.fileName
         let fileNameLocalPath = CCUtility.getDirectoryProviderStorageOcId(metadata.ocId, fileNameView: metadata.fileName)!
         
+        // Update status
+        NCManageDatabase.sharedInstance.setMetadataStatus(ocId: metadata.ocId, status: Int(k_metadataStatusDownloading))
+        fileProviderData.sharedInstance.signalEnumerator(ocId: metadata.ocId, update: true)
+        
         NCCommunication.shared.download(serverUrlFileName: serverUrlFileName, fileNameLocalPath: fileNameLocalPath,  requestHandler: { (request) in
             
-            if var metadata = fileProviderUtility.sharedInstance.getTableMetadataFromItemIdentifier(identifier) {
-                metadata = tableMetadata.init(value: metadata)
-                metadata.status = Int(k_metadataStatusDownloading)
-                NCManageDatabase.sharedInstance.addMetadata(metadata)
-            }
-            
             downloadRequest = request
-            self.outstandingSessionTasks[url] = task
             
         }, progressHandler: { (progress) in
             
@@ -244,8 +241,6 @@ class FileProviderExtension: NSFileProviderExtension {
                 task = downloadRequest?.task
                 self.outstandingSessionTasks[url] = task
                 NSFileProviderManager.default.register(task!, forItemWithIdentifier: NSFileProviderItemIdentifier(identifier.rawValue)) { (error) in }
-                
-                fileProviderData.sharedInstance.signalEnumerator(ocId: metadata.ocId, delete: true, update: true)
             }
             
         }) { (account, etag, date, length, error, errorCode, errorDescription) in
@@ -268,6 +263,12 @@ class FileProviderExtension: NSFileProviderExtension {
                 
                 completionHandler(nil)
                 
+            } else if errorCode == 200 {
+                
+                NCManageDatabase.sharedInstance.setMetadataStatus(ocId: metadata.ocId, status: Int(k_metadataStatusNormal))
+                
+                completionHandler(nil)
+
             } else {
                 
                 metadata.status = Int(k_metadataStatusDownloadError)
@@ -277,7 +278,7 @@ class FileProviderExtension: NSFileProviderExtension {
                 completionHandler(NSFileProviderError(.noSuchItem))
             }
             
-            fileProviderData.sharedInstance.signalEnumerator(ocId: metadata.ocId, delete: true, update: true)
+            fileProviderData.sharedInstance.signalEnumerator(ocId: metadata.ocId, update: true)
         }
     }
     

+ 1 - 0
iOSClient/Data/NCManageDatabase.swift

@@ -1919,6 +1919,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
+    @discardableResult
     func setMetadataStatus(ocId: String, status: Int) -> tableMetadata? {
         
         let realm = try! Realm()