Save in the database what has been downloaded

This commit is contained in:
CappielloAntonio 2022-01-02 11:30:16 +01:00
parent 81e9b5c3d9
commit f416bfda8f
9 changed files with 59 additions and 19 deletions

View file

@ -63,7 +63,10 @@ public class StarredSyncDialog extends DialogFragment {
((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
starredSyncViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
if (songs != null) {
DownloadUtil.getDownloadTracker(context).download(MappingUtil.mapMediaItems(context, songs, false));
DownloadUtil.getDownloadTracker(context).download(
MappingUtil.mapMediaItems(context, songs, false),
MappingUtil.mapDownload(songs)
);
}
});

View file

@ -108,7 +108,10 @@ public class AlbumPageFragment extends Fragment {
if (item.getItemId() == R.id.action_download_album) {
albumPageViewModel.getAlbumSongLiveList(requireActivity()).observe(requireActivity(), songs -> {
if (isVisible() && getActivity() != null) {
DownloadUtil.getDownloadTracker(requireContext()).download(MappingUtil.mapMediaItems(requireContext(), songs, false));
DownloadUtil.getDownloadTracker(requireContext()).download(
MappingUtil.mapMediaItems(requireContext(), songs, false),
MappingUtil.mapDownload(songs)
);
}
});
return true;

View file

@ -111,7 +111,8 @@ public class PlaylistPageFragment extends Fragment {
MappingUtil.mapMediaItems(requireContext(), songs, false),
playlistPageViewModel.getPlaylist().getId(),
playlistPageViewModel.getPlaylist().getName()
)
),
MappingUtil.mapDownload(songs)
);
}
});

View file

@ -25,6 +25,7 @@ import com.cappielloantonio.play.R;
import com.cappielloantonio.play.glide.CustomGlideRequest;
import com.cappielloantonio.play.interfaces.MediaCallback;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Download;
import com.cappielloantonio.play.model.Song;
import com.cappielloantonio.play.repository.AlbumRepository;
import com.cappielloantonio.play.service.MediaManager;
@ -157,15 +158,16 @@ public class AlbumBottomSheetDialog extends BottomSheetDialogFragment implements
albumBottomSheetViewModel.getAlbumTracks().observe(requireActivity(), songs -> {
List<MediaItem> mediaItems = MappingUtil.mapMediaItems(requireContext(), songs, false);
List<Download> downloads = MappingUtil.mapDownload(songs);
downloadAll.setOnClickListener(v -> {
DownloadUtil.getDownloadTracker(requireContext()).download(mediaItems);
DownloadUtil.getDownloadTracker(requireContext()).download(mediaItems, downloads);
dismissBottomSheet();
});
if (DownloadUtil.getDownloadTracker(requireContext()).areDownloaded(mediaItems)) {
removeAll.setOnClickListener(v -> {
DownloadUtil.getDownloadTracker(requireContext()).remove(mediaItems);
DownloadUtil.getDownloadTracker(requireContext()).remove(mediaItems, downloads);
dismissBottomSheet();
});
} else {

View file

@ -157,13 +157,19 @@ public class SongBottomSheetDialog extends BottomSheetDialogFragment implements
TextView download = view.findViewById(R.id.download_text_view);
download.setOnClickListener(v -> {
DownloadUtil.getDownloadTracker(requireContext()).download(MappingUtil.mapMediaItem(requireContext(), song, false));
DownloadUtil.getDownloadTracker(requireContext()).download(
MappingUtil.mapMediaItem(requireContext(), song, false),
MappingUtil.mapDownload(song, null, null)
);
dismissBottomSheet();
});
TextView remove = view.findViewById(R.id.remove_text_view);
remove.setOnClickListener(v -> {
DownloadUtil.getDownloadTracker(requireContext()).remove(MappingUtil.mapMediaItem(requireContext(), song, false));
DownloadUtil.getDownloadTracker(requireContext()).remove(
MappingUtil.mapMediaItem(requireContext(), song, false),
MappingUtil.mapDownload(song, null, null)
);
dismissBottomSheet();
});