From 60f116cdd43b369de741d101fa2b6609b2e0e6e9 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Tue, 20 Feb 2024 15:58:19 +0800 Subject: [PATCH] Implement eviction capabilities in FileProviderItem Signed-off-by: Claudio Cambra --- .../FileProviderExt/FileProviderItem.swift | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderItem.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderItem.swift index 9dc4dbbb5..eea2b950c 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderItem.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderItem.swift @@ -32,13 +32,25 @@ class FileProviderItem: NSObject, NSFileProviderItem { var capabilities: NSFileProviderItemCapabilities { guard !metadata.directory else { - return [ - .allowsAddingSubItems, - .allowsContentEnumerating, - .allowsReading, - .allowsDeleting, - .allowsRenaming, - ] + if #available(macOS 13.0, *) { + // .allowsEvicting deprecated on macOS 13.0+, use contentPolicy instead + return [ + .allowsAddingSubItems, + .allowsContentEnumerating, + .allowsReading, + .allowsDeleting, + .allowsRenaming + ] + } else { + return [ + .allowsAddingSubItems, + .allowsContentEnumerating, + .allowsReading, + .allowsDeleting, + .allowsRenaming, + .allowsEvicting + ] + } } guard !metadata.lock else { return [.allowsReading] @@ -49,6 +61,7 @@ class FileProviderItem: NSObject, NSFileProviderItem { .allowsDeleting, .allowsRenaming, .allowsReparenting, + .allowsEvicting ] } @@ -133,6 +146,11 @@ class FileProviderItem: NSObject, NSFileProviderItem { } } + @available(macOSApplicationExtension 13.0, *) + var contentPolicy: NSFileProviderContentPolicy { + .downloadLazily + } + required init( metadata: NextcloudItemMetadataTable, parentItemIdentifier: NSFileProviderItemIdentifier,