From 81552945161134af2676cc7c06dc51785a07ad34 Mon Sep 17 00:00:00 2001 From: vfsfitvnm Date: Mon, 27 Jun 2022 22:41:53 +0200 Subject: [PATCH] Display player error in notification --- .../vfsfitvnm/vimusic/services/PlayerService.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt b/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt index 5678fef..8bd65bb 100644 --- a/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt +++ b/app/src/main/kotlin/it/vfsfitvnm/vimusic/services/PlayerService.kt @@ -100,6 +100,9 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback onPlaybackStateChanged(Player.STATE_READY) onIsPlayingChanged(player.playWhenReady) } + STATE_ERROR -> { + notificationManager.notify(NotificationId, notification()) + } else -> {} } } @@ -267,6 +270,15 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback } } + override fun onPlayerErrorChanged(error: PlaybackException?) { + if (error != null) { + stateBuilder + .setState(STATE_ERROR, player.currentPosition, 1f) + + mediaSession.setPlaybackState(stateBuilder.build()) + } + } + override fun onPositionDiscontinuity( oldPosition: Player.PositionInfo, newPosition: Player.PositionInfo, @@ -307,11 +319,12 @@ class PlayerService : Service(), Player.Listener, PlaybackStatsListener.Callback val builder = NotificationCompat.Builder(applicationContext, NotificationChannelId) .setContentTitle(mediaMetadata.title) .setContentText(mediaMetadata.artist) + .setSubText(player.playerError?.message) .setLargeIcon(lastBitmap) .setAutoCancel(true) .setOnlyAlertOnce(true) .setShowWhen(false) - .setSmallIcon(R.drawable.app_icon) + .setSmallIcon(player.playerError?.let { R.drawable.alert_circle } ?: R.drawable.app_icon) .setOngoing(false) .setContentIntent(activityPendingIntent()) .setDeleteIntent(broadCastPendingIntent())