From 4d573c6b9d259a76024fd20ed2598d79bd8332d1 Mon Sep 17 00:00:00 2001 From: antonio Date: Sat, 29 Jul 2023 23:45:34 +0200 Subject: [PATCH] fix: resolved issue with scrobbling the last track --- .../cappielloantonio/tempo/service/MediaService.kt | 11 +++++++++++ .../cappielloantonio/tempo/service/MediaService.kt | 11 +++++++++++ 2 files changed, 22 insertions(+) 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 47fc7c29..80803c89 100644 --- a/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -186,6 +186,17 @@ class MediaService : MediaLibraryService() { } } + 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.saveChronology(player.currentMediaItem) + } + } + override fun onPositionDiscontinuity( oldPosition: Player.PositionInfo, newPosition: Player.PositionInfo, 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 5a16e436..c2581d1d 100644 --- a/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/tempo/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -259,6 +259,17 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener { } } + 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.saveChronology(player.currentMediaItem) + } + } + override fun onPositionDiscontinuity( oldPosition: Player.PositionInfo, newPosition: Player.PositionInfo,