Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/ios.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarino Faggiana <ios@nextcloud.com>2022-07-30 12:59:27 +0300
committerGitHub <noreply@github.com>2022-07-30 12:59:27 +0300
commit30d81dd17aef94f8a298378e931932565c69b02c (patch)
treec0b272f2153f43204b4824fb61576c2c59a6410a /iOSClient
parent3f3ff1d9b74a6c6c87bb6f5ab2f6daa5c27416a9 (diff)
parent1945448f2e1708e9f2e6fa0427e8b1fdd5ca75d9 (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.swift2
-rw-r--r--iOSClient/Networking/NCOperationQueue.swift23
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()
}