diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudDirectoryMetadataTable.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudDirectoryMetadataTable.swift new file mode 100644 index 000000000..fa941fc1d --- /dev/null +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudDirectoryMetadataTable.swift @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2023 by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +import Foundation +import RealmSwift + +class NextcloudDirectoryMetadataTable: Object { + func isInSameRemoteState(_ comparingMetadata: NextcloudDirectoryMetadataTable) -> Bool { + return comparingMetadata.etag == self.etag && + comparingMetadata.e2eEncrypted == self.e2eEncrypted && + comparingMetadata.favorite == self.favorite && + comparingMetadata.permissions == self.permissions + } + + @Persisted(primaryKey: true) var ocId: String + @Persisted var account = "" + @Persisted var colorFolder: String? + @Persisted var e2eEncrypted: Bool = false + @Persisted var etag = "" + @Persisted var favorite: Bool = false + @Persisted var fileId = "" + @Persisted var offline: Bool = false + @Persisted var permissions = "" + @Persisted var richWorkspace: String? + @Persisted var serverUrl = "" + @Persisted var parentDirectoryServerUrl = "" +} diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudFilesDatabaseTables.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudItemMetadataTable.swift similarity index 83% rename from shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudFilesDatabaseTables.swift rename to shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudItemMetadataTable.swift index 59d759d0b..0ac14095d 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudFilesDatabaseTables.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudItemMetadataTable.swift @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 by Claudio Cambra + * Copyright (C) 2023 by Claudio Cambra * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -197,38 +197,3 @@ class NextcloudItemMetadataTable: Object { return !lock || (lockOwner == user && lockOwnerType == 0) } } - -class NextcloudDirectoryMetadataTable: Object { - func isInSameRemoteState(_ comparingMetadata: NextcloudDirectoryMetadataTable) -> Bool { - return comparingMetadata.etag == self.etag && - comparingMetadata.e2eEncrypted == self.e2eEncrypted && - comparingMetadata.favorite == self.favorite && - comparingMetadata.permissions == self.permissions - } - - @Persisted(primaryKey: true) var ocId: String - @Persisted var account = "" - @Persisted var colorFolder: String? - @Persisted var e2eEncrypted: Bool = false - @Persisted var etag = "" - @Persisted var favorite: Bool = false - @Persisted var fileId = "" - @Persisted var offline: Bool = false - @Persisted var permissions = "" - @Persisted var richWorkspace: String? - @Persisted var serverUrl = "" - @Persisted var parentDirectoryServerUrl = "" -} - -class NextcloudLocalFileMetadataTable: Object { - @Persisted(primaryKey: true) var ocId: String - @Persisted var account = "" - @Persisted var etag = "" - @Persisted var exifDate: Date? - @Persisted var exifLatitude = "" - @Persisted var exifLongitude = "" - @Persisted var exifLensModel: String? - @Persisted var favorite: Bool = false - @Persisted var fileName = "" - @Persisted var offline: Bool = false -} diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudLocalFileMetadataTable.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudLocalFileMetadataTable.swift new file mode 100644 index 000000000..7eda4817c --- /dev/null +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/Database/NextcloudLocalFileMetadataTable.swift @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2023 by Claudio Cambra + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +import Foundation +import RealmSwift + +class NextcloudLocalFileMetadataTable: Object { + @Persisted(primaryKey: true) var ocId: String + @Persisted var account = "" + @Persisted var etag = "" + @Persisted var exifDate: Date? + @Persisted var exifLatitude = "" + @Persisted var exifLongitude = "" + @Persisted var exifLensModel: String? + @Persisted var favorite: Bool = false + @Persisted var fileName = "" + @Persisted var offline: Bool = false +} diff --git a/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.pbxproj b/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.pbxproj index 2570a0b49..d540d9d37 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.pbxproj +++ b/shell_integration/MacOSX/NextcloudIntegration/NextcloudIntegration.xcodeproj/project.pbxproj @@ -10,8 +10,10 @@ 5307A6E62965C6FA001E0C6A /* NextcloudKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5307A6E52965C6FA001E0C6A /* NextcloudKit */; }; 5307A6E82965DAD8001E0C6A /* NextcloudKit in Frameworks */ = {isa = PBXBuildFile; productRef = 5307A6E72965DAD8001E0C6A /* NextcloudKit */; }; 5307A6EB2965DB8D001E0C6A /* RealmSwift in Frameworks */ = {isa = PBXBuildFile; productRef = 5307A6EA2965DB8D001E0C6A /* RealmSwift */; }; - 5307A6F029674953001E0C6A /* NextcloudFilesDatabaseTables.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5307A6EF29674953001E0C6A /* NextcloudFilesDatabaseTables.swift */; }; 5307A6F229675346001E0C6A /* NextcloudFilesDatabaseManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5307A6F129675346001E0C6A /* NextcloudFilesDatabaseManager.swift */; }; + 5318AD9129BF42FB00CBB71C /* NextcloudItemMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5318AD9029BF42FB00CBB71C /* NextcloudItemMetadataTable.swift */; }; + 5318AD9329BF432B00CBB71C /* NextcloudDirectoryMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5318AD9229BF432B00CBB71C /* NextcloudDirectoryMetadataTable.swift */; }; + 5318AD9529BF438F00CBB71C /* NextcloudLocalFileMetadataTable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5318AD9429BF438F00CBB71C /* NextcloudLocalFileMetadataTable.swift */; }; 5352E85B29B7BFE6002CE85C /* Progress+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5352E85A29B7BFE6002CE85C /* Progress+Extensions.swift */; }; 536EFBF7295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 536EFBF6295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift */; }; 536EFC36295E3C1100F4CB13 /* NextcloudAccount.swift in Sources */ = {isa = PBXBuildFile; fileRef = 536EFC35295E3C1100F4CB13 /* NextcloudAccount.swift */; }; @@ -31,7 +33,7 @@ 53903D352956184400D0B308 /* LocalSocketClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 539158B127BE891500816F56 /* LocalSocketClient.h */; settings = {ATTRIBUTES = (Public, ); }; }; 53903D37295618A400D0B308 /* LineProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53903D36295618A400D0B308 /* LineProcessor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 539158AC27BE71A900816F56 /* FinderSyncSocketLineProcessor.m in Sources */ = {isa = PBXBuildFile; fileRef = 539158AB27BE71A900816F56 /* FinderSyncSocketLineProcessor.m */; }; - 53D056312970594F00988392 /* NextcloudFileProviderFilesUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53D056302970594F00988392 /* NextcloudFileProviderFilesUtils.swift */; }; + 53D056312970594F00988392 /* LocalFilesUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53D056302970594F00988392 /* LocalFilesUtils.swift */; }; C2B573BA1B1CD91E00303B36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B573B91B1CD91E00303B36 /* main.m */; }; C2B573D21B1CD94B00303B36 /* main.m in Resources */ = {isa = PBXBuildFile; fileRef = C2B573B91B1CD91E00303B36 /* main.m */; }; C2B573DE1B1CD9CE00303B36 /* FinderSync.m in Sources */ = {isa = PBXBuildFile; fileRef = C2B573DD1B1CD9CE00303B36 /* FinderSync.m */; }; @@ -130,8 +132,10 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 5307A6EF29674953001E0C6A /* NextcloudFilesDatabaseTables.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudFilesDatabaseTables.swift; sourceTree = ""; }; 5307A6F129675346001E0C6A /* NextcloudFilesDatabaseManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudFilesDatabaseManager.swift; sourceTree = ""; }; + 5318AD9029BF42FB00CBB71C /* NextcloudItemMetadataTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudItemMetadataTable.swift; sourceTree = ""; }; + 5318AD9229BF432B00CBB71C /* NextcloudDirectoryMetadataTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudDirectoryMetadataTable.swift; sourceTree = ""; }; + 5318AD9429BF438F00CBB71C /* NextcloudLocalFileMetadataTable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudLocalFileMetadataTable.swift; sourceTree = ""; }; 5352E85A29B7BFE6002CE85C /* Progress+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Progress+Extensions.swift"; sourceTree = ""; }; 536EFBF6295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileProviderSocketLineProcessor.swift; sourceTree = ""; }; 536EFC35295E3C1100F4CB13 /* NextcloudAccount.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudAccount.swift; sourceTree = ""; }; @@ -150,7 +154,7 @@ 539158AB27BE71A900816F56 /* FinderSyncSocketLineProcessor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FinderSyncSocketLineProcessor.m; sourceTree = ""; }; 539158B127BE891500816F56 /* LocalSocketClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalSocketClient.h; sourceTree = ""; }; 539158B227BEC98A00816F56 /* LocalSocketClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = LocalSocketClient.m; sourceTree = ""; }; - 53D056302970594F00988392 /* NextcloudFileProviderFilesUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextcloudFileProviderFilesUtils.swift; sourceTree = ""; }; + 53D056302970594F00988392 /* LocalFilesUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalFilesUtils.swift; sourceTree = ""; }; C2B573B11B1CD91E00303B36 /* desktopclient.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = desktopclient.app; sourceTree = BUILT_PRODUCTS_DIR; }; C2B573B51B1CD91E00303B36 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C2B573B91B1CD91E00303B36 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; @@ -205,6 +209,17 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 5318AD8F29BF406500CBB71C /* Database */ = { + isa = PBXGroup; + children = ( + 5307A6F129675346001E0C6A /* NextcloudFilesDatabaseManager.swift */, + 5318AD9029BF42FB00CBB71C /* NextcloudItemMetadataTable.swift */, + 5318AD9229BF432B00CBB71C /* NextcloudDirectoryMetadataTable.swift */, + 5318AD9429BF438F00CBB71C /* NextcloudLocalFileMetadataTable.swift */, + ); + path = Database; + sourceTree = ""; + }; 5352E85929B7BFB4002CE85C /* Extensions */ = { isa = PBXGroup; children = ( @@ -224,15 +239,14 @@ 538E396B27F4765000FA63D5 /* FileProviderExt */ = { isa = PBXGroup; children = ( + 5318AD8F29BF406500CBB71C /* Database */, 5352E85929B7BFB4002CE85C /* Extensions */, 538E397027F4765000FA63D5 /* FileProviderEnumerator.swift */, 538E396C27F4765000FA63D5 /* FileProviderExtension.swift */, 538E396E27F4765000FA63D5 /* FileProviderItem.swift */, 536EFBF6295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift */, 536EFC35295E3C1100F4CB13 /* NextcloudAccount.swift */, - 53D056302970594F00988392 /* NextcloudFileProviderFilesUtils.swift */, - 5307A6F129675346001E0C6A /* NextcloudFilesDatabaseManager.swift */, - 5307A6EF29674953001E0C6A /* NextcloudFilesDatabaseTables.swift */, + 53D056302970594F00988392 /* LocalFilesUtils.swift */, 538E397327F4765000FA63D5 /* FileProviderExt.entitlements */, 538E397227F4765000FA63D5 /* Info.plist */, ); @@ -540,13 +554,15 @@ buildActionMask = 2147483647; files = ( 5352E85B29B7BFE6002CE85C /* Progress+Extensions.swift in Sources */, - 5307A6F029674953001E0C6A /* NextcloudFilesDatabaseTables.swift in Sources */, 536EFC36295E3C1100F4CB13 /* NextcloudAccount.swift in Sources */, 538E396D27F4765000FA63D5 /* FileProviderExtension.swift in Sources */, + 5318AD9329BF432B00CBB71C /* NextcloudDirectoryMetadataTable.swift in Sources */, 536EFBF7295CF58100F4CB13 /* FileProviderSocketLineProcessor.swift in Sources */, + 5318AD9529BF438F00CBB71C /* NextcloudLocalFileMetadataTable.swift in Sources */, 5307A6F229675346001E0C6A /* NextcloudFilesDatabaseManager.swift in Sources */, - 53D056312970594F00988392 /* NextcloudFileProviderFilesUtils.swift in Sources */, + 53D056312970594F00988392 /* LocalFilesUtils.swift in Sources */, 538E396F27F4765000FA63D5 /* FileProviderItem.swift in Sources */, + 5318AD9129BF42FB00CBB71C /* NextcloudItemMetadataTable.swift in Sources */, 538E397127F4765000FA63D5 /* FileProviderEnumerator.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1181,7 +1197,7 @@ isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/nextcloud/NextcloudKit"; requirement = { - branch = "develop"; + branch = develop; kind = branch; }; };