Browse Source

roll back

Marino Faggiana 6 years ago
parent
commit
997dc10305
1 changed files with 30 additions and 32 deletions
  1. 30 32
      PickerFileProvider/FileProviderExtension+Network.swift

+ 30 - 32
PickerFileProvider/FileProviderExtension+Network.swift

@@ -123,11 +123,7 @@ extension FileProviderExtension {
         
         /* ONLY iOS 11*/
         guard #available(iOS 11, *) else { return }
-    
-        // Delete queue
-        NCManageDatabase.sharedInstance.deleteQueueUpload(assetLocalIdentifier: assetLocalIdentifier, selector: selector)
-
-        // Delete temp dirty metadata
+        
         if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "fileID = %@", assetLocalIdentifier)) {
             
             let parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata)
@@ -142,41 +138,43 @@ extension FileProviderExtension {
                 }
             }
         }
+        
         NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "fileID = %@", assetLocalIdentifier), clearDateReadDirectoryID: nil)
-
-        // Managed upload
         
         if errorCode == 0 {
             
-            guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", providerData.account, fileID)) else {
-                return
-            }
+            NCManageDatabase.sharedInstance.deleteQueueUpload(assetLocalIdentifier: assetLocalIdentifier, selector: selector)
             
-            // Rename directory file
-            if fileManager.fileExists(atPath: providerData.fileProviderStorageURL!.path + "/" + assetLocalIdentifier) {
-                let itemIdentifier = providerData.getItemIdentifier(metadata: metadata)
-                _ = moveFile(providerData.fileProviderStorageURL!.path + "/" + assetLocalIdentifier, toPath: providerData.fileProviderStorageURL!.path + "/" + itemIdentifier.rawValue)
-            }
+            if let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", providerData.account, fileID)) {
                 
-            NCManageDatabase.sharedInstance.setLocalFile(fileID: fileID, date: nil, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: nil, etag: metadata.etag, etagFPE: metadata.etag)
+                // Rename directory file
+                if fileManager.fileExists(atPath: providerData.fileProviderStorageURL!.path + "/" + assetLocalIdentifier) {
+                    let itemIdentifier = providerData.getItemIdentifier(metadata: metadata)
+                    _ = moveFile(providerData.fileProviderStorageURL!.path + "/" + assetLocalIdentifier, toPath: providerData.fileProviderStorageURL!.path + "/" + itemIdentifier.rawValue)
+                }
+                
+                NCManageDatabase.sharedInstance.setLocalFile(fileID: fileID, date: nil, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: nil, etag: metadata.etag, etagFPE: metadata.etag)
+                
+                guard let parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata) else {
+                    return
+                }
+                
+                let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: providerData)
+                
+                queueTradeSafe.async(flags: .barrier) {
+                    fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
+                    fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
+                    self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+                }
+            }
             
             uploadFile()
-        }
-        
-        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account = %@ AND fileID = %@", providerData.account, fileID)) else {
-            return
-        }
-        
-        guard let parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata) else {
-            return
-        }
-        
-        let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier, providerData: providerData)
-        
-        queueTradeSafe.async(flags: .barrier) {
-            fileProviderSignalUpdateContainerItem[item.itemIdentifier] = item
-            fileProviderSignalUpdateWorkingSetItem[item.itemIdentifier] = item
-            self.signalEnumerator(for: [item.parentItemIdentifier, .workingSet])
+            
+        } else {
+            
+            //TODO: manage error
+            
+            NCManageDatabase.sharedInstance.unlockQueueUpload(assetLocalIdentifier: assetLocalIdentifier)
         }
     }