Browse Source

clear code

marinofaggiana 5 years ago
parent
commit
75c7326b57

+ 13 - 33
File Provider Extension/FileProviderData.swift

@@ -66,9 +66,7 @@ class fileProviderData: NSObject {
         // NO DOMAIN -> Set default account
         if domain == nil {
             
-            guard let tableAccounts = NCManageDatabase.sharedInstance.getAccountActive() else {
-                return false
-            }
+            guard let tableAccounts = NCManageDatabase.sharedInstance.getAccountActive() else { return false }
             
             account = tableAccounts.account
             accountUser = tableAccounts.user
@@ -81,25 +79,17 @@ class fileProviderData: NSObject {
         }
         
         let tableAccounts = NCManageDatabase.sharedInstance.getAllAccount()
-        if tableAccounts.count == 0 {
-            return false
-        }
+        if tableAccounts.count == 0 { return false }
         
         for tableAccount in tableAccounts {
-            guard let url = NSURL(string: tableAccount.url) else {
-                continue
-            }
-            guard let host = url.host else {
-                continue
-            }
+            guard let url = NSURL(string: tableAccount.url) else { continue }
+            guard let host = url.host else { continue }
             let accountDomain = tableAccount.userID + " (" + host + ")"
             if accountDomain == domain {
                 account = tableAccount.account
                 accountUser = tableAccount.user
                 accountUserID = tableAccount.userID
-                guard let password = CCUtility.getPassword(tableAccount.account) else {
-                    return false
-                }
+                guard let password = CCUtility.getPassword(tableAccount.account) else { return false }
                 accountPassword = password
                 accountUrl = tableAccount.url
                 homeServerUrl = CCUtility.getHomeServerUrlActiveUrl(tableAccount.url)
@@ -115,14 +105,10 @@ class fileProviderData: NSObject {
         
         var foundAccount: Bool = false
 
-        guard let accountFromItemIdentifier = fileProviderUtility.sharedInstance.getAccountFromItemIdentifier(itemIdentifier) else {
-            return false
-        }
+        guard let accountFromItemIdentifier = fileProviderUtility.sharedInstance.getAccountFromItemIdentifier(itemIdentifier) else { return false }
         
         let tableAccounts = NCManageDatabase.sharedInstance.getAllAccount()
-        if tableAccounts.count == 0 {
-            return false
-        }
+        if tableAccounts.count == 0 { return false }
         
         for tableAccount in tableAccounts {
             if accountFromItemIdentifier == tableAccount.account {
@@ -152,15 +138,11 @@ class fileProviderData: NSObject {
         for (identifier, _) in listFavoriteIdentifierRank {
             
             if !oldListFavoriteIdentifierRank.keys.contains(identifier) {
-                
-                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else {
-                    continue
-                }
-                guard let parentItemIdentifier = fileProviderUtility.sharedInstance.getParentItemIdentifier(metadata: metadata, homeServerUrl: homeServerUrl) else {
-                    continue
-                }
-                
+            
+                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else { continue }
+                guard let parentItemIdentifier = fileProviderUtility.sharedInstance.getParentItemIdentifier(metadata: metadata, homeServerUrl: homeServerUrl) else { continue }
                 let item = FileProviderItem(metadata: metadata, parentItemIdentifier: parentItemIdentifier)
+                
                 fileProviderSignalUpdate[item.itemIdentifier] = item
                 updateWorkingSet = true
             }
@@ -171,11 +153,9 @@ class fileProviderData: NSObject {
             
             if !listFavoriteIdentifierRank.keys.contains(identifier) {
                 
-                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else {
-                    continue
-                }
-                
+                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else { continue }
                 let itemIdentifier = fileProviderUtility.sharedInstance.getItemIdentifier(metadata: metadata)
+                
                 fileProviderSignalDelete[itemIdentifier] = itemIdentifier
                 updateWorkingSet = true
             }

+ 3 - 13
File Provider Extension/FileProviderEnumerator.swift

@@ -66,12 +66,8 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
             let tags = NCManageDatabase.sharedInstance.getTags(predicate: NSPredicate(format: "account == %@", fileProviderData.sharedInstance.account))
             for tag in tags {
                 
-                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", tag.ocId))  else {
-                    continue
-                }
-                
+                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", tag.ocId))  else { continue }
                 fileProviderUtility.sharedInstance.createocIdentifierOnFileSystem(metadata: metadata)
-                
                 itemIdentifierMetadata[fileProviderUtility.sharedInstance.getItemIdentifier(metadata: metadata)] = metadata
             }
             
@@ -79,10 +75,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
             fileProviderData.sharedInstance.listFavoriteIdentifierRank = NCManageDatabase.sharedInstance.getTableMetadatasDirectoryFavoriteIdentifierRank(account: fileProviderData.sharedInstance.account)
             for (identifier, _) in fileProviderData.sharedInstance.listFavoriteIdentifierRank {
                 
-                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else {
-                    continue
-                }
-                
+                guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "ocId == %@", identifier)) else { continue }
                 itemIdentifierMetadata[fileProviderUtility.sharedInstance.getItemIdentifier(metadata: metadata)] = metadata
             }
             
@@ -271,9 +264,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
             for metadata in metadatas {
                 
                 // E2EE Remove
-                if metadata.e2eEncrypted || metadata.status == Int(k_metadataStatusHide) || (metadata.session != "" && metadata.session != k_download_session_extension && metadata.session != k_upload_session_extension) {
-                    continue
-                }
+                if metadata.e2eEncrypted || metadata.status == Int(k_metadataStatusHide) || (metadata.session != "" && metadata.session != k_download_session_extension && metadata.session != k_upload_session_extension) { continue }
                 
                 counter += 1
                 if (counter >= start && counter <= stop) {
@@ -290,5 +281,4 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
         }
         return items
     }
-
 }

+ 22 - 23
File Provider Extension/FileProviderExtension.swift

@@ -33,24 +33,24 @@ import FileProvider
  
  
-    itemIdentifier = metadata.ocId (ex. 00ABC1)                                   --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
+    itemIdentifier = metadata.ocId (ex. 00ABC1)                                     --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
     parentItemIdentifier = NSFileProviderItemIdentifier.rootContainer.rawValue      --> func getParentItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier?
  
 
-    itemIdentifier = metadata.ocId (ex. 00CCC)                                    --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
+    itemIdentifier = metadata.ocId (ex. 00CCC)                                      --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
     parentItemIdentifier = parent itemIdentifier (00ABC1)                           --> func getParentItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier?
  
  
-    itemIdentifier = metadata.ocId (ex. 000DD)                                    --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
+    itemIdentifier = metadata.ocId (ex. 000DD)                                      --> func getItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier
     parentItemIdentifier = parent itemIdentifier (00CCC)                            --> func getParentItemIdentifier(metadata: tableMetadata) -> NSFileProviderItemIdentifier?
  
    -------------------------------------------------------------------------------------------------------------------------------------------- */
 
 class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
     
-    var outstandingDownloadTasks = [URL: URLSessionTask]()
+    var outstandingSessionTasks = [URL: URLSessionTask]()
     
     lazy var fileCoordinator: NSFileCoordinator = {
         
@@ -222,7 +222,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             if errorCode == 0 && account == metadata.account {
 
                 // remove Task
-                self.outstandingDownloadTasks.removeValue(forKey: url)
+                self.outstandingSessionTasks.removeValue(forKey: url)
                 
                 metadata.date = date! as NSDate
                 metadata.etag = etag!
@@ -241,7 +241,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             } else {
                 
                 // remove task
-                self.outstandingDownloadTasks.removeValue(forKey: url)
+                self.outstandingSessionTasks.removeValue(forKey: url)
                 
                 if errorCode == Int(CFNetworkErrors.cfurlErrorCancelled.rawValue) {
                     completionHandler(NSFileProviderError(.noSuchItem))
@@ -255,7 +255,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
        
         // Add and register task
         if task != nil {
-            outstandingDownloadTasks[url] = task
+            outstandingSessionTasks[url] = task
             NSFileProviderManager.default.register(task!, forItemWithIdentifier: NSFileProviderItemIdentifier(identifier.rawValue)) { (error) in }
         }
     }
@@ -267,12 +267,8 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
         assert(pathComponents.count > 2)
         let itemIdentifier = NSFileProviderItemIdentifier(pathComponents[pathComponents.count - 2])
         
-        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND ocId == %@", fileProviderData.sharedInstance.account, itemIdentifier.rawValue)) else {
-            return
-        }
-        guard let parentItemIdentifier = fileProviderUtility.sharedInstance.getParentItemIdentifier(metadata: metadata, homeServerUrl: fileProviderData.sharedInstance.homeServerUrl) else {
-            return
-        }
+        guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND ocId == %@", fileProviderData.sharedInstance.account, itemIdentifier.rawValue)) else { return }
+        guard let parentItemIdentifier = fileProviderUtility.sharedInstance.getParentItemIdentifier(metadata: metadata, homeServerUrl: fileProviderData.sharedInstance.homeServerUrl) else { return }
         
         // typefile directory ? (NOT PERMITTED)
         do {
@@ -282,9 +278,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             if typeFile == FileAttributeType.typeDirectory {
                 return
             }
-        } catch {
-            return
-        }
+        } catch { return }
 
         let fileName = pathComponents[pathComponents.count - 1]
         let fileNameServerUrl = metadata.serverUrl + "/" + fileName
@@ -294,6 +288,8 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             
         }, completion: { (account, ocId, etag, date, message, errorCode) in
             
+            guard let metadata = NCManageDatabase.sharedInstance.getMetadata(predicate: NSPredicate(format: "account == %@ AND ocId == %@", fileProviderData.sharedInstance.account, itemIdentifier.rawValue)) else { return }
+            
             if account == fileProviderData.sharedInstance.account && errorCode == 0 {
                 
                 metadata.sessionTaskIdentifier = Int(k_taskIdentifierDone)
@@ -304,13 +300,17 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
                 metadata.size = size
                 
                 guard let metadataUpdate = NCManageDatabase.sharedInstance.addMetadata(metadata) else { return }
-                NCManageDatabase.sharedInstance.setLocalFile(ocId: metadata.ocId, date: metadata.date, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: nil, etag: metadata.etag)
+                NCManageDatabase.sharedInstance.setLocalFile(ocId: metadataUpdate.ocId, date: metadataUpdate.date, exifDate: nil, exifLatitude: nil, exifLongitude: nil, fileName: nil, etag: metadataUpdate.etag)
                 
                 // Signal update/delete
                 _ = fileProviderData.sharedInstance.fileProviderSignal(metadata: metadataUpdate, parentItemIdentifier: parentItemIdentifier, delete: false, update: true)
-                
+
             } else {
-                // ????
+                
+                metadata.sessionTaskIdentifier = Int(k_taskIdentifierDone)
+                metadata.status = Int(k_metadataStatusNormal)
+                metadata.session = ""
+                _ = NCManageDatabase.sharedInstance.addMetadata(metadata)
             }
         })
         
@@ -326,7 +326,7 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
             // Signal update/delete
             _ = fileProviderData.sharedInstance.fileProviderSignal(metadata: metadataUpdate, parentItemIdentifier: parentItemIdentifier, delete: false, update: true)
             
-            self.outstandingDownloadTasks[url] = task
+            self.outstandingSessionTasks[url] = task
             NSFileProviderManager.default.register(task!, forItemWithIdentifier: NSFileProviderItemIdentifier(itemIdentifier.rawValue)) { (error) in }
         }
     }
@@ -355,10 +355,9 @@ class FileProviderExtension: NSFileProviderExtension, CCNetworkingDelegate {
         }
         
         // Download task
-        if let downloadTask = outstandingDownloadTasks[url] {
+        if let downloadTask = outstandingSessionTasks[url] {
             downloadTask.cancel()
-            outstandingDownloadTasks.removeValue(forKey: url)
+            outstandingSessionTasks.removeValue(forKey: url)
         }
     }
-
 }

+ 5 - 16
File Provider Extension/FileProviderUtility.swift

@@ -84,15 +84,11 @@ class fileProviderUtility: NSObject {
             
         } else {
             
-            guard let metadata = getTableMetadataFromItemIdentifier(parentItemIdentifier) else {
-                return nil
-            }
+            guard let metadata = getTableMetadataFromItemIdentifier(parentItemIdentifier) else { return nil }
             predicate = NSPredicate(format: "ocId == %@", metadata.ocId)
         }
         
-        guard let directory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: predicate) else {
-            return nil
-        }
+        guard let directory = NCManageDatabase.sharedInstance.getTableDirectory(predicate: predicate) else { return nil }
         
         return directory
     }
@@ -103,9 +99,7 @@ class fileProviderUtility: NSObject {
         
         var errorResult: Error?
         
-        if !fileManager.fileExists(atPath: atPath) {
-            return NSError(domain: NSCocoaErrorDomain, code: NSFileNoSuchFileError, userInfo:[:])
-        }
+        if !fileManager.fileExists(atPath: atPath) { return NSError(domain: NSCocoaErrorDomain, code: NSFileNoSuchFileError, userInfo:[:]) }
         
         do {
             try fileManager.removeItem(atPath: toPath)
@@ -125,13 +119,8 @@ class fileProviderUtility: NSObject {
         
         var errorResult: Error?
         
-        if atPath == toPath {
-            return nil
-        }
-                
-        if !fileManager.fileExists(atPath: atPath) {
-            return NSError(domain: NSCocoaErrorDomain, code: NSFileNoSuchFileError, userInfo:[:])
-        }
+        if atPath == toPath { return nil }
+        if !fileManager.fileExists(atPath: atPath) { return NSError(domain: NSCocoaErrorDomain, code: NSFileNoSuchFileError, userInfo:[:]) }
         
         do {
             try fileManager.removeItem(atPath: toPath)