mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 18:03:33 +00:00
Saving play history. The tracks are saved in the db at the time of playback and every week a list of the most played tracks is generated in the home page in grid format
This commit is contained in:
parent
6a1c5d2ce3
commit
ff8bf4f6bf
14 changed files with 646 additions and 55 deletions
|
|
@ -1,16 +1,18 @@
|
|||
package com.cappielloantonio.play.util;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.OptIn;
|
||||
import androidx.media3.common.MediaItem;
|
||||
import androidx.media3.common.MediaMetadata;
|
||||
import androidx.media3.common.MimeTypes;
|
||||
import androidx.media3.common.util.UnstableApi;
|
||||
|
||||
import com.cappielloantonio.play.model.Album;
|
||||
import com.cappielloantonio.play.model.Artist;
|
||||
import com.cappielloantonio.play.model.Chronology;
|
||||
import com.cappielloantonio.play.model.Download;
|
||||
import com.cappielloantonio.play.model.Media;
|
||||
import com.cappielloantonio.play.model.Playlist;
|
||||
|
|
@ -201,7 +203,7 @@ public class MappingUtil {
|
|||
return genres;
|
||||
}
|
||||
|
||||
@SuppressLint("UnsafeOptInUsageError")
|
||||
@OptIn(markerClass = UnstableApi.class)
|
||||
public static MediaItem mapMediaItem(Context context, Media media, boolean stream) {
|
||||
boolean isDownloaded = DownloadUtil.getDownloadTracker(context).isDownloaded(MusicUtil.getDownloadUri(media.getId()));
|
||||
|
||||
|
|
@ -211,6 +213,7 @@ public class MappingUtil {
|
|||
bundle.putString("artistId", media.getArtistId());
|
||||
bundle.putString("coverArtId", media.getCoverArtId());
|
||||
bundle.putString("mediaType", media.getType());
|
||||
bundle.putLong("duration", media.getDuration());
|
||||
bundle.putString("container", media.getContainer());
|
||||
bundle.putInt("bitrate", media.getBitrate());
|
||||
bundle.putString("extension", media.getExtension());
|
||||
|
|
@ -268,6 +271,36 @@ public class MappingUtil {
|
|||
return mediaItems;
|
||||
}
|
||||
|
||||
public static Chronology mapChronology(MediaItem item) {
|
||||
return new Chronology(
|
||||
item.mediaId,
|
||||
item.mediaMetadata.title.toString(),
|
||||
item.mediaMetadata.extras.get("albumId").toString(),
|
||||
item.mediaMetadata.albumTitle.toString(),
|
||||
item.mediaMetadata.extras.get("artistId").toString(),
|
||||
item.mediaMetadata.artist.toString(),
|
||||
item.mediaMetadata.extras.get("coverArtId").toString(),
|
||||
(long) item.mediaMetadata.extras.get("duration"),
|
||||
item.mediaMetadata.extras.get("container").toString(),
|
||||
(int) item.mediaMetadata.extras.get("bitrate"),
|
||||
item.mediaMetadata.extras.get("extension").toString()
|
||||
);
|
||||
}
|
||||
|
||||
public static ArrayList<Media> mapChronology(List<Chronology> items) {
|
||||
ArrayList<Media> songs = new ArrayList();
|
||||
|
||||
for (Chronology item : items) {
|
||||
songs.add(mapSong(item));
|
||||
}
|
||||
|
||||
return songs;
|
||||
}
|
||||
|
||||
public static Media mapSong(Chronology item) {
|
||||
return new Media(item);
|
||||
}
|
||||
|
||||
public static ArrayList<PodcastChannel> mapPodcastChannel(List<com.cappielloantonio.play.subsonic.models.PodcastChannel> subsonicPodcastChannels) {
|
||||
ArrayList<PodcastChannel> podcastChannels = new ArrayList();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue