Marino Faggiana 6 tahun lalu
induk
melakukan
00cdfd4783

+ 12 - 6
PickerFileProvider/FileProviderExtension+Network.swift

@@ -98,13 +98,19 @@ extension FileProviderExtension {
             
         }, failure: { (errorMessage, errorCode) in
             
-            // remove itemIdentifier on fileProviderSignalDeleteItemIdentifier
-            self.providerData.queueTradeSafe.sync(flags: .barrier) {
-                self.providerData.fileProviderSignalDeleteContainerItemIdentifier.removeValue(forKey: itemIdentifier)
-                self.providerData.fileProviderSignalDeleteWorkingSetItemIdentifier.removeValue(forKey: itemIdentifier)
-            }
+            // file not found ? delete
+            if errorCode == 404 {
+                
+                NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID == %@", metadata.fileID), clearDateReadDirectoryID: nil)
             
-            self.providerData.signalEnumerator(for: [parentItemIdentifier, .workingSet])
+                // remove itemIdentifier on fileProviderSignalDeleteItemIdentifier
+                self.providerData.queueTradeSafe.sync(flags: .barrier) {
+                    self.providerData.fileProviderSignalDeleteContainerItemIdentifier.removeValue(forKey: itemIdentifier)
+                    self.providerData.fileProviderSignalDeleteWorkingSetItemIdentifier.removeValue(forKey: itemIdentifier)
+                }
+            
+                self.providerData.signalEnumerator(for: [parentItemIdentifier, .workingSet])
+            }
         })
     }
     

+ 12 - 2
PickerFileProvider/FileProviderExtension.swift

@@ -274,9 +274,19 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
                 return
             }
             
-            // Error ?
-            if metadata.status == k_metadataStatusUploadError {
+            // Error ? reUpload when touch
+            if metadata.status == k_metadataStatusUploadError && metadata.session == k_upload_session_extension {
                 
+                if metadata.sessionSelectorPost == providerData.selectorPostImportDocument {
+                    
+                    metadata.status = Int(k_metadataStatusWaitUpload)
+                    _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
+                    
+                    self.uploadFileImportDocument()
+                }
+                
+                completionHandler(nil)
+                return
             }
             
             // is Upload [Office 365 !!!]

+ 1 - 1
PickerFileProvider/FileProviderItem.swift

@@ -112,7 +112,7 @@ class FileProviderItem: NSObject, NSFileProviderItem {
             }
             
             // Upload
-            if metadata.sessionSelectorPost == providerData.selectorPostImportDocument || metadata.sessionSelectorPost == providerData.selectorPostItemChanged {
+            if ((metadata.sessionSelectorPost == providerData.selectorPostImportDocument || metadata.sessionSelectorPost == providerData.selectorPostItemChanged) && metadata.status != k_metadataStatusUploadError) {
                 isUpload = true
                 self.isDownloaded = true
                 self.isMostRecentVersionDownloaded = true

+ 3 - 1
iOSClient/AppDelegate.m

@@ -1396,7 +1396,9 @@
 }
 
 - (void)loadAutoDownloadUpload
-{    
+{
+    return;
+    
     tableMetadata *metadataForUpload, *metadataForDownload;
     NSInteger counterNewDownloadUpload = 0;