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 468e6fb6..e9a03ca4 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 @@ -1,18 +1,10 @@ package com.cappielloantonio.play.ui.fragment; -import android.graphics.PorterDuff; import android.os.Bundle; -import android.util.Log; -import android.view.ContextMenu; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuInflater; -import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; -import android.widget.Toast; -import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.view.ViewCompat; import androidx.fragment.app.Fragment; @@ -20,13 +12,13 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import com.cappielloantonio.play.App; -import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.SongResultSearchAdapter; import com.cappielloantonio.play.databinding.FragmentAlbumPageBinding; import com.cappielloantonio.play.glide.CustomGlideRequest; import com.cappielloantonio.play.helper.MusicPlayerRemote; import com.cappielloantonio.play.repository.QueueRepository; import com.cappielloantonio.play.ui.activities.MainActivity; +import com.cappielloantonio.play.util.DownloadUtil; import com.cappielloantonio.play.viewmodel.AlbumPageViewModel; import java.util.Collections; @@ -56,6 +48,7 @@ public class AlbumPageFragment extends Fragment { albumPageViewModel = new ViewModelProvider(requireActivity()).get(AlbumPageViewModel.class); init(); + initDownloadButton(); initBackCover(); initSongsView(); @@ -78,6 +71,10 @@ public class AlbumPageFragment extends Fragment { albumPageViewModel.setAlbum(getArguments().getParcelable("album_object")); } + private void initDownloadButton() { + bind.downloadIconButton.setOnClickListener(v -> DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(albumPageViewModel.getAlbumSongList())); + } + private void initAppBar() { activity.setSupportActionBar(bind.animToolbar); @@ -90,7 +87,7 @@ public class AlbumPageFragment extends Fragment { bind.albumArtistLabel.setText(albumPageViewModel.getAlbum().getArtistName()); bind.albumReleaseYearLabel.setText(albumPageViewModel.getAlbum().getYear() != 0 ? String.valueOf(albumPageViewModel.getAlbum().getYear()) : ""); - albumPageViewModel.getAlbumSongList().observe(requireActivity(), songs -> { + albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> { if(bind != null) { bind.albumPagePlayButton.setOnClickListener(v -> { QueueRepository queueRepository = new QueueRepository(App.getInstance()); @@ -141,7 +138,7 @@ public class AlbumPageFragment extends Fragment { songResultSearchAdapter = new SongResultSearchAdapter(activity, requireContext(), getChildFragmentManager()); bind.songRecyclerView.setAdapter(songResultSearchAdapter); - albumPageViewModel.getAlbumSongList().observe(requireActivity(), songs -> { + albumPageViewModel.getAlbumSongLiveList().observe(requireActivity(), songs -> { songResultSearchAdapter.setItems(songs); }); } 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 6f3fbb86..2dbd4d3c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumPageViewModel.java @@ -7,9 +7,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Song; -import com.cappielloantonio.play.repository.AlbumRepository; import com.cappielloantonio.play.repository.SongRepository; import java.util.List; @@ -17,7 +15,7 @@ import java.util.List; public class AlbumPageViewModel extends AndroidViewModel { private SongRepository songRepository; - private LiveData> songList; + private LiveData> songLiveList; private Album album; @@ -27,9 +25,13 @@ public class AlbumPageViewModel extends AndroidViewModel { songRepository = new SongRepository(application); } - public LiveData> getAlbumSongList() { - songList = songRepository.getAlbumListLiveSong(album.getId()); - return songList; + public LiveData> getAlbumSongLiveList() { + songLiveList = songRepository.getAlbumListLiveSong(album.getId()); + return songLiveList; + } + + public List getAlbumSongList() { + return songRepository.getAlbumListSong(album.getId(), false); } public Album getAlbum() {