From 782f11ff28b675bcf21ec821346cf32f60310273 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rasmus=20Kr=C3=A4mer?= Date: Mon, 11 Apr 2022 18:50:25 +0200 Subject: [PATCH] Implemented missing methods --- ios/App/App/plugins/AbsDatabase.m | 5 +++++ ios/App/App/plugins/AbsDatabase.swift | 14 +++++++++++++- ios/App/Shared/util/Database.swift | 26 +++++++++++++------------- 3 files changed, 31 insertions(+), 14 deletions(-) diff --git a/ios/App/App/plugins/AbsDatabase.m b/ios/App/App/plugins/AbsDatabase.m index e977e8c7..6225a74b 100644 --- a/ios/App/App/plugins/AbsDatabase.m +++ b/ios/App/App/plugins/AbsDatabase.m @@ -11,5 +11,10 @@ CAP_PLUGIN(AbsDatabase, "AbsDatabase", CAP_PLUGIN_METHOD(setCurrentServerConnectionConfig, CAPPluginReturnPromise); CAP_PLUGIN_METHOD(getDeviceData, CAPPluginReturnPromise); + + CAP_PLUGIN_METHOD(getLocalLibraryItems, CAPPluginReturnPromise); + CAP_PLUGIN_METHOD(getLocalLibraryItem, CAPPluginReturnPromise); + CAP_PLUGIN_METHOD(getLocalLibraryItemByLLId, CAPPluginReturnPromise); + CAP_PLUGIN_METHOD(getLocalLibraryItemsInFolder, CAPPluginReturnPromise); ) diff --git a/ios/App/App/plugins/AbsDatabase.swift b/ios/App/App/plugins/AbsDatabase.swift index e227b2fd..6e9f643e 100644 --- a/ios/App/App/plugins/AbsDatabase.swift +++ b/ios/App/App/plugins/AbsDatabase.swift @@ -68,5 +68,17 @@ public class AbsDatabase: CAPPlugin { } } - + // We have to send a empty array or the client will break + @objc func getLocalLibraryItems(_ call: CAPPluginCall) { + call.resolve([ "value": [] ]) + } + @objc func getLocalLibraryItem(_ call: CAPPluginCall) { + call.resolve([ "value": [] ]) + } + @objc func getLocalLibraryItemByLLId(_ call: CAPPluginCall) { + call.resolve([ "value": [] ]) + } + @objc func getLocalLibraryItemsInFolder(_ call: CAPPluginCall) { + call.resolve([ "value": [] ]) + } } diff --git a/ios/App/Shared/util/Database.swift b/ios/App/Shared/util/Database.swift index 0d35fac2..a81c5134 100644 --- a/ios/App/Shared/util/Database.swift +++ b/ios/App/Shared/util/Database.swift @@ -10,32 +10,32 @@ import RealmSwift class Database { public static let realmQueue = DispatchQueue(label: "realm-queue") + + // All DB releated actions must be executed on "realm-queue" + private static var instance: Realm = { + // TODO: handle thread errors + try! Realm(queue: realmQueue) + }() + public static func getActiveServerConfigIndex() -> Int { - let realm = try! Realm(queue: realmQueue) - guard let config = realm.objects(ServerConnectionConfig.self).first else { + guard let config = instance.objects(ServerConnectionConfig.self).first else { return -1 } return config.index } public static func setServerConnectionConfig(config: ServerConnectionConfig) { - // TODO: handle thread errors - let realm = try! Realm(queue: realmQueue) - var existing: ServerConnectionConfig? + let existing: ServerConnectionConfig? = instance.object(ofType: ServerConnectionConfig.self, forPrimaryKey: config.id) - if config.id != nil { - existing = realm.object(ofType: ServerConnectionConfig.self, forPrimaryKey: config.id) - } - try! realm.write { + try! instance.write { if existing != nil { - realm.delete(existing!) + instance.delete(existing!) } - realm.add(config) + instance.add(config) } } public static func getServerConnectionConfigs() -> [ServerConnectionConfig] { - let realm = try! Realm(queue: realmQueue) - let configs = realm.objects(ServerConnectionConfig.self) + let configs = instance.objects(ServerConnectionConfig.self) if configs.count <= 0 { return []