Marino Faggiana 6 лет назад
Родитель
Сommit
da30719247

+ 17 - 11
PickerFileProvider/FileProviderExtension+Actions.swift

@@ -76,9 +76,10 @@ extension FileProviderExtension {
                 queueTradeSafe.sync(flags: .barrier) {
                     fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
                     fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-                    self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
                 }
-                
+
+                self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+
                 completionHandler(item, nil)
                 
             } else {
@@ -125,9 +126,10 @@ extension FileProviderExtension {
         queueTradeSafe.sync(flags: .barrier) {
             fileProviderSignalDeleteContainerItemIdentifier[itemIdentifier] = itemIdentifier
             fileProviderSignalDeleteWorkingSetItemIdentifier[itemIdentifier] = itemIdentifier
-            self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
         }
-        
+
+        self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
+
         completionHandler(nil)
     }
     
@@ -192,9 +194,10 @@ extension FileProviderExtension {
             queueTradeSafe.sync(flags: .barrier) {
                 fileProviderSignalUpdateContainerItem[itemIdentifier] = item
                 fileProviderSignalUpdateWorkingSetItem[itemIdentifier] = item
-                self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
             }
-            
+
+            self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
+
             completionHandler(item, nil)
             
         }, failure: { (errorMessage, errorCode) in
@@ -264,9 +267,10 @@ extension FileProviderExtension {
             queueTradeSafe.sync(flags: .barrier) {
                 fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
                 fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-                self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
             }
-            
+
+            self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+
             completionHandler(item, nil)
             
         }, failure: { (errorMessage, errorCode) in
@@ -311,9 +315,10 @@ extension FileProviderExtension {
         queueTradeSafe.sync(flags: .barrier) {
             fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
             fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-            signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
         }
-        
+
+        signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+
         completionHandler(item, nil)
         
         if (favorite == true && metadata.favorite == false) || (favorite == false && metadata.favorite == true) {
@@ -344,9 +349,10 @@ extension FileProviderExtension {
         queueTradeSafe.sync(flags: .barrier) {
             fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
             fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-            signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
         }
         
+        signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+        
         completionHandler(item, nil)
     }
     

+ 7 - 5
PickerFileProvider/FileProviderExtension+Network.swift

@@ -42,11 +42,12 @@ extension FileProviderExtension {
         }, failure: { (errorMessage, errorCode) in
             
             // remove itemIdentifier on fileProviderSignalDeleteItemIdentifier
-            queueTradeSafe.async(flags: .barrier) {
+            queueTradeSafe.sync(flags: .barrier) {
                 fileProviderSignalDeleteContainerItemIdentifier.removeValue(forKey: itemIdentifier)
                 fileProviderSignalDeleteWorkingSetItemIdentifier.removeValue(forKey: itemIdentifier)
-                self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
             }
+            
+            self.signalEnumerator(for: [parentItemIdentifier, .workingSet])
         })
     }
     
@@ -107,12 +108,12 @@ extension FileProviderExtension {
 
             let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: self.providerData)
             
-            queueTradeSafe.async(flags: .barrier) {
+            queueTradeSafe.sync(flags: .barrier) {
                 fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
                 fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-                self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
             }
             
+            self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
         })
     }
     
@@ -140,8 +141,9 @@ extension FileProviderExtension {
         queueTradeSafe.sync(flags: .barrier) {
             fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
             fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-            self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
         }
+        
+        self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
     }
     
     func uploadFileSuccessFailure(_ fileName: String!, fileID: String!, assetLocalIdentifier: String!, serverUrl: String!, selector: String!, selectorPost: String!, errorMessage: String!, errorCode: Int) {