Added media type to class and replaced "song" with a generic "media"

This commit is contained in:
antonio 2022-03-12 14:09:00 +01:00
parent eecbed2f61
commit 51cd88dd3f
9 changed files with 52 additions and 38 deletions

View file

@ -45,8 +45,8 @@ public interface DownloadDao {
@Insert(onConflict = OnConflictStrategy.REPLACE) @Insert(onConflict = OnConflictStrategy.REPLACE)
void insertAll(List<Download> downloads); void insertAll(List<Download> downloads);
@Query("DELETE FROM download WHERE songId = :songId") @Query("DELETE FROM download WHERE mediaId = :mediaId")
void delete(String songId); void delete(String mediaId);
@Query("DELETE FROM download WHERE server=:server") @Query("DELETE FROM download WHERE server=:server")
void deleteAll(String server); void deleteAll(String server);

View file

@ -18,8 +18,8 @@ public class Download {
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
private String id; private String id;
@ColumnInfo(name = "songId") @ColumnInfo(name = "mediaId")
private String songID; private String mediaID;
@ColumnInfo(name = "title") @ColumnInfo(name = "title")
private String title; private String title;
@ -54,9 +54,12 @@ public class Download {
@ColumnInfo(name = "playlistName") @ColumnInfo(name = "playlistName")
private String playlistName; private String playlistName;
public Download(@NonNull String id, String songID, String title, String albumId, String albumName, String artistId, String artistName, int trackNumber, String primary, long duration, String server, String playlistId, String playlistName) { @ColumnInfo(name = "type")
private String type;
public Download(@NonNull String id, String mediaID, String title, String albumId, String albumName, String artistId, String artistName, int trackNumber, String primary, long duration, String server, String playlistId, String playlistName, String type) {
this.id = id; this.id = id;
this.songID = songID; this.mediaID = mediaID;
this.title = title; this.title = title;
this.albumId = albumId; this.albumId = albumId;
this.albumName = albumName; this.albumName = albumName;
@ -68,22 +71,24 @@ public class Download {
this.server = server; this.server = server;
this.playlistId = playlistId; this.playlistId = playlistId;
this.playlistName = playlistName; this.playlistName = playlistName;
this.type = type;
} }
public Download(Media song, String playlistId, String playlistName) { public Download(Media media, String playlistId, String playlistName) {
this.id = UUID.randomUUID().toString(); this.id = UUID.randomUUID().toString();
this.songID = song.getId(); this.mediaID = media.getId();
this.title = song.getTitle(); this.title = media.getTitle();
this.albumId = song.getAlbumId(); this.albumId = media.getAlbumId();
this.albumName = song.getAlbumName(); this.albumName = media.getAlbumName();
this.artistId = song.getArtistId(); this.artistId = media.getArtistId();
this.artistName = MusicUtil.normalizedArtistName(song.getArtistName()); this.artistName = MusicUtil.normalizedArtistName(media.getArtistName());
this.trackNumber = song.getTrackNumber(); this.trackNumber = media.getTrackNumber();
this.primary = song.getCoverArtId(); this.primary = media.getCoverArtId();
this.duration = song.getDuration(); this.duration = media.getDuration();
this.server = PreferenceUtil.getInstance(App.getInstance()).getServerId(); this.server = PreferenceUtil.getInstance(App.getInstance()).getServerId();
this.playlistId = playlistId; this.playlistId = playlistId;
this.playlistName = playlistName; this.playlistName = playlistName;
this.type = media.getType();
} }
@NonNull @NonNull
@ -95,12 +100,12 @@ public class Download {
this.id = id; this.id = id;
} }
public String getSongID() { public String getMediaID() {
return songID; return mediaID;
} }
public void setSongID(String songID) { public void setMediaID(String mediaID) {
this.songID = songID; this.mediaID = mediaID;
} }
public String getTitle() { public String getTitle() {
@ -190,4 +195,12 @@ public class Download {
public void setPlaylistName(String playlistName) { public void setPlaylistName(String playlistName) {
this.playlistName = playlistName; this.playlistName = playlistName;
} }
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
} }

View file

@ -119,7 +119,7 @@ public class Media implements Parcelable {
} }
public Media(Download download) { public Media(Download download) {
this.id = download.getSongID(); this.id = download.getMediaID();
this.title = download.getTitle(); this.title = download.getTitle();
this.albumId = download.getAlbumId(); this.albumId = download.getAlbumId();
this.albumName = download.getAlbumName(); this.albumName = download.getAlbumName();
@ -128,6 +128,7 @@ public class Media implements Parcelable {
this.trackNumber = download.getTrackNumber(); this.trackNumber = download.getTrackNumber();
this.coverArtId = download.getPrimary(); this.coverArtId = download.getPrimary();
this.duration = download.getDuration(); this.duration = download.getDuration();
this.type = download.getType();
} }
public String getId() { public String getId() {

View file

@ -128,7 +128,7 @@ public class DownloadRepository {
@Override @Override
public void run() { public void run() {
downloadDao.delete(download.getSongID()); downloadDao.delete(download.getMediaID());
} }
} }
} }

View file

@ -128,17 +128,17 @@ public class MappingUtil {
return playlist; return playlist;
} }
public static ArrayList<Media> mapDownloadToSong(List<Download> downloads) { public static ArrayList<Media> mapDownloadToMedia(List<Download> downloads) {
ArrayList<Media> songs = new ArrayList(); ArrayList<Media> media = new ArrayList();
for (Download download : downloads) { for (Download download : downloads) {
Media song = new Media(download); Media item = new Media(download);
if (!songs.contains(song)) { if (!media.contains(item)) {
songs.add(song); media.add(item);
} }
} }
return songs; return media;
} }
public static ArrayList<Album> mapDownloadToAlbum(List<Download> downloads) { public static ArrayList<Album> mapDownloadToAlbum(List<Download> downloads) {
@ -177,18 +177,18 @@ public class MappingUtil {
return playlists; return playlists;
} }
public static ArrayList<Download> mapDownload(List<Media> songs, String playlistId, String playlistName) { public static ArrayList<Download> mapDownload(List<Media> media, String playlistId, String playlistName) {
ArrayList<Download> downloads = new ArrayList(); ArrayList<Download> downloads = new ArrayList();
for (Media song : songs) { for (Media item : media) {
downloads.add(new Download(song, playlistId, playlistName)); downloads.add(new Download(item, playlistId, playlistName));
} }
return downloads; return downloads;
} }
public static Download mapDownload(Media song, String playlistId, String playlistName) { public static Download mapDownload(Media media, String playlistId, String playlistName) {
return new Download(song, playlistId, playlistName); return new Download(media, playlistId, playlistName);
} }
public static ArrayList<com.cappielloantonio.play.model.Genre> mapGenre(List<Genre> genreList) { public static ArrayList<com.cappielloantonio.play.model.Genre> mapGenre(List<Genre> genreList) {

View file

@ -38,7 +38,7 @@ public class AlbumPageViewModel extends AndroidViewModel {
public LiveData<List<Media>> getAlbumSongLiveList(LifecycleOwner owner) { public LiveData<List<Media>> getAlbumSongLiveList(LifecycleOwner owner) {
if (isOffline) { if (isOffline) {
downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(owner, downloads -> songLiveList.postValue(MappingUtil.mapDownloadToSong(downloads))); downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(owner, downloads -> songLiveList.postValue(MappingUtil.mapDownloadToMedia(downloads)));
} else { } else {
songLiveList = albumRepository.getAlbumTracks(album.getId()); songLiveList = albumRepository.getAlbumTracks(album.getId());
} }

View file

@ -44,7 +44,7 @@ public class DownloadViewModel extends AndroidViewModel {
} }
public LiveData<List<Media>> getDownloadedTracks(LifecycleOwner owner, int size) { public LiveData<List<Media>> getDownloadedTracks(LifecycleOwner owner, int size) {
downloadRepository.getLiveDownloadSample(size, false, false, true, false).observe(owner, downloads -> downloadedTrackSample.postValue(MappingUtil.mapDownloadToSong(downloads))); downloadRepository.getLiveDownloadSample(size, false, false, true, false).observe(owner, downloads -> downloadedTrackSample.postValue(MappingUtil.mapDownloadToMedia(downloads)));
return downloadedTrackSample; return downloadedTrackSample;
} }

View file

@ -36,7 +36,7 @@ public class PlaylistPageViewModel extends AndroidViewModel {
public LiveData<List<Media>> getPlaylistSongLiveList(LifecycleOwner owner) { public LiveData<List<Media>> getPlaylistSongLiveList(LifecycleOwner owner) {
if (isOffline) { if (isOffline) {
downloadRepository.getLiveDownloadFromPlaylist(playlist.getId()).observe(owner, downloads -> playlistSongLiveList.postValue(MappingUtil.mapDownloadToSong(downloads))); downloadRepository.getLiveDownloadFromPlaylist(playlist.getId()).observe(owner, downloads -> playlistSongLiveList.postValue(MappingUtil.mapDownloadToMedia(downloads)));
} else { } else {
playlistSongLiveList = playlistRepository.getPlaylistSongs(playlist.getId()); playlistSongLiveList = playlistRepository.getPlaylistSongs(playlist.getId());
} }

View file

@ -67,10 +67,10 @@ public class SongListPageViewModel extends AndroidViewModel {
songList = songRepository.getStarredSongs(false, -1); songList = songRepository.getStarredSongs(false, -1);
break; break;
case Media.DOWNLOADED: case Media.DOWNLOADED:
downloadRepository.getLiveDownload().observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToSong(downloads))); downloadRepository.getLiveDownload().observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToMedia(downloads)));
break; break;
case Media.FROM_ALBUM: case Media.FROM_ALBUM:
downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToSong(downloads))); downloadRepository.getLiveDownloadFromAlbum(album.getId()).observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToMedia(downloads)));
break; break;
} }