From d8c8a783de47c919898e19d651d53399b6e846d9 Mon Sep 17 00:00:00 2001 From: caiocotts Date: Mon, 22 Jan 2024 21:41:54 -0500 Subject: [PATCH] Send "now playing" scrobbles to server. --- .../cappielloantonio/tempo/repository/SongRepository.java | 4 ++-- .../com/cappielloantonio/tempo/service/MediaManager.java | 4 ++-- .../subsonic/api/mediaannotation/MediaAnnotationClient.java | 4 ++-- .../api/mediaannotation/MediaAnnotationService.java | 2 +- .../java/com/cappielloantonio/tempo/service/MediaService.kt | 6 ++++-- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/tempo/repository/SongRepository.java b/app/src/main/java/com/cappielloantonio/tempo/repository/SongRepository.java index db75f907..bc615c29 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/repository/SongRepository.java +++ b/app/src/main/java/com/cappielloantonio/tempo/repository/SongRepository.java @@ -104,10 +104,10 @@ public class SongRepository { return randomSongsSample; } - public void scrobble(String id) { + public void scrobble(String id, Boolean submission) { App.getSubsonicClientInstance(false) .getMediaAnnotationClient() - .scrobble(id) + .scrobble(id, submission) .enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { diff --git a/app/src/main/java/com/cappielloantonio/tempo/service/MediaManager.java b/app/src/main/java/com/cappielloantonio/tempo/service/MediaManager.java index b27b88a8..51e059b7 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/service/MediaManager.java +++ b/app/src/main/java/com/cappielloantonio/tempo/service/MediaManager.java @@ -293,9 +293,9 @@ public class MediaManager { getQueueRepository().setPlayingPausedTimestamp(mediaItem.mediaId, ms); } - public static void scrobble(MediaItem mediaItem) { + public static void scrobble(MediaItem mediaItem, Boolean submission) { if (mediaItem != null && Preferences.isScrobblingEnabled()) { - getSongRepository().scrobble(mediaItem.mediaMetadata.extras.getString("id")); + getSongRepository().scrobble(mediaItem.mediaMetadata.extras.getString("id"), submission); } } diff --git a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationClient.java b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationClient.java index eb21b42b..156f1fdc 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationClient.java +++ b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationClient.java @@ -34,8 +34,8 @@ public class MediaAnnotationClient { return mediaAnnotationService.setRating(subsonic.getParams(), id, rating); } - public Call scrobble(String id) { + public Call scrobble(String id, Boolean submission) { Log.d(TAG, "scrobble()"); - return mediaAnnotationService.scrobble(subsonic.getParams(), id); + return mediaAnnotationService.scrobble(subsonic.getParams(), id, submission); } } diff --git a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationService.java b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationService.java index af6aadf5..65c20e92 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationService.java +++ b/app/src/main/java/com/cappielloantonio/tempo/subsonic/api/mediaannotation/MediaAnnotationService.java @@ -20,5 +20,5 @@ public interface MediaAnnotationService { Call setRating(@QueryMap Map params, @Query("id") String id, @Query("rating") int rating); @GET("scrobble") - Call scrobble(@QueryMap Map params, @Query("id") String id); + Call scrobble(@QueryMap Map params, @Query("id") String id, @Query("submission") Boolean submission); } 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 80803c89..043fc16b 100644 --- a/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt +++ b/app/src/notquitemy/java/com/cappielloantonio/tempo/service/MediaService.kt @@ -175,6 +175,7 @@ class MediaService : MediaLibraryService() { override fun onTracksChanged(tracks: Tracks) { ReplayGainUtil.setReplayGain(player, tracks) + MediaManager.scrobble(player.currentMediaItem, false) } override fun onIsPlayingChanged(isPlaying: Boolean) { @@ -184,6 +185,7 @@ class MediaService : MediaLibraryService() { player.currentPosition ) } + MediaManager.scrobble(player.currentMediaItem, false) } override fun onPlaybackStateChanged(playbackState: Int) { @@ -192,7 +194,7 @@ class MediaService : MediaLibraryService() { 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) } } @@ -206,7 +208,7 @@ class MediaService : MediaLibraryService() { 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) }