diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/SongHorizontalAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/SongHorizontalAdapter.java index 0a6de9c6..9796218f 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/SongHorizontalAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/SongHorizontalAdapter.java @@ -18,6 +18,8 @@ import com.cappielloantonio.play.R; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.util.DownloadUtil; +import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; @@ -54,12 +56,11 @@ public class SongHorizontalAdapter extends RecyclerView.Adapter> getAll(String server); + @Query("SELECT * FROM download") + LiveData> getAll(); - @Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NULL GROUP BY artist LIMIT :size") - LiveData> getSampleArtist(int size, String server); + @Query("SELECT * FROM download WHERE playlist_id IS NULL GROUP BY artist LIMIT :size") + LiveData> getSampleArtist(int size); - @Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NULL GROUP BY album LIMIT :size") - LiveData> getSampleAlbum(int size, String server); + @Query("SELECT * FROM download WHERE playlist_id IS NULL GROUP BY album LIMIT :size") + LiveData> getSampleAlbum(int size); - @Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NOT NULL GROUP BY playlist_id LIMIT :size") - LiveData> getSamplePlaylist(int size, String server); + @Query("SELECT * FROM download WHERE playlist_id IS NOT NULL GROUP BY playlist_id LIMIT :size") + LiveData> getSamplePlaylist(int size); - @Query("SELECT * FROM download WHERE server=:server LIMIT :size") - LiveData> getSample(int size, String server); + @Query("SELECT * FROM download LIMIT :size") + LiveData> getSample(int size); - @Query("SELECT * FROM download WHERE server=:server AND artist=:artistId") - LiveData> getAllFromArtist(String server, String artistId); + @Query("SELECT * FROM download WHERE artist=:artistId") + LiveData> getAllFromArtist(String artistId); - @Query("SELECT * FROM download WHERE server=:server AND album=:albumId ORDER BY track ASC") - LiveData> getAllFromAlbum(String server, String albumId); + @Query("SELECT * FROM download WHERE album=:albumId ORDER BY track ASC") + LiveData> getAllFromAlbum(String albumId); - @Query("SELECT * FROM download WHERE server=:server AND playlist_id=:playlistId") - LiveData> getAllFromPlaylist(String server, String playlistId); + @Query("SELECT * FROM download WHERE playlist_id=:playlistId") + LiveData> getAllFromPlaylist(String playlistId); - @Query("SELECT * FROM download WHERE server=:server AND playlist_id IS NOT NULL GROUP BY playlist_id") - LiveData> getAllPlaylists(String server); + @Query("SELECT * FROM download WHERE playlist_id IS NOT NULL GROUP BY playlist_id") + LiveData> getAllPlaylists(); @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(Download download); @@ -45,9 +45,9 @@ public interface DownloadDao { @Insert(onConflict = OnConflictStrategy.REPLACE) void insertAll(List downloads); - @Query("DELETE FROM download WHERE media_id = :mediaId") - void delete(String mediaId); + @Query("DELETE FROM download WHERE id = :id") + void delete(String id); - @Query("DELETE FROM download WHERE server=:server") - void deleteAll(String server); + @Query("DELETE FROM download") + void deleteAll(); } \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/model/Download.kt b/app/src/main/java/com/cappielloantonio/play/model/Download.kt index 4f48839d..45e438f3 100644 --- a/app/src/main/java/com/cappielloantonio/play/model/Download.kt +++ b/app/src/main/java/com/cappielloantonio/play/model/Download.kt @@ -11,12 +11,42 @@ import kotlinx.android.parcel.Parcelize @Parcelize @Entity(tableName = "download") class Download(@PrimaryKey override val id: String) : Child(id) { - @ColumnInfo(name = "media_id") - var mediaID: String? = null - - @ColumnInfo - var server: String? = null - @ColumnInfo(name = "playlist_id") var playlistId: String? = null + + @ColumnInfo(name = "playlist_name") + var playlistName: String? = null + + constructor(child: Child) : this(child.id) { + parentId = child.parentId + isDir = child.isDir + title = child.title + album = child.album + artist = child.artist + track = child.track + year = child.year + genre = child.genre + coverArtId = child.coverArtId + size = child.size + contentType = child.contentType + suffix = child.suffix + transcodedContentType = child.transcodedContentType + transcodedSuffix = child.transcodedSuffix + duration = child.duration + bitrate = child.bitrate + path = child.path + isVideo = child.isVideo + userRating = child.userRating + averageRating = child.averageRating + playCount = child.playCount + discNumber = child.discNumber + created = child.created + starred = child.starred + albumId = child.albumId + artistId = child.artistId + type = child.type + bookmarkPosition = child.bookmarkPosition + originalWidth = child.originalWidth + originalHeight = child.originalHeight + } } \ No newline at end of file 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 ee4d7fed..5ec30667 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/DownloadRepository.java @@ -20,31 +20,31 @@ public class DownloadRepository { } public LiveData> getLiveDownload() { - return downloadDao.getAll(Preferences.getServerId()); + return downloadDao.getAll(); } public LiveData> getLiveDownloadSample(int size, boolean isArtist, boolean isAlbum, boolean isTrack, boolean isPlaylist) { - if (isArtist) return downloadDao.getSampleArtist(size, Preferences.getServerId()); - else if (isAlbum) return downloadDao.getSampleAlbum(size, Preferences.getServerId()); - else if (isTrack) return downloadDao.getSample(size, Preferences.getServerId()); - else if (isPlaylist) return downloadDao.getSamplePlaylist(size, Preferences.getServerId()); - else return downloadDao.getSample(size, Preferences.getServerId()); + if (isArtist) return downloadDao.getSampleArtist(size); + else if (isAlbum) return downloadDao.getSampleAlbum(size); + else if (isTrack) return downloadDao.getSample(size); + else if (isPlaylist) return downloadDao.getSamplePlaylist(size); + else return downloadDao.getSample(size); } public LiveData> getLiveDownloadFromArtist(String artistId) { - return downloadDao.getAllFromArtist(Preferences.getServerId(), artistId); + return downloadDao.getAllFromArtist(artistId); } public LiveData> getLiveDownloadFromAlbum(String albumId) { - return downloadDao.getAllFromAlbum(Preferences.getServerId(), albumId); + return downloadDao.getAllFromAlbum(albumId); } public LiveData> getLiveDownloadFromPlaylist(String playlistId) { - return downloadDao.getAllFromPlaylist(Preferences.getServerId(), playlistId); + return downloadDao.getAllFromPlaylist(playlistId); } public LiveData> getLivePlaylist() { - return downloadDao.getAllPlaylists(Preferences.getServerId()); + return downloadDao.getAllPlaylists(); } public void insert(Download download) { @@ -104,7 +104,7 @@ public class DownloadRepository { @Override public void run() { - downloadDao.deleteAll(Preferences.getServerId()); + downloadDao.deleteAll(); } } @@ -125,7 +125,7 @@ public class DownloadRepository { @Override public void run() { - downloadDao.delete(download.getMediaID()); + downloadDao.delete(download.getId()); } } } diff --git a/app/src/main/java/com/cappielloantonio/play/subsonic/models/AlbumID3.kt b/app/src/main/java/com/cappielloantonio/play/subsonic/models/AlbumID3.kt index 01997919..5b603263 100644 --- a/app/src/main/java/com/cappielloantonio/play/subsonic/models/AlbumID3.kt +++ b/app/src/main/java/com/cappielloantonio/play/subsonic/models/AlbumID3.kt @@ -15,11 +15,11 @@ open class AlbumID3 : Parcelable { @SerializedName("coverArt") var coverArtId: String? = null - var songCount = 0 - var duration = 0 + var songCount: Int? = 0 + var duration: Int? = 0 var playCount: Long? = null var created: Date? = null var starred: Date? = null - var year: Int? = null + var year: Int = 0 var genre: String? = null } \ No newline at end of file diff --git a/app/src/main/java/com/cappielloantonio/play/ui/dialog/StarredSyncDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/dialog/StarredSyncDialog.java index dabbcd0f..81000257 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/dialog/StarredSyncDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/dialog/StarredSyncDialog.java @@ -12,12 +12,14 @@ import androidx.lifecycle.ViewModelProvider; import com.cappielloantonio.play.R; import com.cappielloantonio.play.databinding.DialogConnectionAlertBinding; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.util.MappingUtil; import com.cappielloantonio.play.util.Preferences; import com.cappielloantonio.play.viewmodel.StarredSyncViewModel; import java.util.Objects; +import java.util.stream.Collectors; public class StarredSyncDialog extends DialogFragment { private static final String TAG = "ServerUnreachableDialog"; @@ -62,7 +64,7 @@ public class StarredSyncDialog extends DialogFragment { if (songs != null) { DownloadUtil.getDownloadTracker(context).download( MappingUtil.mapMediaItems(context, songs, false), - MappingUtil.mapDownload(songs, null, null) + songs.stream().map(Download::new).collect(Collectors.toList()) ); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java index 05843fa7..6eed2cbc 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/AlbumPageFragment.java @@ -27,6 +27,7 @@ import com.cappielloantonio.play.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; @@ -38,6 +39,7 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.Objects; +import java.util.stream.Collectors; @UnstableApi public class AlbumPageFragment extends Fragment implements ClickCallback { @@ -105,7 +107,7 @@ public class AlbumPageFragment extends Fragment implements ClickCallback { if (isVisible() && getActivity() != null) { DownloadUtil.getDownloadTracker(requireContext()).download( MappingUtil.mapMediaItems(requireContext(), songs, false), - MappingUtil.mapDownload(songs, null, null) + songs.stream().map(Download::new).collect(Collectors.toList()) ); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java index 946b576f..82cf1459 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/DownloadFragment.java @@ -179,8 +179,7 @@ public class DownloadFragment extends Fragment implements ClickCallback { if (bind != null) bind.downloadedArtistRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(artists.size(), 5), GridLayoutManager.HORIZONTAL, false)); - // TODO - // downloadedArtistAdapter.setItems(artists); + downloadedArtistAdapter.setItems(artists); } }); @@ -215,8 +214,7 @@ public class DownloadFragment extends Fragment implements ClickCallback { if (bind != null) bind.downloadedAlbumRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(albums.size(), 5), GridLayoutManager.HORIZONTAL, false)); - // TODO - //downloadedAlbumAdapter.setItems(albums); + downloadedAlbumAdapter.setItems(albums); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java index a83ffe0a..e3b91ac3 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlayerCoverFragment.java @@ -22,6 +22,7 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.cappielloantonio.play.databinding.InnerFragmentPlayerCoverBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.dialog.PlaylistChooserDialog; @@ -90,7 +91,7 @@ public class PlayerCoverFragment extends Fragment { bind.innerButtonTopLeft.setOnClickListener(view -> { DownloadUtil.getDownloadTracker(requireContext()).download( MappingUtil.mapMediaItem(requireContext(), song, false), - MappingUtil.mapDownload(song, null, null) + new Download(song) ); }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java index c719abc6..5abfdb5b 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistPageFragment.java @@ -26,6 +26,7 @@ import com.cappielloantonio.play.adapter.SongHorizontalAdapter; import com.cappielloantonio.play.databinding.FragmentPlaylistPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.interfaces.ClickCallback; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.ui.activity.MainActivity; @@ -37,6 +38,7 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.Collections; import java.util.Objects; +import java.util.stream.Collectors; @UnstableApi public class PlaylistPageFragment extends Fragment implements ClickCallback { @@ -104,7 +106,12 @@ public class PlaylistPageFragment extends Fragment implements ClickCallback { if (isVisible() && getActivity() != null) { DownloadUtil.getDownloadTracker(requireContext()).download( MappingUtil.mapMediaItems(requireContext(), songs, false), - MappingUtil.mapDownload(songs, playlistPageViewModel.getPlaylist().getId(), playlistPageViewModel.getPlaylist().getName()) + songs.stream().map(child -> { + Download toDownload = new Download(child); + toDownload.setPlaylistId(playlistPageViewModel.getPlaylist().getId()); + toDownload.setPlaylistName(playlistPageViewModel.getPlaylist().getName()); + return toDownload; + }).collect(Collectors.toList()) ); } }); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java index aa1f64c1..14b845aa 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/AlbumBottomSheetDialog.java @@ -41,6 +41,7 @@ import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; @UnstableApi public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements View.OnClickListener { @@ -154,7 +155,7 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements albumBottomSheetViewModel.getAlbumTracks().observe(getViewLifecycleOwner(), songs -> { List mediaItems = MappingUtil.mapMediaItems(requireContext(), songs, false); - List downloads = MappingUtil.mapDownload(songs, null, null); + List downloads = songs.stream().map(Download::new).collect(Collectors.toList()); downloadAll.setOnClickListener(v -> { DownloadUtil.getDownloadTracker(requireContext()).download(mediaItems, downloads); diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java index aa01f6fc..715d7954 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/bottomsheetdialog/SongBottomSheetDialog.java @@ -21,6 +21,7 @@ import com.bumptech.glide.load.resource.bitmap.CenterCrop; import com.bumptech.glide.load.resource.bitmap.RoundedCorners; import com.cappielloantonio.play.R; import com.cappielloantonio.play.glide.CustomGlideRequest; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.service.MediaManager; import com.cappielloantonio.play.service.MediaService; import com.cappielloantonio.play.subsonic.models.Child; @@ -155,7 +156,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements download.setOnClickListener(v -> { DownloadUtil.getDownloadTracker(requireContext()).download( MappingUtil.mapMediaItem(requireContext(), song, false), - MappingUtil.mapDownload(song, null, null) + new Download(song) ); dismissBottomSheet(); }); @@ -164,7 +165,7 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements remove.setOnClickListener(v -> { DownloadUtil.getDownloadTracker(requireContext()).remove( MappingUtil.mapMediaItem(requireContext(), song, false), - MappingUtil.mapDownload(song, null, null) + new Download(song) ); dismissBottomSheet(); }); 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 a31f1cd0..d8f71842 100644 --- a/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java +++ b/app/src/main/java/com/cappielloantonio/play/util/MappingUtil.java @@ -60,28 +60,6 @@ public class MappingUtil { return playlists; } - public static ArrayList mapDownload(List media, String playlistId, String playlistName) { - ArrayList downloads = new ArrayList(); - - // TODO - /* for (Child item : media) { - Download download = (Download) item; - download.setMediaID(); - download.setServer(); - download.setPlaylistId(); - downloads.add(download); - } */ - - return downloads; - } - - public static Download mapDownload(Child media, String playlistId, String playlistName) { - // TODO - //return new Download(media, playlistId, playlistName); - - return null; - } - @OptIn(markerClass = UnstableApi.class) public static MediaItem mapMediaItem(Context context, Child media, boolean stream) { boolean isDownloaded = DownloadUtil.getDownloadTracker(context).isDownloaded(MusicUtil.getDownloadUri(media.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 f4e85f3e..c5d2bfd8 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/DownloadViewModel.java @@ -8,10 +8,10 @@ import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; -import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.repository.DownloadRepository; +import com.cappielloantonio.play.subsonic.models.AlbumID3; +import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.subsonic.models.Child; import com.cappielloantonio.play.util.MappingUtil; @@ -23,8 +23,8 @@ public class DownloadViewModel extends AndroidViewModel { private final DownloadRepository downloadRepository; - private final MutableLiveData> downloadedArtistSample = new MutableLiveData<>(null); - private final MutableLiveData> downloadedAlbumSample = new MutableLiveData<>(null); + private final MutableLiveData> downloadedArtistSample = new MutableLiveData<>(null); + private final MutableLiveData> downloadedAlbumSample = new MutableLiveData<>(null); private final MutableLiveData> downloadedTrackSample = new MutableLiveData<>(null); private final MutableLiveData> downloadedPlaylistSample = new MutableLiveData<>(null); @@ -34,13 +34,40 @@ public class DownloadViewModel extends AndroidViewModel { downloadRepository = new DownloadRepository(application); } - public LiveData> getDownloadedArtists(LifecycleOwner owner, int size) { - downloadRepository.getLiveDownloadSample(size, true, false, false, false).observe(owner, downloads -> downloadedArtistSample.postValue(MappingUtil.mapDownloadToArtist(downloads))); + public LiveData> getDownloadedArtists(LifecycleOwner owner, int size) { + downloadRepository.getLiveDownloadSample(size, true, false, false, false) + .observe(owner, downloads -> downloadedArtistSample.postValue(downloads.stream().map(download -> { + ArtistID3 artist = new ArtistID3(); + artist.setId(download.getArtistId()); + artist.setName(download.getArtist()); + artist.setCoverArtId(download.getCoverArtId()); + // artist.setAlbumCount(0); + // artist.setStarred(null); + return artist; + }).collect(Collectors.toList()))); + return downloadedArtistSample; } - public LiveData> getDownloadedAlbums(LifecycleOwner owner, int size) { - downloadRepository.getLiveDownloadSample(size, false, true, false, false).observe(owner, downloads -> downloadedAlbumSample.postValue(MappingUtil.mapDownloadToAlbum(downloads))); + public LiveData> getDownloadedAlbums(LifecycleOwner owner, int size) { + downloadRepository.getLiveDownloadSample(size, false, true, false, false) + .observe(owner, downloads -> downloadedAlbumSample.postValue(downloads.stream().map(download -> { + AlbumID3 album = new AlbumID3(); + album.setId(download.getAlbumId()); + album.setName(download.getAlbum()); + album.setArtist(album.getArtist()); + album.setArtistId(album.getArtistId()); + album.setCoverArtId(album.getCoverArtId()); + // album.setSongCount(0); + // album.setDuration(0); + // album.setPlayCount(null); + // album.setCreated(null); + // album.setStarred(null); + album.setYear(album.getYear()); + // album.setGenre(null); + return album; + }).collect(Collectors.toList()))); + return downloadedAlbumSample; } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java index 58b91b89..6c0c27e2 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/SongBottomSheetViewModel.java @@ -10,12 +10,16 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.media3.common.util.UnstableApi; +import com.cappielloantonio.play.model.Download; import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.subsonic.models.AlbumID3; import com.cappielloantonio.play.subsonic.models.ArtistID3; import com.cappielloantonio.play.subsonic.models.Child; +import com.cappielloantonio.play.util.DownloadUtil; +import com.cappielloantonio.play.util.MappingUtil; +import com.cappielloantonio.play.util.Preferences; import java.util.Collections; import java.util.Date; @@ -55,13 +59,12 @@ public class SongBottomSheetViewModel extends AndroidViewModel { songRepository.star(song.getId()); song.setStarred(new Date()); - // TODO - /* if (Preferences.isStarredSyncEnabled()) { + if (Preferences.isStarredSyncEnabled()) { DownloadUtil.getDownloadTracker(context).download( MappingUtil.mapMediaItem(context, song, false), - MappingUtil.mapDownload(song, null, null) + new Download(song) ); - } */ + } } }