1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
/*
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import FileProvider
import Foundation
import NextcloudKit
import NextcloudFileProviderKit
import OSLog
extension FileProviderExtension: NSFileProviderThumbnailing {
func fetchThumbnails(
for itemIdentifiers: [NSFileProviderItemIdentifier],
requestedSize size: CGSize,
perThumbnailCompletionHandler: @escaping (
NSFileProviderItemIdentifier,
Data?,
Error?
) -> Void,
completionHandler: @escaping (Error?) -> Void
) -> Progress {
guard let ncAccount else {
completionHandler(NSFileProviderError(.notAuthenticated))
return Progress()
}
guard let dbManager else {
completionHandler(NSFileProviderError(.cannotSynchronize))
return Progress()
}
return NextcloudFileProviderKit.fetchThumbnails(
for: itemIdentifiers,
requestedSize: size,
account: ncAccount,
usingRemoteInterface: self.ncKit,
andDatabase: dbManager,
perThumbnailCompletionHandler: perThumbnailCompletionHandler,
log: log,
completionHandler: completionHandler
)
}
}
|