Implementation of download navigation for artists and albums

This commit is contained in:
CappielloAntonio 2021-08-30 12:38:43 +02:00
parent c5f39cf9ee
commit 86d46f7537
16 changed files with 98 additions and 53 deletions

View file

@ -65,6 +65,13 @@ public class AlbumListPageFragment extends Fragment {
} else if (getArguments().getString(Album.STARRED) != null) {
albumListPageViewModel.title = Album.STARRED;
bind.pageTitleLabel.setText("Starred albums");
} else if (getArguments().getString(Album.DOWNLOADED) != null) {
albumListPageViewModel.title = Album.DOWNLOADED;
bind.pageTitleLabel.setText("Downloaded albums");
} else if (getArguments().getParcelable("artist_object") != null) {
albumListPageViewModel.artist = getArguments().getParcelable("artist_object");
albumListPageViewModel.title = Album.FROM_ARTIST;
bind.pageTitleLabel.setText(albumListPageViewModel.artist.getName());
}
}

View file

@ -14,6 +14,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
import com.cappielloantonio.play.adapter.ArtistHorizontalAdapter;
import com.cappielloantonio.play.databinding.FragmentArtistListPageBinding;
import com.cappielloantonio.play.model.Album;
import com.cappielloantonio.play.model.Artist;
import com.cappielloantonio.play.ui.activity.MainActivity;
import com.cappielloantonio.play.viewmodel.ArtistListPageViewModel;
@ -53,9 +54,12 @@ public class ArtistListPageFragment extends Fragment {
}
private void init() {
if (getArguments().getString(Album.STARRED) != null) {
artistListPageViewModel.title = Album.STARRED;
if (getArguments().getString(Artist.STARRED) != null) {
artistListPageViewModel.title = Artist.STARRED;
bind.pageTitleLabel.setText("Starred artists");
} else if (getArguments().getString(Artist.DOWNLOADED) != null) {
artistListPageViewModel.title = Artist.DOWNLOADED;
bind.pageTitleLabel.setText("Downloaded artists");
}
}
@ -86,6 +90,6 @@ public class ArtistListPageFragment extends Fragment {
artistHorizontalAdapter = new ArtistHorizontalAdapter(requireContext());
bind.artistListRecyclerView.setAdapter(artistHorizontalAdapter);
artistListPageViewModel.getArtistList().observe(requireActivity(), artists -> artistHorizontalAdapter.setItems(artists));
artistListPageViewModel.getArtistList(requireActivity()).observe(requireActivity(), artists -> artistHorizontalAdapter.setItems(artists));
}
}

View file

@ -123,13 +123,13 @@ public class DownloadFragment extends Fragment {
private void init() {
bind.downloadedArtistTextViewClickable.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putString(Song.DOWNLOADED, Song.DOWNLOADED);
bundle.putString(Artist.DOWNLOADED, Artist.DOWNLOADED);
activity.navController.navigate(R.id.action_downloadFragment_to_artistListPageFragment, bundle);
});
bind.downloadedAlbumTextViewClickable.setOnClickListener(v -> {
Bundle bundle = new Bundle();
bundle.putString(Song.DOWNLOADED, Song.DOWNLOADED);
bundle.putString(Album.DOWNLOADED, Album.DOWNLOADED);
activity.navController.navigate(R.id.action_downloadFragment_to_albumListPageFragment, bundle);
});

View file

@ -93,6 +93,10 @@ public class SongListPageFragment extends Fragment {
} else if (getArguments().getString(Song.DOWNLOADED) != null) {
songListPageViewModel.title = Song.DOWNLOADED;
bind.pageTitleLabel.setText("Downloaded");
} else if (getArguments().getParcelable("album_object") != null) {
songListPageViewModel.album = getArguments().getParcelable("album_object");
songListPageViewModel.title = Song.FROM_ALBUM;
bind.pageTitleLabel.setText(songListPageViewModel.album.getTitle());
}
}
@ -116,7 +120,7 @@ public class SongListPageFragment extends Fragment {
}
private void initButtons() {
songListPageViewModel.getSongList().observe(requireActivity(), songs -> {
songListPageViewModel.getSongList(requireActivity()).observe(requireActivity(), songs -> {
if (bind != null) {
bind.songListShuffleImageView.setOnClickListener(v -> {
Collections.shuffle(songs);
@ -139,6 +143,6 @@ public class SongListPageFragment extends Fragment {
songHorizontalAdapter = new SongHorizontalAdapter(activity, requireContext());
bind.songListRecyclerView.setAdapter(songHorizontalAdapter);
songListPageViewModel.getSongList().observe(requireActivity(), songs -> songHorizontalAdapter.setItems(songs));
songListPageViewModel.getSongList(requireActivity()).observe(requireActivity(), songs -> songHorizontalAdapter.setItems(songs));
}
}