From: Claudio Cambra Date: Mon, 13 Mar 2023 12:43:31 +0000 (+0100) Subject: Respond to materializedItemsDidChange in FileProviderExtension X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~10^2~55^2~132 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d1008df42966bdb4d6fdff523326618af80e9274;p=nextcloud-desktop.git Respond to materializedItemsDidChange in FileProviderExtension Signed-off-by: Claudio Cambra --- diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift index 18953d633..0a8a3bdcf 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift @@ -570,6 +570,29 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm return FileProviderEnumerator(enumeratedItemIdentifier: containerItemIdentifier, ncAccount: ncAccount, ncKit: ncKit) } + func materializedItemsDidChange(completionHandler: @escaping () -> Void) { + guard let ncAccount = self.ncAccount else { + NSLog("Not purging stale local file metadatas, account not set up") + completionHandler() + return + } + + guard let fpManager = NSFileProviderManager(for: domain) else { + NSLog("Could not get file provider manager for domain: %@", domain.displayName) + completionHandler() + return + } + + let dbManager = NextcloudFilesDatabaseManager.shared + let materialisedEnumerator = fpManager.enumeratorForMaterializedItems() + let materialisedObserver = FileProviderMaterialisedEnumerationObserver(ncKitAccount: ncAccount.ncKitAccount) { _ in + completionHandler() + } + let startingPage = NSFileProviderPage(NSFileProviderPage.initialPageSortedByName as Data) + + materialisedEnumerator.enumerateItems(for: materialisedObserver, startingAt: startingPage) + } + // MARK: Nextcloud desktop client communication func sendFileProviderDomainIdentifier() { let command = "FILE_PROVIDER_DOMAIN_IDENTIFIER_REQUEST_REPLY"