Add conformance to NextcloudFileProviderKit's EnumerationListener protocol in FilePro...
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 16 Jul 2024 11:23:53 +0000 (19:23 +0800)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Tue, 23 Jul 2024 06:06:28 +0000 (14:06 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+EnumerationListener.swift [new file with mode: 0644]
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift
shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.pbxproj

diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+EnumerationListener.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension+EnumerationListener.swift
new file mode 100644 (file)
index 0000000..00a3fb2
--- /dev/null
@@ -0,0 +1,23 @@
+//
+//  FileProviderExtension+EnumerationListener.swift
+//  FileProviderExt
+//
+//  Created by Claudio Cambra on 16/7/24.
+//
+
+import Foundation
+import NextcloudFileProviderKit
+
+extension FileProviderExtension: EnumerationListener {
+    func enumerationActionStarted(actionId: UUID) {
+        insertSyncAction(actionId)
+    }
+
+    func enumerationActionFinished(actionId: UUID) {
+        removeSyncAction(actionId)
+    }
+
+    func enumerationActionFailed(actionId: UUID, error: Error) {
+        insertErrorAction(actionId)
+    }
+}
index c4bcfd14534fc8340663606c9da158b0502118d7..6e27f9e84682d473a4b7273ff58cdfb8bdb39bac 100644 (file)
@@ -397,6 +397,8 @@ import OSLog
         materialisedEnumerator.enumerateItems(for: materialisedObserver, startingAt: startingPage)
     }
 
+    // MARK: - Helper functions
+
     func signalEnumerator(completionHandler: @escaping (_ error: Error?) -> Void) {
         guard let fpManager = NSFileProviderManager(for: domain) else {
             Logger.fileProviderExtension.error(
index a150d71c4053d470b244343864350c4f41c700c2..7162acf23b4407067084ab6c0e3899063c6c2877 100644 (file)
@@ -10,6 +10,7 @@
                5307A6E62965C6FA001E0C6A /* NextcloudKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5307A6E52965C6FA001E0C6A /* NextcloudKit */; };
                5307A6E82965DAD8001E0C6A /* NextcloudKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5307A6E72965DAD8001E0C6A /* NextcloudKit */; };
                531522822B8E01C6002E31BE /* ShareTableItemView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 531522812B8E01C6002E31BE /* ShareTableItemView.xib */; };
+               532572082C4690340068DEC3 /* FileProviderExtension+EnumerationListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 532572072C4690340068DEC3 /* FileProviderExtension+EnumerationListener.swift */; };
                5350E4E92B0C534A00F276CB /* ClientCommunicationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5350E4E82B0C534A00F276CB /* ClientCommunicationService.swift */; };
                5352B36C29DC44B50011CE03 /* FileProviderExtension+Thumbnailing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5352B36B29DC44B50011CE03 /* FileProviderExtension+Thumbnailing.swift */; };
                5358F2B92BAA0F5300E3C729 /* NextcloudCapabilitiesKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5358F2B82BAA0F5300E3C729 /* NextcloudCapabilitiesKit */; };
 
 /* Begin PBXFileReference section */
                531522812B8E01C6002E31BE /* ShareTableItemView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ShareTableItemView.xib; sourceTree = "<group>"; };
+               532572072C4690340068DEC3 /* FileProviderExtension+EnumerationListener.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileProviderExtension+EnumerationListener.swift"; sourceTree = "<group>"; };
                5350E4E72B0C514400F276CB /* ClientCommunicationProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientCommunicationProtocol.h; sourceTree = "<group>"; };
                5350E4E82B0C534A00F276CB /* ClientCommunicationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientCommunicationService.swift; sourceTree = "<group>"; };
                5350E4EA2B0C9CE100F276CB /* FileProviderExt-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "FileProviderExt-Bridging-Header.h"; sourceTree = "<group>"; };
                                53D666602B70C9A70042C03D /* FileProviderConfig.swift */,
                                538E396C27F4765000FA63D5 /* FileProviderExtension.swift */,
                                53ED472F29C9CE0B00795DB1 /* FileProviderExtension+ClientInterface.swift */,
+                               532572072C4690340068DEC3 /* FileProviderExtension+EnumerationListener.swift */,
                                5352B36B29DC44B50011CE03 /* FileProviderExtension+Thumbnailing.swift */,
                                536EFBF6295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift */,
                                538E397327F4765000FA63D5 /* FileProviderExt.entitlements */,
                                535AE30E29C0A2CC0042A9BA /* Logger+Extensions.swift in Sources */,
                                537630952B860D560026BFAB /* FPUIExtensionServiceSource.swift in Sources */,
                                5350E4E92B0C534A00F276CB /* ClientCommunicationService.swift in Sources */,
+                               532572082C4690340068DEC3 /* FileProviderExtension+EnumerationListener.swift in Sources */,
                                5352B36C29DC44B50011CE03 /* FileProviderExtension+Thumbnailing.swift in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;