From f1411011e65758d6036e28a627a4f38bd7172d61 Mon Sep 17 00:00:00 2001 From: advplyr Date: Thu, 8 Jun 2023 17:19:31 -0500 Subject: [PATCH] Update:Android include DeviceInfo with local playback session --- .../main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt | 4 ++-- .../main/java/com/audiobookshelf/app/data/PlaybackSession.kt | 3 ++- .../main/java/com/audiobookshelf/app/media/MediaManager.kt | 2 +- .../audiobookshelf/app/player/PlayerNotificationService.kt | 2 +- .../java/com/audiobookshelf/app/plugins/AbsAudioPlayer.kt | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt b/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt index c4af87ee..eb158d8b 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/LocalLibraryItem.kt @@ -74,7 +74,7 @@ class LocalLibraryItem( } @JsonIgnore - fun getPlaybackSession(episode:PodcastEpisode?):PlaybackSession { + fun getPlaybackSession(episode:PodcastEpisode?, deviceInfo:DeviceInfo):PlaybackSession { val localEpisodeId = episode?.id val sessionId = "play_local_${UUID.randomUUID()}" @@ -97,7 +97,7 @@ class LocalLibraryItem( } val dateNow = System.currentTimeMillis() - return PlaybackSession(sessionId,serverUserId,libraryItemId,episode?.serverEpisodeId, mediaType, mediaMetadata, chapters ?: mutableListOf(), displayTitle, authorName,null,duration,PLAYMETHOD_LOCAL,dateNow,0L,0L, audioTracks,currentTime,null,this,localEpisodeId,serverConnectionConfigId, serverAddress, "exo-player") + return PlaybackSession(sessionId,serverUserId,libraryItemId,episode?.serverEpisodeId, mediaType, mediaMetadata, deviceInfo,chapters ?: mutableListOf(), displayTitle, authorName,null,duration,PLAYMETHOD_LOCAL,dateNow,0L,0L, audioTracks,currentTime,null,this,localEpisodeId,serverConnectionConfigId, serverAddress, "exo-player") } @JsonIgnore diff --git a/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt b/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt index 8b08823a..06a1c923 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/data/PlaybackSession.kt @@ -27,6 +27,7 @@ class PlaybackSession( var episodeId:String?, var mediaType:String, var mediaMetadata:MediaTypeMetadata, + var deviceInfo:DeviceInfo, var chapters:List, var displayTitle: String?, var displayAuthor: String?, @@ -250,7 +251,7 @@ class PlaybackSession( @JsonIgnore fun clone():PlaybackSession { - return PlaybackSession(id,userId,libraryItemId,episodeId,mediaType,mediaMetadata,chapters,displayTitle,displayAuthor,coverPath,duration,playMethod,startedAt,updatedAt,timeListening,audioTracks,currentTime,libraryItem,localLibraryItem,localEpisodeId,serverConnectionConfigId,serverAddress, mediaPlayer) + return PlaybackSession(id,userId,libraryItemId,episodeId,mediaType,mediaMetadata,deviceInfo,chapters,displayTitle,displayAuthor,coverPath,duration,playMethod,startedAt,updatedAt,timeListening,audioTracks,currentTime,libraryItem,localLibraryItem,localEpisodeId,serverConnectionConfigId,serverAddress, mediaPlayer) } @JsonIgnore 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 7dd77f5b..7905de4b 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 @@ -397,7 +397,7 @@ class MediaManager(private var apiHandler: ApiHandler, var ctx: Context) { fun play(libraryItemWrapper:LibraryItemWrapper, episode:PodcastEpisode?, playItemRequestPayload:PlayItemRequestPayload, cb: (PlaybackSession?) -> Unit) { if (libraryItemWrapper is LocalLibraryItem) { - cb(libraryItemWrapper.getPlaybackSession(episode)) + cb(libraryItemWrapper.getPlaybackSession(episode, playItemRequestPayload.deviceInfo)) } else { val libraryItem = libraryItemWrapper as LibraryItem apiHandler.playLibraryItem(libraryItem.id,episode?.id ?: "", playItemRequestPayload) { diff --git a/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt b/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt index e1ceb428..df796a1f 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/player/PlayerNotificationService.kt @@ -913,7 +913,7 @@ class PlayerNotificationService : MediaBrowserServiceCompat() { } @SuppressLint("HardwareIds") - private fun getDeviceInfo(): DeviceInfo { + fun getDeviceInfo(): DeviceInfo { /* EXAMPLE manufacturer: Google model: Pixel 6 diff --git a/android/app/src/main/java/com/audiobookshelf/app/plugins/AbsAudioPlayer.kt b/android/app/src/main/java/com/audiobookshelf/app/plugins/AbsAudioPlayer.kt index a3b6a6e1..25a423ba 100644 --- a/android/app/src/main/java/com/audiobookshelf/app/plugins/AbsAudioPlayer.kt +++ b/android/app/src/main/java/com/audiobookshelf/app/plugins/AbsAudioPlayer.kt @@ -201,7 +201,7 @@ class AbsAudioPlayer : Plugin() { Handler(Looper.getMainLooper()).post { Log.d(tag, "prepareLibraryItem: Preparing Local Media item ${jacksonMapper.writeValueAsString(it)}") - val playbackSession = it.getPlaybackSession(episode) + val playbackSession = it.getPlaybackSession(episode, playerNotificationService.getDeviceInfo()) if (startTimeOverride != null) { Log.d(tag, "prepareLibraryItem: Using start time override $startTimeOverride") playbackSession.currentTime = startTimeOverride