]> dgit.raspbian.org Git - nextcloud-desktop.git/commitdiff
Use thumbnail fetching procedure from NCFPK
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 15 Apr 2024 11:30:09 +0000 (19:30 +0800)
committerbackportbot[bot] <backportbot[bot]@users.noreply.github.com>
Wed, 17 Apr 2024 08:44:12 +0000 (08:44 +0000)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+Thumbnailing.swift

index 193d47d5c3a64e315114703378493e29245bc6dd..f0d0bbe0e78995561e14184c169114489cecf126 100644 (file)
@@ -29,46 +29,12 @@ extension FileProviderExtension: NSFileProviderThumbnailing {
         ) -> Void,
         completionHandler: @escaping (Error?) -> Void
     ) -> Progress {
-        let progress = Progress(totalUnitCount: Int64(itemIdentifiers.count))
-        var progressCounter: Int64 = 0
-
-        func finishCurrent() {
-            progressCounter += 1
-
-            if progressCounter == progress.totalUnitCount {
-                completionHandler(nil)
-            }
-        }
-
-        for itemIdentifier in itemIdentifiers {
-            Logger.fileProviderExtension.debug(
-                "Fetching thumbnail for item with identifier:\(itemIdentifier.rawValue, privacy: .public)"
-            )
-            guard
-                let metadata = FilesDatabaseManager.shared
-                    .itemMetadataFromFileProviderItemIdentifier(itemIdentifier),
-                let thumbnailUrl = metadata.thumbnailUrl(size: size)
-            else {
-                Logger.fileProviderExtension.debug("Did not fetch thumbnail URL")
-                finishCurrent()
-                continue
-            }
-
-            Logger.fileProviderExtension.debug(
-                "Fetching thumbnail for file:\(metadata.fileName) at:\(thumbnailUrl.absoluteString, privacy: .public)"
-            )
-
-            ncKit.getPreview(url: thumbnailUrl) { _, data, error in
-                if error == .success, data != nil {
-                    perThumbnailCompletionHandler(itemIdentifier, data, nil)
-                } else {
-                    perThumbnailCompletionHandler(
-                        itemIdentifier, nil, NSFileProviderError(.serverUnreachable))
-                }
-                finishCurrent()
-            }
-        }
-
-        return progress
+        return NextcloudFileProviderKit.fetchThumbnails(
+            for: itemIdentifiers,
+            requestedSize: size,
+            usingKit: self.ncKit,
+            perThumbnailCompletionHandler: perThumbnailCompletionHandler,
+            completionHandler: completionHandler
+        )
     }
 }