From 51cd88dd3fef71e6ccd758e54dd9b56603b9aaef Mon Sep 17 00:00:00 2001 From: antonio Date: Sat, 12 Mar 2022 14:09:00 +0100 Subject: [PATCH] Added media type to class and replaced "song" with a generic "media" --- .../play/database/dao/DownloadDao.java | 4 +- .../cappielloantonio/play/model/Download.java | 49 ++++++++++++------- .../cappielloantonio/play/model/Media.java | 3 +- .../play/repository/DownloadRepository.java | 2 +- .../play/util/MappingUtil.java | 22 ++++----- .../play/viewmodel/AlbumPageViewModel.java | 2 +- .../play/viewmodel/DownloadViewModel.java | 2 +- .../play/viewmodel/PlaylistPageViewModel.java | 2 +- .../play/viewmodel/SongListPageViewModel.java | 4 +- 9 files changed, 52 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/database/dao/DownloadDao.java b/app/src/main/java/com/cappielloantonio/play/database/dao/DownloadDao.java index 206f5cdd..ed7d90f2 100644 --- a/app/src/main/java/com/cappielloantonio/play/database/dao/DownloadDao.java +++ b/app/src/main/java/com/cappielloantonio/play/database/dao/DownloadDao.java @@ -45,8 +45,8 @@ public interface DownloadDao { @Insert(onConflict = OnConflictStrategy.REPLACE) void insertAll(List 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); diff --git a/app/src/main/java/com/cappielloantonio/play/model/Download.java b/app/src/main/java/com/cappielloantonio/play/model/Download.java index e4f8a1fe..3ea154f5 100644 --- a/app/src/main/java/com/cappielloantonio/play/model/Download.java +++ b/app/src/main/java/com/cappielloantonio/play/model/Download.java @@ -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; + } } diff --git a/app/src/main/java/com/cappielloantonio/play/model/Media.java b/app/src/main/java/com/cappielloantonio/play/model/Media.java index fdfac521..cdab09fc 100644 --- a/app/src/main/java/com/cappielloantonio/play/model/Media.java +++ b/app/src/main/java/com/cappielloantonio/play/model/Media.java @@ -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() { diff --git a/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java index 86a8eb08..034e4ad6 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java @@ -128,7 +128,7 @@ public class DownloadRepository { @Override public void run() { - downloadDao.delete(download.getSongID()); + downloadDao.delete(download.getMediaID()); } } } 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 edef02c7..ad3221e2 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java @@ -128,17 +128,17 @@ public class MappingUtil { return playlist; } - public static ArrayList mapDownloadToSong(List downloads) { - ArrayList songs = new ArrayList(); + public static ArrayList mapDownloadToMedia(List downloads) { + ArrayList 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 mapDownloadToAlbum(List downloads) { @@ -177,18 +177,18 @@ public class MappingUtil { return playlists; } - public static ArrayList mapDownload(List songs, String playlistId, String playlistName) { + public static ArrayList mapDownload(List media, String playlistId, String playlistName) { ArrayList 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 mapGenre(List genreList) { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java index f22121e9..495c87e0 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java @@ -38,7 +38,7 @@ public class AlbumPageViewModel extends AndroidViewModel { public LiveData> 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()); } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java index 749c9195..94ee1080 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java @@ -44,7 +44,7 @@ public class DownloadViewModel extends AndroidViewModel { } public LiveData> 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; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java index 531a9e28..2e22544b 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistPageViewModel.java @@ -36,7 +36,7 @@ public class PlaylistPageViewModel extends AndroidViewModel { public LiveData> 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()); } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java index 39f7c314..225e0286 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongListPageViewModel.java @@ -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; }