From 8ada5f61fcca09741ce7b4b8a6ec3e111ed2d6a0 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Wed, 29 Dec 2021 10:19:02 +0100 Subject: [PATCH] New Song to MediaItem mapping method --- .../play/util/MappingUtil.java | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java index bae19b33..5f3b83f2 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java @@ -1,5 +1,11 @@ package com.cappielloantonio.play.util; +import android.content.Context; +import android.os.Bundle; + +import androidx.media3.common.MediaItem; +import androidx.media3.common.MediaMetadata; + import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Download; @@ -176,4 +182,58 @@ public class MappingUtil { return genres; } + + public static MediaItem mapMediaItem(Context context, Song song) { + Bundle bundle = new Bundle(); + bundle.putString("id", song.getId()); + bundle.putString("albumId", song.getAlbumId()); + bundle.putString("artistId", song.getArtistId()); + + return new MediaItem.Builder() + .setMediaId(song.getId()) + .setMediaMetadata( + new MediaMetadata.Builder() + .setTitle(song.getTitle()) + .setTrackNumber(song.getTrackNumber()) + .setDiscNumber(song.getDiscNumber()) + .setReleaseYear(song.getYear()) + .setAlbumTitle(song.getAlbumName()) + .setArtist(song.getArtistName()) + .setExtras(bundle) + .build() + ) + .setUri(MusicUtil.getSongStreamUri(context, song)) + .build(); + } + + public static ArrayList mapMediaItems(Context context, List songs) { + ArrayList mediaItems = new ArrayList(); + + for (Song song : songs) { + Bundle bundle = new Bundle(); + bundle.putString("id", song.getId()); + bundle.putString("albumId", song.getAlbumId()); + bundle.putString("artistId", song.getArtistId()); + + MediaItem item = new MediaItem.Builder() + .setMediaId(song.getId()) + .setMediaMetadata( + new MediaMetadata.Builder() + .setTitle(song.getTitle()) + .setTrackNumber(song.getTrackNumber()) + .setDiscNumber(song.getDiscNumber()) + .setReleaseYear(song.getYear()) + .setAlbumTitle(song.getAlbumName()) + .setArtist(song.getArtistName()) + .setExtras(bundle) + .build() + ) + .setUri(MusicUtil.getSongStreamUri(context, song)) + .build(); + + mediaItems.add(item); + } + + return mediaItems; + } }