mirror of
https://github.com/advplyr/audiobookshelf-app.git
synced 2025-08-18 16:49:10 +02:00
Fix server config not factored in determining active session
This commit is contained in:
parent
2a2ebefeb9
commit
10ddc1c911
3 changed files with 9 additions and 3 deletions
|
@ -38,7 +38,9 @@ public class AbsAudioPlayer: CAPPlugin {
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Fetch the most recent active session
|
// Fetch the most recent active session
|
||||||
let activeSession = try await Realm().objects(PlaybackSession.self).where({ $0.isActiveSession == true }).last?.freeze()
|
let activeSession = try await Realm().objects(PlaybackSession.self).where({
|
||||||
|
$0.isActiveSession == true && $0.serverConnectionConfigId == Store.serverConfig?.id
|
||||||
|
}).last?.freeze()
|
||||||
if let activeSession = activeSession {
|
if let activeSession = activeSession {
|
||||||
await PlayerProgress.shared.syncFromServer()
|
await PlayerProgress.shared.syncFromServer()
|
||||||
try self.startPlaybackSession(activeSession, playWhenReady: false, playbackRate: PlayerSettings.main().playbackRate)
|
try self.startPlaybackSession(activeSession, playWhenReady: false, playbackRate: PlayerSettings.main().playbackRate)
|
||||||
|
|
|
@ -159,7 +159,9 @@ class PlayerHandler {
|
||||||
|
|
||||||
private static func cleanupOldSessions(currentSessionId: String?) {
|
private static func cleanupOldSessions(currentSessionId: String?) {
|
||||||
let realm = try! Realm()
|
let realm = try! Realm()
|
||||||
let oldSessions = realm.objects(PlaybackSession.self) .where({ $0.isActiveSession == true })
|
let oldSessions = realm.objects(PlaybackSession.self) .where({
|
||||||
|
$0.isActiveSession == true && $0.serverConnectionConfigId == Store.serverConfig?.id
|
||||||
|
})
|
||||||
try! realm.write {
|
try! realm.write {
|
||||||
for s in oldSessions {
|
for s in oldSessions {
|
||||||
if s.id != currentSessionId {
|
if s.id != currentSessionId {
|
||||||
|
|
|
@ -148,7 +148,9 @@ class PlayerProgress {
|
||||||
|
|
||||||
private func updateLocalSessionFromServerMediaProgress() async {
|
private func updateLocalSessionFromServerMediaProgress() async {
|
||||||
NSLog("updateLocalSessionFromServerMediaProgress: Checking if local media progress was updated on server")
|
NSLog("updateLocalSessionFromServerMediaProgress: Checking if local media progress was updated on server")
|
||||||
guard let session = try! await Realm().objects(PlaybackSession.self).last(where: { $0.isActiveSession == true })?.freeze() else {
|
guard let session = try! await Realm().objects(PlaybackSession.self).last(where: {
|
||||||
|
$0.isActiveSession == true && $0.serverConnectionConfigId == Store.serverConfig?.id
|
||||||
|
})?.freeze() else {
|
||||||
NSLog("updateLocalSessionFromServerMediaProgress: Failed to get session")
|
NSLog("updateLocalSessionFromServerMediaProgress: Failed to get session")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue