From 1d3a32be5db51df96a8fcc2182f4249856395355 Mon Sep 17 00:00:00 2001 From: antonio Date: Sun, 28 Jan 2024 15:46:36 +0100 Subject: [PATCH] fix: refined scrobbling logic for the NowPlaying feature across all flavors --- .../com/cappielloantonio/tempo/service/MediaService.kt | 4 ++-- .../com/cappielloantonio/tempo/service/MediaService.kt | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt b/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt index 043fc16b..d5ac7356 100644 --- a/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -175,7 +175,6 @@ class MediaService : MediaLibraryService() { override fun onTracksChanged(tracks: Tracks) { ReplayGainUtil.setReplayGain(player, tracks) - MediaManager.scrobble(player.currentMediaItem, false) } override fun onIsPlayingChanged(isPlaying: Boolean) { @@ -184,8 +183,9 @@ class MediaService : MediaLibraryService() { player.currentMediaItem, player.currentPosition ) + } else { + MediaManager.scrobble(player.currentMediaItem, false) } - MediaManager.scrobble(player.currentMediaItem, false) } override fun onPlaybackStateChanged(playbackState: Int) { diff --git a/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt b/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt index 3b414a4e..b2524a15 100644 --- a/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -128,16 +128,19 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { player.currentMediaItem, player.currentPosition ) + } else { + MediaManager.scrobble(player.currentMediaItem, false) } } override fun onPlaybackStateChanged(playbackState: Int) { super.onPlaybackStateChanged(playbackState) + if (!player.hasNextMediaItem() && playbackState == Player.STATE_ENDED && player.mediaMetadata.extras?.getString("type") == Constants.MEDIA_TYPE_MUSIC ) { - MediaManager.scrobble(player.currentMediaItem) + MediaManager.scrobble(player.currentMediaItem, true) MediaManager.saveChronology(player.currentMediaItem) } } @@ -151,7 +154,7 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { if (reason == Player.DISCONTINUITY_REASON_AUTO_TRANSITION) { if (oldPosition.mediaItem?.mediaMetadata?.extras?.getString("type") == Constants.MEDIA_TYPE_MUSIC) { - MediaManager.scrobble(oldPosition.mediaItem) + MediaManager.scrobble(oldPosition.mediaItem, true) MediaManager.saveChronology(oldPosition.mediaItem) }