Marino Faggiana 6 жил өмнө
parent
commit
3fbd28b751

+ 45 - 0
PickerFileProvider/FileProviderExtension+Network.swift

@@ -25,6 +25,51 @@ import FileProvider
 
 extension FileProviderExtension {
 
+    // --------------------------------------------------------------------------------------------
+    //  MARK: - Read folder
+    // --------------------------------------------------------------------------------------------
+    
+    
+    func readFolder(itemIdentifier: NSFileProviderItemIdentifier) {
+        
+        /* ONLY iOS 11*/
+        guard #available(iOS 11, *) else { return }
+        
+        var serverUrl: String?
+        var parentItemIdentifier: NSFileProviderItemIdentifier?
+        
+        if (itemIdentifier == .rootContainer) {
+            
+            parentItemIdentifier = .rootContainer
+            serverUrl = providerData.homeServerUrl
+            
+        } else {
+            
+            guard let metadata = providerData.getTableMetadataFromItemIdentifier(itemIdentifier) else {
+                return
+            }
+            guard let directorySource = NCManageDatabase.sharedInstance.getTableDirectory(predicate: NSPredicate(format: "account = %@ AND directoryID = %@", providerData.account, metadata.directoryID)) else {
+                return
+            }
+            
+            parentItemIdentifier = providerData.getParentItemIdentifier(metadata: metadata)
+            serverUrl = directorySource.serverUrl + "/" + metadata.fileName
+        }
+        
+        let ocNetworking = OCnetworking.init(delegate: nil, metadataNet: nil, withUser: providerData.accountUser, withUserID: providerData.accountUserID, withPassword: providerData.accountPassword, withUrl: providerData.accountUrl)
+        ocNetworking?.readFolder(serverUrl, depth: "1", account: providerData.account, success: { (metadatas, metadataFolder, directoryID) in
+            
+            if (metadatas != nil) {
+                NCManageDatabase.sharedInstance.deleteMetadata(predicate: NSPredicate(format: "account = %@ AND directoryID = %@ AND session = ''", self.providerData.account, directoryID!), clearDateReadDirectoryID: directoryID!)
+                _ = NCManageDatabase.sharedInstance.addMetadatas(metadatas as! [tableMetadata], serverUrl: serverUrl)
+            }
+            
+            //self.signalEnumerator(for: [parentItemIdentifier!, .workingSet])
+            
+        }, failure: { (errorMessage, errorCode) in
+        })
+    }
+    
     // --------------------------------------------------------------------------------------------
     //  MARK: - Delete
     // --------------------------------------------------------------------------------------------