Send "now playing" scrobbles to server.

This commit is contained in:
caiocotts 2024-01-22 21:41:54 -05:00
parent 293b0f71c8
commit d8c8a783de
5 changed files with 11 additions and 9 deletions

View file

@ -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<ApiResponse>() {
@Override
public void onResponse(@NonNull Call<ApiResponse> call, @NonNull Response<ApiResponse> response) {

View file

@ -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);
}
}

View file

@ -34,8 +34,8 @@ public class MediaAnnotationClient {
return mediaAnnotationService.setRating(subsonic.getParams(), id, rating);
}
public Call<ApiResponse> scrobble(String id) {
public Call<ApiResponse> scrobble(String id, Boolean submission) {
Log.d(TAG, "scrobble()");
return mediaAnnotationService.scrobble(subsonic.getParams(), id);
return mediaAnnotationService.scrobble(subsonic.getParams(), id, submission);
}
}

View file

@ -20,5 +20,5 @@ public interface MediaAnnotationService {
Call<ApiResponse> setRating(@QueryMap Map<String, String> params, @Query("id") String id, @Query("rating") int rating);
@GET("scrobble")
Call<ApiResponse> scrobble(@QueryMap Map<String, String> params, @Query("id") String id);
Call<ApiResponse> scrobble(@QueryMap Map<String, String> params, @Query("id") String id, @Query("submission") Boolean submission);
}

View file

@ -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)
}