diff options
author | Marino Faggiana <ios@nextcloud.com> | 2022-07-30 12:59:27 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-30 12:59:27 +0300 |
commit | 30d81dd17aef94f8a298378e931932565c69b02c (patch) | |
tree | c0b272f2153f43204b4824fb61576c2c59a6410a /iOSClient | |
parent | 3f3ff1d9b74a6c6c87bb6f5ab2f6daa5c27416a9 (diff) | |
parent | 1945448f2e1708e9f2e6fa0427e8b1fdd5ca75d9 (diff) |
Merge pull request #2098 from nextcloud/fix/441
improved delete queue = 10
Diffstat (limited to 'iOSClient')
-rw-r--r-- | iOSClient/Main/Collection Common/NCCollectionViewCommon.swift | 2 | ||||
-rw-r--r-- | iOSClient/Networking/NCOperationQueue.swift | 23 |
2 files changed, 19 insertions, 6 deletions
diff --git a/iOSClient/Main/Collection Common/NCCollectionViewCommon.swift b/iOSClient/Main/Collection Common/NCCollectionViewCommon.swift index 741e24769..f5adadb27 100644 --- a/iOSClient/Main/Collection Common/NCCollectionViewCommon.swift +++ b/iOSClient/Main/Collection Common/NCCollectionViewCommon.swift @@ -358,7 +358,7 @@ class NCCollectionViewCommon: UIViewController, UIGestureRecognizerDelegate, UIS self.collectionView?.reloadData() } else { let (indexPath, sameSections) = dataSource.deleteMetadata(ocId: ocId) - if let indexPath = indexPath { + if let indexPath = indexPath, dataSource.metadatas.count > 0 { if sameSections && (indexPath.section < collectionView.numberOfSections && indexPath.row < collectionView.numberOfItems(inSection: indexPath.section)) { collectionView?.performBatchUpdates({ collectionView?.deleteItems(at: [indexPath]) diff --git a/iOSClient/Networking/NCOperationQueue.swift b/iOSClient/Networking/NCOperationQueue.swift index 319337773..42edc30cb 100644 --- a/iOSClient/Networking/NCOperationQueue.swift +++ b/iOSClient/Networking/NCOperationQueue.swift @@ -32,7 +32,8 @@ import NCCommunication }() private var downloadQueue = Queuer(name: "downloadQueue", maxConcurrentOperationCount: 5, qualityOfService: .default) - private let deleteQueue = Queuer(name: "deleteQueue", maxConcurrentOperationCount: 1, qualityOfService: .default) + private let deleteQueue = Queuer(name: "deleteQueue", maxConcurrentOperationCount: 10, qualityOfService: .default) + private let deleteQueueE2EE = Queuer(name: "deleteQueue", maxConcurrentOperationCount: 1, qualityOfService: .default) private let copyMoveQueue = Queuer(name: "copyMoveQueue", maxConcurrentOperationCount: 1, qualityOfService: .default) private let synchronizationQueue = Queuer(name: "synchronizationQueue", maxConcurrentOperationCount: 1, qualityOfService: .default) private let downloadThumbnailQueue = Queuer(name: "downloadThumbnailQueue", maxConcurrentOperationCount: 10, qualityOfService: .default) @@ -79,13 +80,25 @@ import NCCommunication // MARK: - Delete file @objc func delete(metadata: tableMetadata, onlyLocalCache: Bool) { - for operation in deleteQueue.operations as! [NCOperationDelete] { - if operation.metadata.ocId == metadata.ocId { - return + + let isFolderEncrypted = CCUtility.isFolderEncrypted(metadata.serverUrl, e2eEncrypted: metadata.e2eEncrypted, account: metadata.account, urlBase: metadata.urlBase) + if isFolderEncrypted { + for operation in deleteQueueE2EE.operations as! [NCOperationDelete] { + if operation.metadata.ocId == metadata.ocId { + return + } } + deleteQueueE2EE.addOperation(NCOperationDelete(metadata: metadata, onlyLocalCache: onlyLocalCache)) + } else { + for operation in deleteQueue.operations as! [NCOperationDelete] { + if operation.metadata.ocId == metadata.ocId { + return + } + } + deleteQueue.addOperation(NCOperationDelete(metadata: metadata, onlyLocalCache: onlyLocalCache)) } - deleteQueue.addOperation(NCOperationDelete(metadata: metadata, onlyLocalCache: onlyLocalCache)) } + @objc func deleteCancelAll() { deleteQueue.cancelAll() } |