From aa65bb10c1b727bdb1d96a0599f1f1c674eab468 Mon Sep 17 00:00:00 2001 From: advplyr Date: Sat, 4 Jun 2022 17:12:10 -0500 Subject: [PATCH] Update:Android auto reset saved data if server config id changes --- .../main/java/com/audiobookshelf/app/media/MediaManager.kt | 7 ++++++- .../com/audiobookshelf/app/player/MediaSessionCallback.kt | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/android/app/src/main/java/com/audiobookshelf/app/media/MediaManager.kt b/android/app/src/main/java/com/audiobookshelf/app/media/MediaManager.kt index d9075eb1..ef1c2952 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/media/MediaManager.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/media/MediaManager.kt @@ -21,6 +21,7 @@ class MediaManager(var apiHandler: ApiHandler, var ctx: Context) { var serverPodcastEpisodes = listOf() var serverLibraryCategories = listOf() var serverLibraries = listOf() + var serverConfigIdUsed:String? = null fun initializeAndroidAuto() { Log.d(tag, "Android Auto started when MainActivity was never started - initializing Paper") @@ -34,7 +35,9 @@ class MediaManager(var apiHandler: ApiHandler, var ctx: Context) { fun checkResetServerItems() { // When opening android auto need to check if still connected to server // and reset any server data already set - if (!DeviceManager.isConnectedToServer) { + val serverConnConfig = if (DeviceManager.isConnectedToServer) DeviceManager.serverConnectionConfig else DeviceManager.deviceData.getLastServerConnectionConfig() + + if (!DeviceManager.isConnectedToServer || !apiHandler.isOnline() || serverConnConfig == null || serverConnConfig.id !== serverConfigIdUsed) { serverPodcastEpisodes = listOf() serverLibraryCategories = listOf() serverLibraries = listOf() @@ -162,6 +165,8 @@ class MediaManager(var apiHandler: ApiHandler, var ctx: Context) { Log.d(tag, "Not connected to server, set last server \"${DeviceManager.serverAddress}\"") } + serverConfigIdUsed = DeviceManager.serverConnectionConfigId + loadLibraries { libraries -> val library = libraries[0] Log.d(tag, "Loading categories for library ${library.name} - ${library.id} - ${library.mediaType}") diff --git a/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt b/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt index 3798a55e..03628b4a 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionCallback.kt @@ -97,6 +97,10 @@ class MediaSessionCallback(var playerNotificationService:PlayerNotificationServi podcastEpisode = libraryItemWithEpisode?.episode } else { libraryItemWrapper = playerNotificationService.mediaManager.getById(mediaId) + + if (libraryItemWrapper == null) { + Log.e(tag, "onPlayFromMediaId: Media item not found $mediaId") + } } libraryItemWrapper?.let { li ->