From 164fd92a18c6b7ba915222b0e578d7acbfa5b668 Mon Sep 17 00:00:00 2001 From: advplyr Date: Tue, 21 Nov 2023 11:33:45 -0600 Subject: [PATCH] Fix:Android auto unable to play podcast episodes #832 --- .../app/player/MediaSessionCallback.kt | 17 +++++++++-------- .../app/player/MediaSessionPlaybackPreparer.kt | 8 ++++---- 2 files changed, 13 insertions(+), 12 deletions(-) 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 f7e3c89a..fb83402c 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 @@ -116,15 +116,16 @@ class MediaSessionCallback(var playerNotificationService:PlayerNotificationServi if (mediaId.isNullOrEmpty()) { libraryItemWrapper = playerNotificationService.mediaManager.getFirstItem() - } else if (mediaId.startsWith("ep_") || mediaId.startsWith("local_ep_")) { // Playing podcast episode - val libraryItemWithEpisode = playerNotificationService.mediaManager.getPodcastWithEpisodeByEpisodeId(mediaId) - libraryItemWrapper = libraryItemWithEpisode?.libraryItemWrapper - podcastEpisode = libraryItemWithEpisode?.episode } else { - libraryItemWrapper = playerNotificationService.mediaManager.getById(mediaId) - - if (libraryItemWrapper == null) { - Log.e(tag, "onPlayFromMediaId: Media item not found $mediaId") + val libraryItemWithEpisode = playerNotificationService.mediaManager.getPodcastWithEpisodeByEpisodeId(mediaId) + if (libraryItemWithEpisode != null) { + libraryItemWrapper = libraryItemWithEpisode.libraryItemWrapper + podcastEpisode = libraryItemWithEpisode.episode + } else { + libraryItemWrapper = playerNotificationService.mediaManager.getById(mediaId) + if (libraryItemWrapper == null) { + Log.e(tag, "onPlayFromMediaId: Media item not found $mediaId") + } } } diff --git a/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionPlaybackPreparer.kt b/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionPlaybackPreparer.kt index c53a0830..bc59d041 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionPlaybackPreparer.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/player/MediaSessionPlaybackPreparer.kt @@ -49,10 +49,10 @@ class MediaSessionPlaybackPreparer(var playerNotificationService:PlayerNotificat val libraryItemWrapper: LibraryItemWrapper? var podcastEpisode: PodcastEpisode? = null - if (mediaId.startsWith("ep_") || mediaId.startsWith("local_ep_")) { // Playing podcast episode - val libraryItemWithEpisode = playerNotificationService.mediaManager.getPodcastWithEpisodeByEpisodeId(mediaId) - libraryItemWrapper = libraryItemWithEpisode?.libraryItemWrapper - podcastEpisode = libraryItemWithEpisode?.episode + val libraryItemWithEpisode = playerNotificationService.mediaManager.getPodcastWithEpisodeByEpisodeId(mediaId) + if (libraryItemWithEpisode != null) { + libraryItemWrapper = libraryItemWithEpisode.libraryItemWrapper + podcastEpisode = libraryItemWithEpisode.episode } else { libraryItemWrapper = playerNotificationService.mediaManager.getById(mediaId) }