Marino Faggiana 7 жил өмнө
parent
commit
e09fc15e98

+ 19 - 26
PickerFileProvider/FileProvider.swift

@@ -95,17 +95,27 @@ class FileProvider: NSFileProviderExtension, CCNetworkingDelegate {
         // TODO: mark file at <url> as needing an update in the model; kick off update process
         NSLog("Item changed at URL %@", url as NSURL)
         
-        guard let result = NCManageDatabase.sharedInstance.getAccountActive() else {
+        guard let fileID = CCUtility.getFileIDPicker() else {
+            self.stopProvidingItem(at: url)
+            return
+        }
+        
+        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", fileID)) else {
+            self.stopProvidingItem(at: url)
             return
         }
         
         let fileName = url.lastPathComponent
+        
+        if (fileName != metadata.fileName) {
+            self.stopProvidingItem(at: url)
+            return
+        }
+        
         let directoryUser = CCUtility.getDirectoryActiveUser(result.user, activeUrl: result.url)
         let uploadID = k_uploadSessionID + CCUtility.createRandomString(16)
         let destinationURLDirectoryUser = URL(string: "file://\(directoryUser!)/\(uploadID)".addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)!
-        var serverUrl : String?
-        var directoryID : String?
-
+        
         // copy sourceURL on directoryUser
         do {
             try FileManager.default.removeItem(at: destinationURLDirectoryUser)
@@ -120,29 +130,12 @@ class FileProvider: NSFileProviderExtension, CCNetworkingDelegate {
             return
         }
 
-        // Get serverUrl
-        if let fileID = CCUtility.getFileIDPicker() {
-            if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID == %@", fileID)) {
-                if metadata.fileName == fileName {
-                    serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID)
-                    directoryID = metadata.directoryID
-                }
-            }
-        }
-        if serverUrl == nil {
-            serverUrl = CCUtility.getHomeServerUrlActiveUrl(result.url)
-            directoryID = NCManageDatabase.sharedInstance.getDirectoryID(serverUrl)
-        }
-        
         // Prepare for send Metadata
-        if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileName == %@ AND directoryID == %@", fileName, directoryID!)) {
-        
-            metadata.fileID = uploadID
-            metadata.sessionID = uploadID
-            metadata.session = k_upload_session
-            metadata.sessionTaskIdentifier = Int(k_taskIdentifierWaitStart)
-            _ = NCManageDatabase.sharedInstance.updateMetadata(metadata)
-        }
+        metadata.fileID = uploadID
+        metadata.sessionID = uploadID
+        metadata.session = k_upload_session
+        metadata.sessionTaskIdentifier = Int(k_taskIdentifierWaitStart)
+        _ = NCManageDatabase.sharedInstance.updateMetadata(metadata)
         
         self.stopProvidingItem(at: url)
     }