From 882e58aa64980f2d72787e10fd4a54f3d10abc25 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Sat, 11 Mar 2023 02:30:54 +0100 Subject: [PATCH] Don't compare un-persisted properties of NextcloudItemMetadataTable in isInSameRemoteState, fixing constant updating of metadatas Signed-off-by: Claudio Cambra --- .../FileProviderExt/NextcloudFilesDatabaseManager.swift | 6 ++++-- .../FileProviderExt/NextcloudFilesDatabaseTables.swift | 6 ++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift index 496bcf087..8c858dd62 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift @@ -155,7 +155,7 @@ class NextcloudFilesDatabaseManager : NSObject { if let existingMetadata = existingMetadatas.first(where: { $0.ocId == updatedMetadata.ocId }) { if existingMetadata.status == NextcloudItemMetadataTable.Status.normal.rawValue && - !existingMetadata.isInSameRemoteState(updatedMetadata) { + !existingMetadata.isInSameDatabaseStoreableRemoteState(updatedMetadata) { returningUpdatedMetadatas.append(NextcloudItemMetadataTable(value: updatedMetadata)) databaseToWriteTo.add(updatedMetadata, update: .all) @@ -169,7 +169,9 @@ class NextcloudFilesDatabaseManager : NSObject { , updatedMetadata.ocId, updatedMetadata.fileName, updatedMetadata.etag) } else { NSLog(""" - Skipping metadata update as received metadata status is same as existing: + Skipping metadata update as received metadata status is same as existing, + or metadata is currently being downloaded/uploaded: + ocID: %@, fileName: %@, etag: %@ diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseTables.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseTables.swift index 3faeae1e6..59d759d0b 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseTables.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseTables.swift @@ -54,7 +54,7 @@ class NextcloudItemMetadataTable: Object { return false } - func isInSameRemoteState(_ comparingMetadata: NextcloudItemMetadataTable) -> Bool { + func isInSameDatabaseStoreableRemoteState(_ comparingMetadata: NextcloudItemMetadataTable) -> Bool { return comparingMetadata.etag == self.etag && comparingMetadata.fileNameView == self.fileNameView && comparingMetadata.date == self.date && @@ -62,8 +62,6 @@ class NextcloudItemMetadataTable: Object { comparingMetadata.hasPreview == self.hasPreview && comparingMetadata.note == self.note && comparingMetadata.lock == self.lock && - comparingMetadata.shareType == self.shareType && - comparingMetadata.sharePermissionsCloudMesh == self.sharePermissionsCloudMesh && comparingMetadata.sharePermissionsCollaborationServices == self.sharePermissionsCollaborationServices && comparingMetadata.favorite == self.favorite } @@ -119,7 +117,7 @@ class NextcloudItemMetadataTable: Object { @Persisted var sessionSelector = "" @Persisted var sessionTaskIdentifier: Int = 0 @Persisted var sharePermissionsCollaborationServices: Int = 0 - let sharePermissionsCloudMesh = List() + let sharePermissionsCloudMesh = List() // TODO: Find a way to compare these in remote state check let shareType = List() @Persisted var size: Int64 = 0 @Persisted var status: Int = 0 -- 2.30.2