浏览代码

fix getMetadataInSessionFromFileName

Marino Faggiana 7 年之前
父节点
当前提交
ac9e51af8c

+ 7 - 5
PickerFileProvider/FileProvider.swift

@@ -358,11 +358,6 @@ class FileProvider: NSFileProviderExtension {
             assert(pathComponents.count > 2)
             let identifier = NSFileProviderItemIdentifier(pathComponents[pathComponents.count - 2])
 
-            // get item
-            guard let item = try? item(for: identifier) else {
-                return
-            }
-            
             if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", account, identifier.rawValue))  {
                 
                 guard let serverUrl = NCManageDatabase.sharedInstance.getServerUrl(metadata.directoryID) else {
@@ -899,6 +894,13 @@ class FileProvider: NSFileProviderExtension {
                 }
             }
         }
+        
+        DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
+            // get item
+            guard let item = try? self.item(for: identifier) else {
+                return
+            }
+        }
     }
     
     func refreshEnumerator(serverUrl: String) {

+ 2 - 2
iOSClient/Database/NCManageDatabase.swift

@@ -1851,7 +1851,7 @@ class NCManageDatabase: NSObject {
         }
     }
     
-    @objc func getMetadataFromFileName(_ fileName: String, directoryID: String) -> tableMetadata? {
+    @objc func getMetadataInSessionFromFileName(_ fileName: String, directoryID: String) -> tableMetadata? {
         
         guard let tableAccount = self.getAccountActive() else {
             return nil
@@ -1860,7 +1860,7 @@ class NCManageDatabase: NSObject {
         let realm = try! Realm()
         realm.refresh()
         
-        guard let result = realm.objects(tableMetadata.self).filter("account = %@ AND directoryID = %@ AND fileName = %@", tableAccount.account, directoryID, fileName).first else {
+        guard let result = realm.objects(tableMetadata.self).filter("account = %@ AND directoryID = %@ AND fileName = %@ AND session != ''", tableAccount.account, directoryID, fileName).first else {
             return nil
         }
         

+ 2 - 2
iOSClient/Networking/CCNetworking.m

@@ -686,7 +686,7 @@
     
     float progress = (float) totalBytesWritten / (float)totalBytesExpectedToWrite;
     
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataFromFileName:fileName directoryID:directoryID];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName directoryID:directoryID];
     
     if (metadata) {
         
@@ -1155,7 +1155,7 @@
     
     float progress = (float) totalBytesSent / (float)totalBytesExpectedToSend;
 
-    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataFromFileName:fileName directoryID:directoryID];
+    tableMetadata *metadata = [[NCManageDatabase sharedInstance] getMetadataInSessionFromFileName:fileName directoryID:directoryID];
     
     if (metadata) {