From 24d6c5071c646fa05beb603b036bd363b9ba2ac0 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Fri, 10 Mar 2023 13:34:44 +0100 Subject: [PATCH] Create sortedDirectoryMetadatas convenience method in database manager Signed-off-by: Claudio Cambra --- .../NextcloudFilesDatabaseManager.swift | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift index adef544f2..bc1ab1e80 100644 --- a/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift +++ b/shell_integration/MacOSX/NextcloudIntegration/FileProviderExt/NextcloudFilesDatabaseManager.swift @@ -312,27 +312,28 @@ class NextcloudFilesDatabaseManager : NSObject { return nil } - func childDirectoriesForDirectory(_ directoryMetadata: NextcloudDirectoryMetadataTable) -> [NextcloudDirectoryMetadataTable] { - let database = ncDatabase() - let metadatas = database.objects(NextcloudDirectoryMetadataTable.self).filter("serverUrl BEGINSWITH %@ AND ocId != %@", directoryMetadata.serverUrl, directoryMetadata.account) + private func sortedDirectoryMetadatas(_ metadatas: Results) -> [NextcloudDirectoryMetadataTable] { let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) }) } + func childDirectoriesForDirectory(_ directoryMetadata: NextcloudDirectoryMetadataTable) -> [NextcloudDirectoryMetadataTable] { + let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("serverUrl BEGINSWITH %@ AND ocId != %@", directoryMetadata.serverUrl, directoryMetadata.account) + return sortedDirectoryMetadatas(metadatas) + } + func parentDirectoryMetadataForItem(_ itemMetadata: NextcloudItemMetadataTable) -> NextcloudDirectoryMetadataTable? { return directoryMetadata(account: itemMetadata.account, serverUrl: itemMetadata.serverUrl) } func directoryMetadatas(account: String) -> [NextcloudDirectoryMetadataTable] { let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@", account) - let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) - return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) }) + return sortedDirectoryMetadatas(metadatas) } func directoryMetadatas(account: String, parentDirectoryServerUrl: String) -> [NextcloudDirectoryMetadataTable] { let metadatas = ncDatabase().objects(NextcloudDirectoryMetadataTable.self).filter("account == %@ AND parentDirectoryServerUrl == %@", account, parentDirectoryServerUrl) - let sortedMetadatas = metadatas.sorted(byKeyPath: "serverUrl", ascending: true) - return Array(sortedMetadatas.map { NextcloudDirectoryMetadataTable(value: $0) }) + return sortedDirectoryMetadatas(metadatas) } private func processDirectoryMetadatasToDelete(databaseToWriteTo: Realm, -- 2.30.2