Make sure to notify when folder moved in FileProviderExtension
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Sat, 18 Mar 2023 19:07:35 +0000 (20:07 +0100)
committerClaudio Cambra <claudio.cambra@nextcloud.com>
Fri, 12 May 2023 05:29:57 +0000 (13:29 +0800)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/FileProviderExtension.swift

index 9088bc5b41eb25b5c82500a0647ed9b4d13ed1a3..a448c488b9c5b8defd2d26c8449a96bf5f7c706a 100644 (file)
@@ -411,7 +411,16 @@ class FileProviderExtension: NSObject, NSFileProviderReplicatedExtension, NKComm
                     // Remember that a folder metadata's serverUrl is its direct server URL, while for
                     // an item metadata the server URL is the parent folder's URL
                     if itemTemplateIsFolder {
-                        dbManager.renameDirectoryAndPropagateToChildren(ocId: ocId, newServerUrl: newServerUrlFileName, newFileName: item.filename)
+                        _ = dbManager.renameDirectoryAndPropagateToChildren(ocId: ocId, newServerUrl: newServerUrlFileName, newFileName: item.filename)
+                        if let fpManager = NSFileProviderManager(for: self.domain) {
+                            fpManager.signalEnumerator(for: .workingSet) { error in
+                                if error != nil {
+                                    Logger.fileTransfer.error("Error notifying change in moved directory: \(error)")
+                                }
+                            }
+                        } else {
+                            Logger.fileTransfer.warning("Unable to get file provider for domain, will not be able to notify of change in moved directory")
+                        }
                     } else {
                         dbManager.renameItemMetadata(ocId: ocId, newServerUrl: parentItemServerUrl, newFileName: item.filename)
                     }