Marino Faggiana 6 年之前
父节点
当前提交
81cc70f1b0

+ 9 - 0
PickerFileProvider/FileProvider.swift

@@ -539,6 +539,9 @@ class FileProvider: NSFileProviderExtension {
             return
         }
         
+        // clear list update items
+        listUpdateItems.removeAll()
+        
         var serverUrl = ""
         
         if parentItemIdentifier == .rootContainer {
@@ -595,6 +598,9 @@ class FileProvider: NSFileProviderExtension {
             return
         }
         
+        // clear list update items
+        listUpdateItems.removeAll()
+        
         guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", account, itemIdentifier.rawValue)) else {
             completionHandler(nil)
             return
@@ -661,6 +667,9 @@ class FileProvider: NSFileProviderExtension {
             return
         }
         
+        // clear list update items
+        listUpdateItems.removeAll()
+        
         // Add, Remove (nil)
         NCManageDatabase.sharedInstance.addTag(itemIdentifier.rawValue, tagIOS: tagData)
         

+ 4 - 0
PickerFileProvider/FileProviderEnumerator.swift

@@ -61,6 +61,9 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
 
         if #available(iOSApplicationExtension 11.0, *) {
             
+            // clear list update items
+            listUpdateItems.removeAll()
+            
             guard let serverUrl = serverUrl else {
                 observer.finishEnumerating(upTo: nil)
                 return
@@ -100,6 +103,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
                         observer.didEnumerate(items)
                     }
                 }
+                
                 if (items.count == self.recordForPage) {
                     let providerPage = NSFileProviderPage("1".data(using: .utf8)!)
                     observer.finishEnumerating(upTo: providerPage)

+ 4 - 1
PickerFileProvider/FileProviderEnumeratorFile.swift

@@ -39,7 +39,10 @@ class FileProviderEnumeratorFile: NSObject, NSFileProviderEnumerator {
         
         var items: [NSFileProviderItemProtocol] = []
 
-         guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", account, enumeratedItemIdentifier.rawValue)) else {
+        // clear list update items
+        listUpdateItems.removeAll()
+        
+        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", account, enumeratedItemIdentifier.rawValue)) else {
             observer.finishEnumerating(upTo: nil)
             return
         }

+ 3 - 0
PickerFileProvider/FileProviderEnumeratorWorkingSet.swift

@@ -39,6 +39,9 @@ class FileProviderEnumeratorWorkingSet: NSObject, NSFileProviderEnumerator {
         
         var items: [NSFileProviderItemProtocol] = []
         
+        // clear list update items
+        listUpdateItems.removeAll()
+        
         // Tag
         let tags = NCManageDatabase.sharedInstance.getTags(predicate: NSPredicate(format: "account = %@", account))
         for tag in tags {