Move serviceConnection method to table view data source
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 27 Feb 2024 12:28:27 +0000 (20:28 +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/FileProviderUIExt/ShareTableViewDataSource.swift
shell_integration/MacOSX/NextcloudIntegration/FileProviderUIExt/ShareViewController.swift

index 4ab42ac4d9bfab154bea6ab899cd54a21c2d3505..77fc2e42f2ca18194077b814af82be071beea426 100644 (file)
@@ -20,4 +20,23 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource {
     private var shares: [NKShare] = [] {
         didSet { sharesTableView?.reloadData() }
     }
+
+    private func serviceConnection(url: URL) async throws -> FPUIExtensionService {
+        let services = try await FileManager().fileProviderServicesForItem(at: url)
+        guard let service = services[fpUiExtensionServiceName] else {
+            Logger.sharesDataSource.error("Couldn't get service, required service not present")
+            throw NSFileProviderError(.providerNotFound)
+        }
+        let connection: NSXPCConnection
+        connection = try await service.fileProviderConnection()
+        connection.remoteObjectInterface = NSXPCInterface(with: FPUIExtensionService.self)
+        connection.interruptionHandler = {
+            Logger.sharesDataSource.error("Service connection interrupted")
+        }
+        connection.resume()
+        guard let proxy = connection.remoteObjectProxy as? FPUIExtensionService else {
+            throw NSFileProviderError(.serverUnreachable)
+        }
+        return proxy
+    }
 }
index bd7d48fa16665ededa2fea8a22c19601cff1503c..fb5058ec9bbc38a9967e1a0e4b9368508e1abc88 100644 (file)
@@ -87,23 +87,4 @@ class ShareViewController: NSViewController {
         }
         fileNameIcon.image = fileThumbnail?.nsImage
     }
-
-    private func serviceConnection(url: URL) async throws -> FPUIExtensionService {
-        let services = try await FileManager().fileProviderServicesForItem(at: url)
-        guard let service = services[fpUiExtensionServiceName] else {
-            Logger.shareViewController.error("Couldn't get service, required service not present")
-            throw NSFileProviderError(.providerNotFound)
-        }
-        let connection: NSXPCConnection
-        connection = try await service.fileProviderConnection()
-        connection.remoteObjectInterface = NSXPCInterface(with: FPUIExtensionService.self)
-        connection.interruptionHandler = {
-            Logger.shareViewController.error("Service connection interrupted")
-        }
-        connection.resume()
-        guard let proxy = connection.remoteObjectProxy as? FPUIExtensionService else {
-            throw NSFileProviderError(.serverUnreachable)
-        }
-        return proxy
-    }
 }