mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 09:53:33 +00:00
Separate the functions for creating a mediaItem from a Child object and from a Download object
This commit is contained in:
parent
e3f088468c
commit
e337c6faf2
15 changed files with 103 additions and 141 deletions
|
|
@ -63,4 +63,6 @@ object Constants {
|
|||
const val MEDIA_MIX = "MEDIA_MIX"
|
||||
const val MEDIA_CHRONOLOGY = "MEDIA_CHRONOLOGY"
|
||||
const val MEDIA_BEST_OF = "MEDIA_BEST_OF"
|
||||
|
||||
const val DOWNLOAD_URI = "rest/download"
|
||||
}
|
||||
|
|
@ -17,18 +17,18 @@ import java.util.List;
|
|||
|
||||
@OptIn(markerClass = UnstableApi.class)
|
||||
public class MappingUtil {
|
||||
public static ArrayList<MediaItem> mapMediaItems(List<Child> items, boolean stream) {
|
||||
ArrayList<MediaItem> mediaItems = new ArrayList();
|
||||
public static List<MediaItem> mapMediaItems(List<Child> items) {
|
||||
ArrayList<MediaItem> mediaItems = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
mediaItems.add(mapMediaItem(items.get(i), stream));
|
||||
mediaItems.add(mapMediaItem(items.get(i)));
|
||||
}
|
||||
|
||||
return mediaItems;
|
||||
}
|
||||
|
||||
public static MediaItem mapMediaItem(Child media, boolean stream) {
|
||||
boolean isDownloaded = DownloadUtil.getDownloadTracker(App.getContext()).isDownloaded(MusicUtil.getDownloadUri(media.getId()));
|
||||
public static MediaItem mapMediaItem(Child media) {
|
||||
Uri uri = getUri(media);
|
||||
|
||||
Bundle bundle = new Bundle();
|
||||
bundle.putString("id", media.getId());
|
||||
|
|
@ -62,6 +62,7 @@ public class MappingUtil {
|
|||
bundle.putLong("bookmarkPosition", media.getBookmarkPosition() != null ? media.getBookmarkPosition() : 0);
|
||||
bundle.putInt("originalWidth", media.getOriginalWidth() != null ? media.getOriginalWidth() : 0);
|
||||
bundle.putInt("originalHeight", media.getOriginalHeight() != null ? media.getOriginalHeight() : 0);
|
||||
bundle.putString("uri", uri.toString());
|
||||
|
||||
return new MediaItem.Builder()
|
||||
.setMediaId(media.getId())
|
||||
|
|
@ -78,20 +79,51 @@ public class MappingUtil {
|
|||
)
|
||||
.setRequestMetadata(
|
||||
new MediaItem.RequestMetadata.Builder()
|
||||
.setMediaUri(getUri(media, stream && !isDownloaded))
|
||||
.setMediaUri(uri)
|
||||
.setExtras(bundle)
|
||||
.build()
|
||||
)
|
||||
.setMimeType(MimeTypes.BASE_TYPE_AUDIO)
|
||||
.setUri(getUri(media, stream && !isDownloaded))
|
||||
.setUri(uri)
|
||||
.build();
|
||||
}
|
||||
|
||||
private static Uri getUri(Child media, boolean stream) {
|
||||
if (stream) {
|
||||
return MusicUtil.getStreamUri(media.getId());
|
||||
} else {
|
||||
return MusicUtil.getDownloadUri(media.getId());
|
||||
public static List<MediaItem> mapDownloads(List<Child> items) {
|
||||
ArrayList<MediaItem> downloads = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < items.size(); i++) {
|
||||
downloads.add(mapDownload(items.get(i)));
|
||||
}
|
||||
|
||||
return downloads;
|
||||
}
|
||||
|
||||
public static MediaItem mapDownload(Child media) {
|
||||
return new MediaItem.Builder()
|
||||
.setMediaId(media.getId())
|
||||
.setMediaMetadata(
|
||||
new MediaMetadata.Builder()
|
||||
.setTitle(MusicUtil.getReadableString(media.getTitle()))
|
||||
.setTrackNumber(media.getTrack())
|
||||
.setDiscNumber(media.getDiscNumber())
|
||||
.setReleaseYear(media.getYear())
|
||||
.setAlbumTitle(MusicUtil.getReadableString(media.getAlbum()))
|
||||
.setArtist(MusicUtil.getReadableString(media.getArtist()))
|
||||
.build()
|
||||
)
|
||||
.setRequestMetadata(
|
||||
new MediaItem.RequestMetadata.Builder()
|
||||
.setMediaUri(MusicUtil.getDownloadUri(media.getId()))
|
||||
.build()
|
||||
)
|
||||
.setMimeType(MimeTypes.BASE_TYPE_AUDIO)
|
||||
.setUri(MusicUtil.getDownloadUri(media.getId()))
|
||||
.build();
|
||||
}
|
||||
|
||||
private static Uri getUri(Child media) {
|
||||
return DownloadUtil.getDownloadTracker(App.getContext()).isDownloaded(media.getId())
|
||||
? MusicUtil.getDownloadUri(media.getId())
|
||||
: MusicUtil.getStreamUri(media.getId());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,9 @@ import android.net.Network;
|
|||
import android.net.NetworkCapabilities;
|
||||
import android.net.Uri;
|
||||
import android.text.Html;
|
||||
import android.util.Log;
|
||||
|
||||
import com.cappielloantonio.play.App;
|
||||
import com.cappielloantonio.play.R;
|
||||
import com.cappielloantonio.play.glide.CustomGlideRequest;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -45,6 +44,8 @@ public class MusicUtil {
|
|||
uri.append("&format=").append(getTranscodingFormatPreference());
|
||||
uri.append("&id=").append(id);
|
||||
|
||||
Log.d(TAG, "getStreamUri: " + uri);
|
||||
|
||||
return Uri.parse(uri.toString());
|
||||
}
|
||||
|
||||
|
|
@ -54,7 +55,7 @@ public class MusicUtil {
|
|||
StringBuilder uri = new StringBuilder();
|
||||
|
||||
uri.append(App.getSubsonicClientInstance(false).getUrl());
|
||||
uri.append("stream");
|
||||
uri.append("download");
|
||||
|
||||
if (params.containsKey("u") && params.get("u") != null)
|
||||
uri.append("?u=").append(params.get("u"));
|
||||
|
|
@ -71,6 +72,8 @@ public class MusicUtil {
|
|||
|
||||
uri.append("&id=").append(id);
|
||||
|
||||
Log.d(TAG, "getDownloadUri: " + uri);
|
||||
|
||||
return Uri.parse(uri.toString());
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue