mirror of
https://github.com/ultrasonic/ultrasonic
synced 2025-02-14 18:50:51 +01:00
Merge pull request #571 from nitehu/fix/MediaSessionNull
Fixed media session null checks
This commit is contained in:
commit
225bb78263
@ -13,7 +13,7 @@ public class State implements Serializable
|
|||||||
{
|
{
|
||||||
public static final long serialVersionUID = -6346438781062572270L;
|
public static final long serialVersionUID = -6346438781062572270L;
|
||||||
|
|
||||||
public List<MusicDirectory.Entry> songs = new ArrayList<MusicDirectory.Entry>();
|
public List<MusicDirectory.Entry> songs = new ArrayList<>();
|
||||||
public int currentPlayingIndex;
|
public int currentPlayingIndex;
|
||||||
public int currentPlayingPosition;
|
public int currentPlayingPosition;
|
||||||
}
|
}
|
||||||
|
@ -71,12 +71,12 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
Timber.d("MediaSessionHandler.initialize Creating Media Session")
|
Timber.d("MediaSessionHandler.initialize Creating Media Session")
|
||||||
|
|
||||||
mediaSession = MediaSessionCompat(applicationContext, "UltrasonicService")
|
mediaSession = MediaSessionCompat(applicationContext, "UltrasonicService")
|
||||||
val mediaSessionToken = mediaSession!!.sessionToken
|
val mediaSessionToken = mediaSession?.sessionToken ?: return
|
||||||
mediaSessionEventDistributor.raiseMediaSessionTokenCreatedEvent(mediaSessionToken!!)
|
mediaSessionEventDistributor.raiseMediaSessionTokenCreatedEvent(mediaSessionToken)
|
||||||
|
|
||||||
updateMediaButtonReceiver()
|
updateMediaButtonReceiver()
|
||||||
|
|
||||||
mediaSession!!.setCallback(object : MediaSessionCompat.Callback() {
|
mediaSession?.setCallback(object : MediaSessionCompat.Callback() {
|
||||||
override fun onPlay() {
|
override fun onPlay() {
|
||||||
super.onPlay()
|
super.onPlay()
|
||||||
|
|
||||||
@ -159,7 +159,7 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
)
|
)
|
||||||
|
|
||||||
// It seems to be the best practice to set this to true for the lifetime of the session
|
// It seems to be the best practice to set this to true for the lifetime of the session
|
||||||
mediaSession!!.isActive = true
|
mediaSession?.isActive = true
|
||||||
if (cachedPlaylist != null) updateMediaSessionQueue(cachedPlaylist!!)
|
if (cachedPlaylist != null) updateMediaSessionQueue(cachedPlaylist!!)
|
||||||
Timber.i("MediaSessionHandler.initialize Media Session created")
|
Timber.i("MediaSessionHandler.initialize Media Session created")
|
||||||
}
|
}
|
||||||
@ -193,7 +193,7 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save the metadata
|
// Save the metadata
|
||||||
mediaSession!!.setMetadata(metadata.build())
|
mediaSession?.setMetadata(metadata.build())
|
||||||
|
|
||||||
playbackActions = PlaybackStateCompat.ACTION_PLAY_PAUSE or
|
playbackActions = PlaybackStateCompat.ACTION_PLAY_PAUSE or
|
||||||
PlaybackStateCompat.ACTION_SKIP_TO_NEXT or
|
PlaybackStateCompat.ACTION_SKIP_TO_NEXT or
|
||||||
@ -249,7 +249,7 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
playbackStateBuilder.setActiveQueueItemId(currentPlayingIndex)
|
playbackStateBuilder.setActiveQueueItemId(currentPlayingIndex)
|
||||||
|
|
||||||
// Save the playback state
|
// Save the playback state
|
||||||
mediaSession!!.setPlaybackState(playbackStateBuilder.build())
|
mediaSession?.setPlaybackState(playbackStateBuilder.build())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateMediaSessionQueue(playlist: Iterable<MusicDirectory.Entry>) {
|
fun updateMediaSessionQueue(playlist: Iterable<MusicDirectory.Entry>) {
|
||||||
@ -257,8 +257,8 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
cachedPlaylist = playlist
|
cachedPlaylist = playlist
|
||||||
if (mediaSession == null) return
|
if (mediaSession == null) return
|
||||||
|
|
||||||
mediaSession!!.setQueueTitle(applicationContext.getString(R.string.button_bar_now_playing))
|
mediaSession?.setQueueTitle(applicationContext.getString(R.string.button_bar_now_playing))
|
||||||
mediaSession!!.setQueue(
|
mediaSession?.setQueue(
|
||||||
playlist.mapIndexed { id, song ->
|
playlist.mapIndexed { id, song ->
|
||||||
MediaSessionCompat.QueueItem(
|
MediaSessionCompat.QueueItem(
|
||||||
Util.getMediaDescriptionForEntry(song),
|
Util.getMediaDescriptionForEntry(song),
|
||||||
@ -288,7 +288,7 @@ class MediaSessionHandler : KoinComponent {
|
|||||||
if (cachedPlayingIndex != null)
|
if (cachedPlayingIndex != null)
|
||||||
playbackStateBuilder.setActiveQueueItemId(cachedPlayingIndex!!)
|
playbackStateBuilder.setActiveQueueItemId(cachedPlayingIndex!!)
|
||||||
|
|
||||||
mediaSession!!.setPlaybackState(playbackStateBuilder.build())
|
mediaSession?.setPlaybackState(playbackStateBuilder.build())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateMediaButtonReceiver() {
|
fun updateMediaButtonReceiver() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user