Optimized the history saving and scrobbling functions

This commit is contained in:
antonio 2023-01-06 21:42:57 +01:00
parent 1204716a65
commit 105d5ca9c5
4 changed files with 48 additions and 35 deletions

View file

@ -300,12 +300,14 @@ public class MediaManager {
public static void scrobble(MediaItem mediaItem) {
if (mediaItem != null)
getSongRepository().scrobble(mediaItem.mediaMetadata.extras.getString("id"));
if (getQueueRepository().isMediaPlayingPlausible(mediaItem))
getSongRepository().scrobble(mediaItem.mediaMetadata.extras.getString("id"));
}
public static void saveChronology(MediaItem mediaItem) {
if (mediaItem != null)
getChronologyRepository().insert(MappingUtil.mapChronology(mediaItem));
if (getQueueRepository().isMediaPlayingPlausible(mediaItem))
getChronologyRepository().insert(MappingUtil.mapChronology(mediaItem));
}
private static QueueRepository getQueueRepository() {

View file

@ -233,11 +233,13 @@ class MediaService : MediaLibraryService(), SessionAvailabilityListener {
player.addListener(object : Player.Listener {
override fun onMediaItemTransition(mediaItem: MediaItem?, reason: Int) {
if (mediaItem == null) return
MediaManager.setLastPlayedTimestamp(mediaItem)
if (mediaItem.mediaMetadata.extras!!.getString("mediaType") == Media.MEDIA_TYPE_MUSIC) {
MediaManager.scrobble(mediaItem)
MediaManager.saveChronology(mediaItem)
}
MediaManager.setLastPlayedTimestamp(mediaItem)
}
override fun onIsPlayingChanged(isPlaying: Boolean) {