mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-25 22:05:53 +03:00
Add completeObserver method to FileProviderEnumerator
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
7d1b275d50
commit
2b5425390d
1 changed files with 29 additions and 0 deletions
|
@ -18,6 +18,7 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
|
|||
|
||||
private let enumeratedItemIdentifier: NSFileProviderItemIdentifier
|
||||
private let anchor = NSFileProviderSyncAnchor("an anchor".data(using: .utf8)!)
|
||||
private let maxItemsPerFileProviderPage = 100
|
||||
var serverUrl: URL?
|
||||
|
||||
init(enumeratedItemIdentifier: NSFileProviderItemIdentifier, ncAccount: NextcloudAccount?) {
|
||||
|
@ -77,4 +78,32 @@ class FileProviderEnumerator: NSObject, NSFileProviderEnumerator {
|
|||
func currentSyncAnchor(completionHandler: @escaping (NSFileProviderSyncAnchor?) -> Void) {
|
||||
completionHandler(anchor)
|
||||
}
|
||||
|
||||
// MARK: - Helper methods
|
||||
|
||||
func completeObserver(observer: NSFileProviderEnumerationObserver, numPage: Int, itemMetadatas: [NextcloudItemMetadataTable]?) {
|
||||
guard itemMetadatas != nil else { observer.finishEnumerating(upTo: nil); return }
|
||||
var items: [NSFileProviderItem] = []
|
||||
|
||||
for itemMetadata in itemMetadatas! {
|
||||
if itemMetadata.e2eEncrypted { continue }
|
||||
|
||||
createFileOrDirectoryLocally(metadata: itemMetadata)
|
||||
|
||||
if let parentItemIdentifier = parentItemIdentifierFromMetadata(itemMetadata) {
|
||||
let item = FileProviderItem(metadata: itemMetadata, parentItemIdentifier: parentItemIdentifier)
|
||||
items.append(item)
|
||||
}
|
||||
}
|
||||
|
||||
observer.didEnumerate(items)
|
||||
|
||||
if items.count == maxItemsPerFileProviderPage {
|
||||
let nextPage = numPage + 1
|
||||
let providerPage = NSFileProviderPage("\(nextPage)".data(using: .utf8)!)
|
||||
observer.finishEnumerating(upTo: providerPage)
|
||||
} else {
|
||||
observer.finishEnumerating(upTo: nil)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue