diff --git a/ios/App/App/plugins/AbsDatabase.swift b/ios/App/App/plugins/AbsDatabase.swift index 85d7ec66..12bc1eec 100644 --- a/ios/App/App/plugins/AbsDatabase.swift +++ b/ios/App/App/plugins/AbsDatabase.swift @@ -193,10 +193,14 @@ public class AbsDatabase: CAPPlugin { @objc func updateLocalMediaProgressFinished(_ call: CAPPluginCall) { let localLibraryItemId = call.getString("localLibraryItemId") let localEpisodeId = call.getString("localEpisodeId") - let localMediaProgressId = call.getString("localMediaProgressId") let isFinished = call.getBool("isFinished", false) - logger.log("updateLocalMediaProgressFinished \(localMediaProgressId ?? "Unknown") | Is Finished: \(isFinished)") + var localMediaProgressId = localLibraryItemId ?? "" + if localEpisodeId != nil { + localMediaProgressId += "-\(localEpisodeId ?? "")" + } + + logger.log("updateLocalMediaProgressFinished \(localMediaProgressId) | Is Finished: \(isFinished)") do { let localMediaProgress = try LocalMediaProgress.fetchOrCreateLocalMediaProgress(localMediaProgressId: localMediaProgressId, localLibraryItemId: localLibraryItemId, localEpisodeId: localEpisodeId) diff --git a/ios/App/Shared/models/local/LocalMediaProgress.swift b/ios/App/Shared/models/local/LocalMediaProgress.swift index 17572870..c80e3123 100644 --- a/ios/App/Shared/models/local/LocalMediaProgress.swift +++ b/ios/App/Shared/models/local/LocalMediaProgress.swift @@ -111,6 +111,7 @@ extension LocalMediaProgress { if let episode = episode { self.id += "-\(episode.id)" self.episodeId = episode.id + self.localEpisodeId = episode.id self.duration = episode.duration ?? 0.0 } } @@ -133,6 +134,10 @@ extension LocalMediaProgress { if self.isFinished != finished { self.progress = finished ? 1.0 : 0.0 } + + if finished { + self.currentTime = 0.0 + } if self.startedAt == 0 && finished { self.startedAt = Date().timeIntervalSince1970 * 1000 @@ -149,7 +154,7 @@ extension LocalMediaProgress { self.currentTime = playbackSession.currentTime self.progress = playbackSession.progress self.lastUpdate = Date().timeIntervalSince1970 * 1000 - self.isFinished = playbackSession.progress >= 100.0 + self.isFinished = playbackSession.progress >= 0.99 self.finishedAt = self.isFinished ? self.lastUpdate : nil } } diff --git a/pages/item/_id/_episode/index.vue b/pages/item/_id/_episode/index.vue index 9bc5ea00..ceb9c768 100644 --- a/pages/item/_id/_episode/index.vue +++ b/pages/item/_id/_episode/index.vue @@ -12,16 +12,12 @@ -
- {{ title }} -
+{{ title }}