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)
void insertAll(List<Download> downloads);
@Query("DELETE FROM download WHERE songId = :songId")
void delete(String songId);
@Query("DELETE FROM download WHERE mediaId = :mediaId")
void delete(String mediaId);
@Query("DELETE FROM download WHERE server=:server")
void deleteAll(String server);

View file

@ -18,8 +18,8 @@ public class Download {
@ColumnInfo(name = "id")
private String id;
@ColumnInfo(name = "songId")
private String songID;
@ColumnInfo(name = "mediaId")
private String mediaID;
@ColumnInfo(name = "title")
private String title;
@ -54,9 +54,12 @@ public class Download {
@ColumnInfo(name = "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.songID = songID;
this.mediaID = mediaID;
this.title = title;
this.albumId = albumId;
this.albumName = albumName;
@ -68,22 +71,24 @@ public class Download {
this.server = server;
this.playlistId = playlistId;
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.songID = song.getId();
this.title = song.getTitle();
this.albumId = song.getAlbumId();
this.albumName = song.getAlbumName();
this.artistId = song.getArtistId();
this.artistName = MusicUtil.normalizedArtistName(song.getArtistName());
this.trackNumber = song.getTrackNumber();
this.primary = song.getCoverArtId();
this.duration = song.getDuration();
this.mediaID = media.getId();
this.title = media.getTitle();
this.albumId = media.getAlbumId();
this.albumName = media.getAlbumName();
this.artistId = media.getArtistId();
this.artistName = MusicUtil.normalizedArtistName(media.getArtistName());
this.trackNumber = media.getTrackNumber();
this.primary = media.getCoverArtId();
this.duration = media.getDuration();
this.server = PreferenceUtil.getInstance(App.getInstance()).getServerId();
this.playlistId = playlistId;
this.playlistName = playlistName;
this.type = media.getType();
}
@NonNull
@ -95,12 +100,12 @@ public class Download {
this.id = id;
}
public String getSongID() {
return songID;
public String getMediaID() {
return mediaID;
}
public void setSongID(String songID) {
this.songID = songID;
public void setMediaID(String mediaID) {
this.mediaID = mediaID;
}
public String getTitle() {
@ -190,4 +195,12 @@ public class Download {
public void setPlaylistName(String 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) {
this.id = download.getSongID();
this.id = download.getMediaID();
this.title = download.getTitle();
this.albumId = download.getAlbumId();
this.albumName = download.getAlbumName();
@ -128,6 +128,7 @@ public class Media implements Parcelable {
this.trackNumber = download.getTrackNumber();
this.coverArtId = download.getPrimary();
this.duration = download.getDuration();
this.type = download.getType();
}
public String getId() {

View file

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

View file

@ -128,17 +128,17 @@ public class MappingUtil {
return playlist;
}
public static ArrayList<Media> mapDownloadToSong(List<Download> downloads) {
ArrayList<Media> songs = new ArrayList();
public static ArrayList<Media> mapDownloadToMedia(List<Download> downloads) {
ArrayList<Media> media = new ArrayList();
for (Download download : downloads) {
Media song = new Media(download);
if (!songs.contains(song)) {
songs.add(song);
Media item = new Media(download);
if (!media.contains(item)) {
media.add(item);
}
}
return songs;
return media;
}
public static ArrayList<Album> mapDownloadToAlbum(List<Download> downloads) {
@ -177,18 +177,18 @@ public class MappingUtil {
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();
for (Media song : songs) {
downloads.add(new Download(song, playlistId, playlistName));
for (Media item : media) {
downloads.add(new Download(item, playlistId, playlistName));
}
return downloads;
}
public static Download mapDownload(Media song, String playlistId, String playlistName) {
return new Download(song, playlistId, playlistName);
public static Download mapDownload(Media media, String playlistId, String playlistName) {
return new Download(media, playlistId, playlistName);
}
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) {
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 {
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) {
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;
}

View file

@ -36,7 +36,7 @@ public class PlaylistPageViewModel extends AndroidViewModel {
public LiveData<List<Media>> getPlaylistSongLiveList(LifecycleOwner owner) {
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 {
playlistSongLiveList = playlistRepository.getPlaylistSongs(playlist.getId());
}

View file

@ -67,10 +67,10 @@ public class SongListPageViewModel extends AndroidViewModel {
songList = songRepository.getStarredSongs(false, -1);
break;
case Media.DOWNLOADED:
downloadRepository.getLiveDownload().observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToSong(downloads)));
downloadRepository.getLiveDownload().observe(owner, downloads -> songList.setValue(MappingUtil.mapDownloadToMedia(downloads)));
break;
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;
}