浏览代码

add createFolderAndMarkE2EE

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 年之前
父节点
当前提交
c2d7016926
共有 2 个文件被更改,包括 27 次插入22 次删除
  1. 9 4
      iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift
  2. 18 18
      iOSClient/Networking/NCNetworking.swift

+ 9 - 4
iOSClient/Networking/E2EE/NCNetworkingE2EECreateFolder.swift

@@ -135,14 +135,19 @@ import Foundation
         let readFileOrFolderResults = await NextcloudKit.shared.readFileOrFolder(serverUrlFileName: serverUrlFileName, depth: "0")
         if readFileOrFolderResults.error == .success, let file = readFileOrFolderResults.files.first {
 
-            let markE2EEFolderResults = await NextcloudKit.shared.markE2EEFolder(fileId: file.fileId, delete: false)
+            let metadata = NCManageDatabase.shared.convertNCFileToMetadata(file, isEncrypted: false, account: readFileOrFolderResults.account)
+            NCManageDatabase.shared.addMetadata(metadata)
+
+            NCManageDatabase.shared.addDirectory(encrypted: false, favorite: metadata.favorite, ocId: metadata.ocId, fileId: metadata.fileId, etag: nil, permissions: metadata.permissions, serverUrl: serverUrlFileName, account: metadata.account)
+
+            let markE2EEFolderResults = await NextcloudKit.shared.markE2EEFolder(fileId: metadata.fileId, delete: false)
             if markE2EEFolderResults.error != .success { return markE2EEFolderResults.error }
 
-            NCManageDatabase.shared.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", readFileOrFolderResults.account, file.serverUrl))
+            NCManageDatabase.shared.deleteE2eEncryption(predicate: NSPredicate(format: "account == %@ AND serverUrl == %@", metadata.account, metadata.serverUrl))
 
-            NCManageDatabase.shared.setDirectory(serverUrl: serverUrlFileName, serverUrlTo: nil, etag: nil, ocId: nil, fileId: nil, encrypted: true, richWorkspace: nil, account: markE2EEFolderResults.account)
+            NCManageDatabase.shared.setDirectory(serverUrl: serverUrlFileName, serverUrlTo: nil, etag: nil, ocId: nil, fileId: nil, encrypted: true, richWorkspace: nil, account: metadata.account)
 
-            NCManageDatabase.shared.setMetadataEncrypted(ocId: file.ocId, encrypted: true)
+            NCManageDatabase.shared.setMetadataEncrypted(ocId: metadata.ocId, encrypted: true)
 
             NotificationCenter.default.postOnMainThread(name: NCGlobal.shared.notificationCenterChangeStatusFolderE2EE, userInfo: ["serverUrl": serverUrlFileName])
 

+ 18 - 18
iOSClient/Networking/NCNetworking.swift

@@ -1022,10 +1022,27 @@ import Photos
             return result
         }
 
+        func createNameSubFolder() -> [String] {
+
+            var datesSubFolder: [String] = []
+            let dateFormatter = DateFormatter()
+
+            for asset in assets {
+                let date = asset.creationDate ?? Date()
+                dateFormatter.dateFormat = "yyyy"
+                let year = dateFormatter.string(from: date)
+                dateFormatter.dateFormat = "MM"
+                let month = dateFormatter.string(from: date)
+                datesSubFolder.append("\(year)/\(month)")
+            }
+
+            return Array(Set(datesSubFolder))
+        }
+
         var result = createFolder(fileName: fileNameBase, serverUrl: serverUrlBase)
 
         if useSubFolder && result {
-            for dateSubFolder in createNameSubFolder(assets: assets) {
+            for dateSubFolder in createNameSubFolder() {
                 let yearMonth = dateSubFolder.split(separator: "/")
                 guard let year = yearMonth.first else { break }
                 guard let month = yearMonth.last else { break }
@@ -1042,23 +1059,6 @@ import Photos
         return result
     }
 
-    func createNameSubFolder(assets: [PHAsset]) -> [String] {
-
-        var datesSubFolder: [String] = []
-        let dateFormatter = DateFormatter()
-
-        for asset in assets {
-            let date = asset.creationDate ?? Date()
-            dateFormatter.dateFormat = "yyyy"
-            let year = dateFormatter.string(from: date)
-            dateFormatter.dateFormat = "MM"
-            let month = dateFormatter.string(from: date)
-            datesSubFolder.append("\(year)/\(month)")
-        }
-
-        return Array(Set(datesSubFolder))
-    }
-
     // MARK: - WebDav Delete
 
     @objc func deleteMetadata(_ metadata: tableMetadata, onlyLocalCache: Bool, completion: @escaping (_ error: NKError) -> Void) {