From f7190683250a708ce2401d6eabae56e95de53fe9 Mon Sep 17 00:00:00 2001 From: Prathamesh More Date: Mon, 17 Jan 2022 17:00:54 +0530 Subject: [PATCH] Fixed empty notification when Classic Notification is on --- .../name/monkey/retromusic/service/MusicService.java | 4 ++-- .../service/notification/PlayingNotification.kt | 2 +- .../service/notification/PlayingNotificationClassic.kt | 9 ++++++--- .../service/notification/PlayingNotificationImpl24.kt | 3 ++- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java index 44a479f1d..6c382e419 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java +++ b/app/src/main/java/code/name/monkey/retromusic/service/MusicService.java @@ -945,8 +945,8 @@ public class MusicService extends MediaBrowserServiceCompat break; case CLASSIC_NOTIFICATION: updateNotification(); - playingNotification.setPlaying(isPlaying()); playingNotification.updateMetadata(getCurrentSong(), this::startForegroundOrNotify); + playingNotification.setPlaying(isPlaying(),this::startForegroundOrNotify); break; case PLAYBACK_SPEED: updateMediaSessionPlaybackState(); @@ -1435,7 +1435,7 @@ public class MusicService extends MediaBrowserServiceCompat savePositionInTrack(); } songPlayCountHelper.notifyPlayStateChanged(isPlaying); - playingNotification.setPlaying(isPlaying); + playingNotification.setPlaying(isPlaying, this::startForegroundOrNotify); startForegroundOrNotify(); break; case FAVORITE_STATE_CHANGED: diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotification.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotification.kt index 162775f06..8afc265bd 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotification.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotification.kt @@ -29,7 +29,7 @@ abstract class PlayingNotification(context: Context) : abstract fun updateMetadata(song: Song, onUpdate: () -> Unit) - abstract fun setPlaying(isPlaying: Boolean) + abstract fun setPlaying(isPlaying: Boolean, onUpdate: () -> Unit) abstract fun updateFavorite(song: Song, onUpdate: () -> Unit) diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt index aad278f36..85783dcec 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationClassic.kt @@ -55,6 +55,7 @@ class PlayingNotificationClassic( ) : PlayingNotification(context) { private var primaryColor: Int = 0 + private var isInitialized = false init { val notificationLayout = getCombinedRemoteViews(true) @@ -95,8 +96,8 @@ class PlayingNotificationClassic( return remoteViews } - @SuppressLint("RestrictedApi") override fun updateMetadata(song: Song, onUpdate: () -> Unit) { + isInitialized = true val bigNotificationImageSize = context.resources .getDimensionPixelSize(R.dimen.notification_big_image_size) GlideApp.with(context).asBitmapPalette().songCoverOptions(song) @@ -258,7 +259,7 @@ class PlayingNotificationClassic( ), NOTIFICATION_CONTROLS_SIZE_MULTIPLIER) } - override fun setPlaying(isPlaying: Boolean) { + override fun setPlaying(isPlaying: Boolean, onUpdate: () -> Unit) { getPlayPauseBitmap(isPlaying).also { contentView.setImageViewBitmap(R.id.action_play_pause, it) bigContentView.setImageViewBitmap(R.id.action_play_pause, it) @@ -266,7 +267,9 @@ class PlayingNotificationClassic( } override fun updateFavorite(song: Song, onUpdate: () -> Unit) { - + if (!isInitialized) { + updateMetadata(song, onUpdate) + } } private fun buildPendingIntent( diff --git a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt index d9373757e..2f3f5aae6 100644 --- a/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt +++ b/app/src/main/java/code/name/monkey/retromusic/service/notification/PlayingNotificationImpl24.kt @@ -195,8 +195,9 @@ class PlayingNotificationImpl24( ).build() } - override fun setPlaying(isPlaying: Boolean) { + override fun setPlaying(isPlaying: Boolean, onUpdate: () -> Unit) { mActions[2] = buildPlayAction(isPlaying) + onUpdate() } override fun updateFavorite(song: Song, onUpdate: () -> Unit) {