Fix missing metadata

This commit is contained in:
ronaldheft 2022-08-17 20:42:45 -04:00
parent f655f89c49
commit d3172ece9b
3 changed files with 8 additions and 4 deletions

View file

@ -11,7 +11,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// Override point for customization after application launch.
let configuration = Realm.Configuration(
schemaVersion: 3,
schemaVersion: 4,
migrationBlock: { migration, oldSchemaVersion in
if (oldSchemaVersion < 1) {
NSLog("Realm schema version was \(oldSchemaVersion)")

View file

@ -14,7 +14,7 @@ class PlaybackSession: Object, Codable, Deletable {
@Persisted var libraryItemId: String?
@Persisted var episodeId: String?
@Persisted var mediaType: String = ""
// var mediaMetadata: MediaTypeMetadata - It is not implemented in android?
@Persisted var mediaMetadata: Metadata?
@Persisted var chapters = List<Chapter>()
@Persisted var displayTitle: String?
@Persisted var displayAuthor: String?
@ -67,12 +67,13 @@ class PlaybackSession: Object, Codable, Deletable {
var progress: Double { self.currentTime / self.totalDuration }
internal init(id: String, userId: String? = nil, libraryItemId: String? = nil, episodeId: String? = nil, mediaType: String, chapters: List<Chapter> = List<Chapter>(), displayTitle: String? = nil, displayAuthor: String? = nil, coverPath: String? = nil, duration: Double, playMethod: Int, startedAt: Double? = nil, updatedAt: Double? = nil, timeListening: Double, audioTracks: List<AudioTrack> = List<AudioTrack>(), currentTime: Double, libraryItem: LibraryItem? = nil, localLibraryItem: LocalLibraryItem? = nil, serverConnectionConfigId: String? = nil, serverAddress: String? = nil) {
internal init(id: String, userId: String? = nil, libraryItemId: String? = nil, episodeId: String? = nil, mediaType: String, mediaMetadata: Metadata?, chapters: List<Chapter> = List<Chapter>(), displayTitle: String? = nil, displayAuthor: String? = nil, coverPath: String? = nil, duration: Double, playMethod: Int, startedAt: Double? = nil, updatedAt: Double? = nil, timeListening: Double, audioTracks: List<AudioTrack> = List<AudioTrack>(), currentTime: Double, libraryItem: LibraryItem? = nil, localLibraryItem: LocalLibraryItem? = nil, serverConnectionConfigId: String? = nil, serverAddress: String? = nil) {
self.id = id
self.userId = userId
self.libraryItemId = libraryItemId
self.episodeId = episodeId
self.mediaType = mediaType
self.mediaMetadata = mediaMetadata
self.chapters = chapters
self.displayTitle = displayTitle
self.displayAuthor = displayAuthor
@ -92,7 +93,7 @@ class PlaybackSession: Object, Codable, Deletable {
}
private enum CodingKeys : String, CodingKey {
case id, userId, libraryItemId, episodeId, mediaType, chapters, displayTitle, displayAuthor, coverPath, duration, playMethod, mediaPlayer, deviceInfo, startedAt, updatedAt, timeListening, audioTracks, currentTime, libraryItem, localLibraryItem, serverConnectionConfigId, serverAddress, isLocal, localMediaProgressId
case id, userId, libraryItemId, episodeId, mediaType, mediaMetadata, chapters, displayTitle, displayAuthor, coverPath, duration, playMethod, mediaPlayer, deviceInfo, startedAt, updatedAt, timeListening, audioTracks, currentTime, libraryItem, localLibraryItem, serverConnectionConfigId, serverAddress, isLocal, localMediaProgressId
}
override init() {}
@ -105,6 +106,7 @@ class PlaybackSession: Object, Codable, Deletable {
libraryItemId = try values.decodeIfPresent(String.self, forKey: .libraryItemId)
episodeId = try values.decodeIfPresent(String.self, forKey: .episodeId)
mediaType = try values.decode(String.self, forKey: .mediaType)
mediaMetadata = try values.decodeIfPresent(Metadata.self, forKey: .mediaMetadata)
if let chapterList = try values.decodeIfPresent([Chapter].self, forKey: .chapters) {
chapters.append(objectsIn: chapterList)
}
@ -134,6 +136,7 @@ class PlaybackSession: Object, Codable, Deletable {
try container.encode(libraryItemId, forKey: .libraryItemId)
try container.encode(episodeId, forKey: .episodeId)
try container.encode(mediaType, forKey: .mediaType)
try container.encode(mediaMetadata, forKey: .mediaMetadata)
try container.encode(Array(chapters), forKey: .chapters)
try container.encode(displayTitle, forKey: .displayTitle)
try container.encode(displayAuthor, forKey: .displayAuthor)

View file

@ -179,6 +179,7 @@ extension LocalLibraryItem {
libraryItemId: self.libraryItemId,
episodeId: episode?.serverEpisodeId,
mediaType: self.mediaType,
mediaMetadata: mediaMetadata,
chapters: chapters,
displayTitle: mediaMetadata?.title,
displayAuthor: authorName,