Rewrite of object model to use Unrealm

This addresses issues with JSON serialization
This commit is contained in:
ronaldheft
2022-08-01 09:40:28 -04:00
parent 0b46a9c9b1
commit f6c43e479d
12 changed files with 297 additions and 662 deletions
+27 -1
View File
@@ -15,7 +15,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
NSLog("Realm schema version was \(oldSchemaVersion)")
migration.enumerateObjects(ofType: DeviceSettings.className()) { oldObject, newObject in
migration.enumerateObjects(ofType: DeviceSettings.rlmClassName()) { oldObject, newObject in
newObject?["enableAltView"] = false
}
}
@@ -23,6 +23,32 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
)
Realm.Configuration.defaultConfiguration = configuration
Realm.registerRealmables(DeviceSettings.self)
Realm.registerRealmables(ServerConnectionConfig.self)
Realm.registerRealmables(ServerConnectionConfigActiveIndex.self)
// Data classes
Realm.registerRealmables(LibraryItem.self)
Realm.registerRealmables(MediaType.self)
Realm.registerRealmables(Metadata.self)
Realm.registerRealmables(PodcastEpisode.self)
Realm.registerRealmables(AudioFile.self)
Realm.registerRealmables(Author.self)
Realm.registerRealmables(Chapter.self)
Realm.registerRealmables(AudioTrack.self)
Realm.registerRealmables(FileMetadata.self)
Realm.registerRealmables(Library.self)
Realm.registerRealmables(Folder.self)
Realm.registerRealmables(LibraryFile.self)
Realm.registerRealmables(MediaProgress.self)
Realm.registerRealmables(PlaybackMetadata.self)
// Local library
Realm.registerRealmables(LocalLibraryItem.self)
Realm.registerRealmables(LocalPodcastEpisode.self)
Realm.registerRealmables(LocalFile.self)
Realm.registerRealmables(LocalMediaProgress.self)
return true
}
+3 -13
View File
@@ -35,18 +35,12 @@ public class AbsDatabase: CAPPlugin {
let token = call.getString("token", "")
let name = "\(address) (\(username))"
let config = ServerConnectionConfig()
if id == nil {
id = "\(address)@\(username)".toBase64()
}
config.id = id!
config.name = name
config.address = address
config.userId = userId
config.username = username
config.token = token
let config = ServerConnectionConfig(id: id!, index: 0, name: name, address: address, userId: userId, username: username, token: token)
Store.serverConfig = config
call.resolve(convertServerConnectionConfigToJSON(config: config))
@@ -77,7 +71,7 @@ public class AbsDatabase: CAPPlugin {
@objc func getLocalLibraryItems(_ call: CAPPluginCall) {
do {
let items = Database.shared.getLocalLibraryItems()
call.resolve([ "value": try items.asDictionaryArray() ])
call.resolve([ "value": try items.asDictionaryArray()])
} catch(let exception) {
NSLog("error while readling local library items")
debugPrint(exception)
@@ -128,11 +122,7 @@ public class AbsDatabase: CAPPlugin {
let enableAltView = call.getBool("enableAltView") ?? false
let jumpBackwardsTime = call.getInt("jumpBackwardsTime") ?? 10
let jumpForwardTime = call.getInt("jumpForwardTime") ?? 10
let settings = DeviceSettings()
settings.disableAutoRewind = disableAutoRewind
settings.enableAltView = enableAltView
settings.jumpBackwardsTime = jumpBackwardsTime
settings.jumpForwardTime = jumpForwardTime
let settings = DeviceSettings(disableAutoRewind: disableAutoRewind, enableAltView: enableAltView, jumpBackwardsTime: jumpBackwardsTime, jumpForwardTime: jumpForwardTime)
Database.shared.setDeviceSettings(deviceSettings: settings)