Add placeholder lists in home and library

This commit is contained in:
CappielloAntonio 2021-08-17 14:46:10 +02:00
parent 501a7af61e
commit 5bec2e610e
17 changed files with 1021 additions and 114 deletions

View file

@ -1,7 +1,6 @@
package com.cappielloantonio.play.ui.fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@ -182,7 +181,15 @@ public class HomeFragment extends Fragment {
bind.discoverSongViewPager.setAdapter(discoverSongAdapter);
bind.discoverSongViewPager.setOffscreenPageLimit(3);
homeViewModel.getDiscoverSongSample().observe(requireActivity(), songs -> {
discoverSongAdapter.setItems(songs);
if (songs == null) {
if (bind != null) bind.homeDiscoveryPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeDiscoverSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeDiscoveryPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeDiscoverSector.setVisibility(!songs.isEmpty() ? View.VISIBLE : View.GONE);
discoverSongAdapter.setItems(songs);
}
});
setDiscoverSongSlideViewOffset(20, 16);
@ -194,12 +201,17 @@ public class HomeFragment extends Fragment {
mostPlayedAlbumAdapter = new AlbumAdapter(requireContext());
bind.mostPlayedAlbumsRecyclerView.setAdapter(mostPlayedAlbumAdapter);
homeViewModel.getMostPlayedAlbums().observe(requireActivity(), albums -> {
if (albums.size() < 10) reorder();
if (bind != null)
bind.homeMostPlayedAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
homeViewModel.getMostPlayedAlbums(requireActivity()).observe(requireActivity(), albums -> {
if (albums == null) {
if (bind != null) bind.homeMostPlayedAlbumsPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeMostPlayedAlbumsSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeMostPlayedAlbumsPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeMostPlayedAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
if (albums.size() < 10) reorder();
mostPlayedAlbumAdapter.setItems(albums);
mostPlayedAlbumAdapter.setItems(albums);
}
});
CustomLinearSnapHelper mostPlayedAlbumSnapHelper = new CustomLinearSnapHelper();
@ -212,11 +224,16 @@ public class HomeFragment extends Fragment {
recentlyPlayedAlbumAdapter = new AlbumAdapter(requireContext());
bind.recentlyPlayedAlbumsRecyclerView.setAdapter(recentlyPlayedAlbumAdapter);
homeViewModel.getRecentlyPlayedAlbumList().observe(requireActivity(), albums -> {
if (bind != null)
bind.homeRecentlyPlayedAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
homeViewModel.getRecentlyPlayedAlbumList(requireActivity()).observe(requireActivity(), albums -> {
if (albums == null) {
if (bind != null) bind.homeRecentlyPlayedAlbumsPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeRecentlyPlayedAlbumsSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeRecentlyPlayedAlbumsPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeRecentlyPlayedAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
recentlyPlayedAlbumAdapter.setItems(albums);
recentlyPlayedAlbumAdapter.setItems(albums);
}
});
CustomLinearSnapHelper recentPlayedAlbumSnapHelper = new CustomLinearSnapHelper();
@ -235,11 +252,16 @@ public class HomeFragment extends Fragment {
activity.navController.navigate(R.id.action_homeFragment_to_songListPageFragment, bundle);
});
bind.yearsRecyclerView.setAdapter(yearAdapter);
homeViewModel.getYearList().observe(requireActivity(), years -> {
if (bind != null)
bind.homeFlashbackSector.setVisibility(!years.isEmpty() ? View.VISIBLE : View.GONE);
homeViewModel.getYearList(requireActivity()).observe(requireActivity(), years -> {
if (years == null) {
if (bind != null) bind.homeFlashbackPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeFlashbackSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeFlashbackPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeFlashbackSector.setVisibility(!years.isEmpty() ? View.VISIBLE : View.GONE);
yearAdapter.setItems(years);
yearAdapter.setItems(years);
}
});
CustomLinearSnapHelper yearSnapHelper = new CustomLinearSnapHelper();
@ -251,12 +273,17 @@ public class HomeFragment extends Fragment {
starredSongAdapter = new SongHorizontalAdapter(activity, requireContext());
bind.starredTracksRecyclerView.setAdapter(starredSongAdapter);
homeViewModel.getStarredTracks().observe(requireActivity(), songs -> {
if (bind != null) {
bind.homeStarredTracksSector.setVisibility(!songs.isEmpty() ? View.VISIBLE : View.GONE);
bind.starredTracksRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(songs.size(), 5), GridLayoutManager.HORIZONTAL, false));
homeViewModel.getStarredTracks(requireActivity()).observe(requireActivity(), songs -> {
if (songs == null) {
if (bind != null) bind.homeStarredTracksPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeStarredTracksSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeStarredTracksPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeStarredTracksSector.setVisibility(!songs.isEmpty() ? View.VISIBLE : View.GONE);
if (bind != null) bind.starredTracksRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(songs.size(), 5), GridLayoutManager.HORIZONTAL, false));
starredSongAdapter.setItems(songs);
}
starredSongAdapter.setItems(songs);
});
SnapHelper starredTrackSnapHelper = new PagerSnapHelper();
@ -268,12 +295,17 @@ public class HomeFragment extends Fragment {
starredAlbumAdapter = new AlbumHorizontalAdapter(requireContext());
bind.starredAlbumsRecyclerView.setAdapter(starredAlbumAdapter);
homeViewModel.getStarredAlbums().observe(requireActivity(), albums -> {
if (bind != null) {
bind.homeStarredAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
bind.starredAlbumsRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(albums.size(), 5), GridLayoutManager.HORIZONTAL, false));
homeViewModel.getStarredAlbums(requireActivity()).observe(requireActivity(), albums -> {
if (albums == null) {
if (bind != null) bind.homeStarredAlbumsPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeStarredAlbumsSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeStarredAlbumsPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeStarredAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
if (bind != null) bind.starredAlbumsRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(albums.size(), 5), GridLayoutManager.HORIZONTAL, false));
starredAlbumAdapter.setItems(albums);
}
starredAlbumAdapter.setItems(albums);
});
SnapHelper starredAlbumSnapHelper = new PagerSnapHelper();
@ -285,12 +317,17 @@ public class HomeFragment extends Fragment {
starredArtistAdapter = new ArtistHorizontalAdapter(requireContext());
bind.starredArtistsRecyclerView.setAdapter(starredArtistAdapter);
homeViewModel.getStarredArtists().observe(requireActivity(), artists -> {
if (bind != null) {
bind.homeStarredArtistsSector.setVisibility(!artists.isEmpty() ? View.VISIBLE : View.GONE);
bind.starredArtistsRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(artists.size(), 5), GridLayoutManager.HORIZONTAL, false));
homeViewModel.getStarredArtists(requireActivity()).observe(requireActivity(), artists -> {
if (artists == null) {
if (bind != null) bind.homeStarredArtistsPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeStarredArtistsSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeStarredArtistsPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeStarredArtistsSector.setVisibility(!artists.isEmpty() ? View.VISIBLE : View.GONE);
if (bind != null) bind.starredArtistsRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(artists.size(), 5), GridLayoutManager.HORIZONTAL, false));
starredArtistAdapter.setItems(artists);
}
starredArtistAdapter.setItems(artists);
});
SnapHelper starredArtistSnapHelper = new PagerSnapHelper();
@ -303,8 +340,16 @@ public class HomeFragment extends Fragment {
recentlyAddedAlbumAdapter = new AlbumAdapter(requireContext());
bind.recentlyAddedAlbumsRecyclerView.setAdapter(recentlyAddedAlbumAdapter);
homeViewModel.getMostRecentlyAddedAlbums().observe(requireActivity(), albums -> {
recentlyAddedAlbumAdapter.setItems(albums);
homeViewModel.getMostRecentlyAddedAlbums(requireActivity()).observe(requireActivity(), albums -> {
if (albums == null) {
if (bind != null) bind.homeRecentlyAddedAlbumsPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeRecentlyAddedAlbumsSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeRecentlyAddedAlbumsPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeRecentlyAddedAlbumsSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
recentlyAddedAlbumAdapter.setItems(albums);
}
});
CustomLinearSnapHelper recentAddedAlbumSnapHelper = new CustomLinearSnapHelper();
@ -317,11 +362,16 @@ public class HomeFragment extends Fragment {
dowanloadedMusicAdapter = new RecentMusicAdapter(activity, requireContext());
bind.downloadedTracksRecyclerView.setAdapter(dowanloadedMusicAdapter);
homeViewModel.getDownloaded().observe(requireActivity(), downloads -> {
if (bind != null)
bind.homeDownloadedTracksSector.setVisibility(!downloads.isEmpty() ? View.VISIBLE : View.GONE);
homeViewModel.getDownloaded(requireActivity()).observe(requireActivity(), downloads -> {
if (downloads == null) {
if (bind != null) bind.homeDownloadedTracksPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.homeDownloadedTracksSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.homeDownloadedTracksPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.homeDownloadedTracksSector.setVisibility(!downloads.isEmpty() ? View.VISIBLE : View.GONE);
dowanloadedMusicAdapter.setItems(MappingUtil.mapDownload(downloads));
dowanloadedMusicAdapter.setItems(MappingUtil.mapDownload(downloads));
}
});
CustomLinearSnapHelper downloadedSongSnapHelper = new CustomLinearSnapHelper();

View file

@ -104,9 +104,15 @@ public class LibraryFragment extends Fragment {
albumAdapter = new AlbumAdapter(requireContext());
bind.albumRecyclerView.setAdapter(albumAdapter);
libraryViewModel.getAlbumSample().observe(requireActivity(), albums -> {
if (bind != null)
bind.libraryAlbumSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
albumAdapter.setItems(albums);
if (albums == null) {
if (bind != null) bind.libraryAlbumPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.libraryAlbumSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.libraryAlbumPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.libraryAlbumSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE);
albumAdapter.setItems(albums);
}
});
CustomLinearSnapHelper albumSnapHelper = new CustomLinearSnapHelper();
@ -120,9 +126,15 @@ public class LibraryFragment extends Fragment {
artistAdapter = new ArtistAdapter(requireContext());
bind.artistRecyclerView.setAdapter(artistAdapter);
libraryViewModel.getArtistSample().observe(requireActivity(), artists -> {
if (bind != null)
bind.libraryArtistSector.setVisibility(!artists.isEmpty() ? View.VISIBLE : View.GONE);
artistAdapter.setItems(artists);
if (artists == null) {
if (bind != null) bind.libraryArtistPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.libraryArtistSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.libraryArtistPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.libraryArtistSector.setVisibility(!artists.isEmpty() ? View.VISIBLE : View.GONE);
artistAdapter.setItems(artists);
}
});
CustomLinearSnapHelper artistSnapHelper = new CustomLinearSnapHelper();
@ -142,9 +154,15 @@ public class LibraryFragment extends Fragment {
});
bind.genreRecyclerView.setAdapter(genreAdapter);
libraryViewModel.getGenreSample().observe(requireActivity(), genres -> {
if (bind != null)
bind.libraryGenresSector.setVisibility(!genres.isEmpty() ? View.VISIBLE : View.GONE);
genreAdapter.setItems(genres);
if (genres == null) {
if (bind != null) bind.libraryGenrePlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.libraryGenresSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.libraryGenrePlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.libraryGenresSector.setVisibility(!genres.isEmpty() ? View.VISIBLE : View.GONE);
genreAdapter.setItems(genres);
}
});
CustomLinearSnapHelper genreSnapHelper = new CustomLinearSnapHelper();
@ -158,9 +176,15 @@ public class LibraryFragment extends Fragment {
bind.playlistViewPager.setAdapter(playlistAdapter);
bind.playlistViewPager.setOffscreenPageLimit(3);
libraryViewModel.getPlaylistSample().observe(requireActivity(), playlists -> {
if (bind != null)
bind.libraryPlaylistSector.setVisibility(!playlists.isEmpty() ? View.VISIBLE : View.GONE);
playlistAdapter.setItems(playlists);
if (playlists == null) {
if (bind != null) bind.libraryPlaylistPlaceholder.placeholder.setVisibility(View.VISIBLE);
if (bind != null) bind.libraryPlaylistSector.setVisibility(View.GONE);
} else {
if (bind != null) bind.libraryPlaylistPlaceholder.placeholder.setVisibility(View.GONE);
if (bind != null) bind.libraryPlaylistSector.setVisibility(!playlists.isEmpty() ? View.VISIBLE : View.GONE);
playlistAdapter.setItems(playlists);
}
});
setDiscoverSongSlideViewOffset(20, 16);

View file

@ -21,21 +21,21 @@ import java.util.List;
public class HomeViewModel extends AndroidViewModel {
private static final String TAG = "HomeViewModel";
private SongRepository songRepository;
private AlbumRepository albumRepository;
private ArtistRepository artistRepository;
private DownloadRepository downloadRepository;
private MutableLiveData<List<Song>> dicoverSongSample;
private MutableLiveData<List<Album>> mostPlayedAlbumSample;
private MutableLiveData<List<Album>> recentlyAddedAlbumSample;
private MutableLiveData<List<Album>> recentlyPlayedAlbumSample;
private LiveData<List<Download>> downloadedSongSample;
private LiveData<List<Integer>> years;
private final SongRepository songRepository;
private final AlbumRepository albumRepository;
private final ArtistRepository artistRepository;
private final DownloadRepository downloadRepository;
private MutableLiveData<List<Song>> starredTracks;
private MutableLiveData<List<Album>> starredAlbums;
private MutableLiveData<List<Artist>> starredArtists;
private final MutableLiveData<List<Song>> dicoverSongSample = new MutableLiveData<>(null);
private final MutableLiveData<List<Album>> mostPlayedAlbumSample = new MutableLiveData<>(null);
private final MutableLiveData<List<Album>> recentlyPlayedAlbumSample = new MutableLiveData<>(null);
private final MutableLiveData<List<Integer>> years = new MutableLiveData<>(null);
private final MutableLiveData<List<Song>> starredTracks = new MutableLiveData<>(null);
private final MutableLiveData<List<Album>> starredAlbums = new MutableLiveData<>(null);
private final MutableLiveData<List<Artist>> starredArtists = new MutableLiveData<>(null);
private final MutableLiveData<List<Download>> downloadedSongSample = new MutableLiveData<>(null);
private final MutableLiveData<List<Album>> recentlyAddedAlbumSample = new MutableLiveData<>(null);
public HomeViewModel(@NonNull Application application) {
super(application);
@ -45,83 +45,78 @@ public class HomeViewModel extends AndroidViewModel {
artistRepository = new ArtistRepository(application);
downloadRepository = new DownloadRepository(application);
dicoverSongSample = songRepository.getRandomSample(10, null, null);
mostPlayedAlbumSample = albumRepository.getAlbums("frequent", 20);
recentlyAddedAlbumSample = albumRepository.getAlbums("newest", 20);
recentlyPlayedAlbumSample = albumRepository.getAlbums("recent", 20);
downloadedSongSample = downloadRepository.getLiveDownloadSample(10);
years = albumRepository.getDecades();
starredTracks = songRepository.getStarredSongs();
starredAlbums = albumRepository.getStarredAlbums();
starredArtists = artistRepository.getStarredArtists();
}
public SongRepository getSongRepository() {
return songRepository;
songRepository.getRandomSample(10, null, null).observeForever(dicoverSongSample::postValue);
}
public LiveData<List<Song>> getDiscoverSongSample() {
return dicoverSongSample;
}
public LiveData<List<Integer>> getYearList() {
public LiveData<List<Integer>> getYearList(LifecycleOwner owner) {
albumRepository.getDecades().observe(owner, years::postValue);
return years;
}
public LiveData<List<Song>> getStarredTracks() {
public LiveData<List<Song>> getStarredTracks(LifecycleOwner owner) {
songRepository.getStarredSongs().observe(owner, starredTracks::postValue);
return starredTracks;
}
public LiveData<List<Album>> getStarredAlbums() {
public LiveData<List<Album>> getStarredAlbums(LifecycleOwner owner) {
albumRepository.getStarredAlbums().observe(owner, starredAlbums::postValue);
return starredAlbums;
}
public LiveData<List<Artist>> getStarredArtists() {
public LiveData<List<Artist>> getStarredArtists(LifecycleOwner owner) {
artistRepository.getStarredArtists().observe(owner, starredArtists::postValue);
return starredArtists;
}
public LiveData<List<Download>> getDownloaded() {
public LiveData<List<Download>> getDownloaded(LifecycleOwner owner) {
downloadRepository.getLiveDownloadSample(10).observe(owner, downloadedSongSample::postValue);
return downloadedSongSample;
}
public LiveData<List<Album>> getMostPlayedAlbums() {
public LiveData<List<Album>> getMostPlayedAlbums(LifecycleOwner owner) {
albumRepository.getAlbums("frequent", 20).observe(owner, mostPlayedAlbumSample::postValue);
return mostPlayedAlbumSample;
}
public LiveData<List<Album>> getMostRecentlyAddedAlbums() {
public LiveData<List<Album>> getMostRecentlyAddedAlbums(LifecycleOwner owner) {
albumRepository.getAlbums("newest", 20).observe(owner, recentlyAddedAlbumSample::postValue);
return recentlyAddedAlbumSample;
}
public LiveData<List<Album>> getRecentlyPlayedAlbumList() {
public LiveData<List<Album>> getRecentlyPlayedAlbumList(LifecycleOwner owner) {
albumRepository.getAlbums("recent", 20).observe(owner, recentlyPlayedAlbumSample::postValue);
return recentlyPlayedAlbumSample;
}
public void refreshDiscoverySongSample(LifecycleOwner owner) {
songRepository.getRandomSample(10, null, null).observe(owner, songs -> dicoverSongSample.postValue(songs));
songRepository.getRandomSample(10, null, null).observe(owner, dicoverSongSample::postValue);
}
public void refreshStarredTracks(LifecycleOwner owner) {
songRepository.getStarredSongs().observe(owner, songs -> starredTracks.postValue(songs));
songRepository.getStarredSongs().observe(owner, starredTracks::postValue);
}
public void refreshStarredAlbums(LifecycleOwner owner) {
albumRepository.getStarredAlbums().observe(owner, albums -> starredAlbums.postValue(albums));
albumRepository.getStarredAlbums().observe(owner, starredAlbums::postValue);
}
public void refreshStarredArtists(LifecycleOwner owner) {
artistRepository.getStarredArtists().observe(owner, artists -> starredArtists.postValue(artists));
artistRepository.getStarredArtists().observe(owner, starredArtists::postValue);
}
public void refreshMostPlayedAlbums(LifecycleOwner owner) {
albumRepository.getAlbums("frequent", 20).observe(owner, albums -> mostPlayedAlbumSample.postValue(albums));
albumRepository.getAlbums("frequent", 20).observe(owner, mostPlayedAlbumSample::postValue);
}
public void refreshMostRecentlyAddedAlbums(LifecycleOwner owner) {
albumRepository.getAlbums("newest", 20).observe(owner, albums -> recentlyAddedAlbumSample.postValue(albums));
albumRepository.getAlbums("newest", 20).observe(owner, recentlyAddedAlbumSample::postValue);
}
public void refreshRecentlyPlayedAlbumList(LifecycleOwner owner) {
albumRepository.getAlbums("recent", 20).observe(owner, albums -> recentlyPlayedAlbumSample.postValue(albums));
albumRepository.getAlbums("recent", 20).observe(owner, recentlyPlayedAlbumSample::postValue);
}
}

View file

@ -20,15 +20,15 @@ import com.cappielloantonio.play.repository.PlaylistRepository;
import java.util.List;
public class LibraryViewModel extends AndroidViewModel {
private AlbumRepository albumRepository;
private ArtistRepository artistRepository;
private GenreRepository genreRepository;
private PlaylistRepository playlistRepository;
private final AlbumRepository albumRepository;
private final ArtistRepository artistRepository;
private final GenreRepository genreRepository;
private final PlaylistRepository playlistRepository;
private MutableLiveData<List<Playlist>> playlistSample;
private MutableLiveData<List<Album>> sampleAlbum;
private MutableLiveData<List<Artist>> sampleArtist;
private MutableLiveData<List<Genre>> sampleGenres;
private final MutableLiveData<List<Playlist>> playlistSample = new MutableLiveData<>(null);
private final MutableLiveData<List<Album>> sampleAlbum = new MutableLiveData<>(null);
private final MutableLiveData<List<Artist>> sampleArtist = new MutableLiveData<>(null);
private final MutableLiveData<List<Genre>> sampleGenres = new MutableLiveData<>(null);
public LibraryViewModel(@NonNull Application application) {
super(application);
@ -40,10 +40,10 @@ public class LibraryViewModel extends AndroidViewModel {
// Inizializzate all'interno del costruttore, in modo da rimanere immutabili per tutto il
// ciclo di vita dell'applicazione
sampleAlbum = albumRepository.getAlbums("random", 20);
sampleArtist = artistRepository.getArtists(true, 20);
sampleGenres = genreRepository.getGenres(true, 15);
playlistSample = playlistRepository.getPlaylists(true, 10);
albumRepository.getAlbums("random", 20).observeForever(sampleAlbum::postValue);
artistRepository.getArtists(true, 20).observeForever(sampleArtist::postValue);
genreRepository.getGenres(true, 15).observeForever(sampleGenres::postValue);
playlistRepository.getPlaylists(true, 10).observeForever(playlistSample::postValue);
}
public LiveData<List<Album>> getAlbumSample() {
@ -63,18 +63,18 @@ public class LibraryViewModel extends AndroidViewModel {
}
public void refreshAlbumSample(LifecycleOwner owner) {
albumRepository.getAlbums("random", 20).observe(owner, albums -> sampleAlbum.postValue(albums));
albumRepository.getAlbums("random", 20).observe(owner, sampleAlbum::postValue);
}
public void refreshArtistSample(LifecycleOwner owner) {
artistRepository.getArtists(true, 20).observe(owner, artists -> sampleArtist.postValue(artists));
artistRepository.getArtists(true, 20).observe(owner, sampleArtist::postValue);
}
public void refreshGenreSample(LifecycleOwner owner) {
genreRepository.getGenres(true, 15).observe(owner, genres -> sampleGenres.postValue(genres));
genreRepository.getGenres(true, 15).observe(owner, sampleGenres::postValue);
}
public void refreshPlaylistSample(LifecycleOwner owner) {
playlistRepository.getPlaylists(true, 10).observe(owner, playlists -> playlistSample.postValue(playlists));
playlistRepository.getPlaylists(true, 10).observe(owner, playlistSample::postValue);
}
}