Add share fetching routine to FPUIExtensionService
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 27 Feb 2024 12:29:46 +0000 (20:29 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Wed, 17 Apr 2024 08:38:47 +0000 (16:38 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionService.swift
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Services/FPUIExtensionServiceSource.swift

index 94e9109ab88001a95875ee2788ac03fc614638d4..5d80b1fa9bc8d137b9aaccc70115be65231e384d 100644 (file)
@@ -5,12 +5,13 @@
 //  Created by Claudio Cambra on 21/2/24.
 //
 
-import Foundation
+import FileProvider
+import NextcloudKit
 
 let fpUiExtensionServiceName = NSFileProviderServiceName(
     "com.nextcloud.desktopclient.FPUIExtensionService"
 )
 
 @objc protocol FPUIExtensionService {
-    
+    func shares(forItemIdentifier itemIdentifier: NSFileProviderItemIdentifier) async -> [NKShare]?
 }
index ac9107deda9d5fb858433ffde540a14f23799cbf..85f3de7e6ef48bb6d183ebe57b4cdd9c4ceaad6e 100644 (file)
@@ -7,6 +7,7 @@
 
 import FileProvider
 import Foundation
+import NextcloudKit
 import OSLog
 
 class FPUIExtensionServiceSource: NSObject, NSFileProviderServiceSource, NSXPCListenerDelegate, FPUIExtensionService {
@@ -38,4 +39,12 @@ class FPUIExtensionServiceSource: NSObject, NSFileProviderServiceSource, NSXPCLi
 
     //MARK: - FPUIExtensionService protocol methods
 
+    func shares(
+        forItemIdentifier itemIdentifier: NSFileProviderItemIdentifier
+    ) async -> [NKShare]? {
+        let controller = ItemSharesController(
+            itemIdentifier: itemIdentifier, parentExtension: fpExtension
+        )
+        return await controller.fetch()
+    }
 }