From cb8597db66d492b16ba71caac4a1658794811ad0 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Wed, 28 Jul 2021 15:46:05 +0200 Subject: [PATCH] Moved discovery song retrieval logic in homeViewModel --- .../play/adapter/DiscoverSongAdapter.java | 4 +-- .../play/ui/fragment/HomeFragment.java | 20 +++++-------- .../play/viewmodel/HomeViewModel.java | 29 +++++++++++++++---- 3 files changed, 32 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java index e39b4e53..221ade4b 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/DiscoverSongAdapter.java @@ -33,11 +33,11 @@ public class DiscoverSongAdapter extends RecyclerView.Adapter songs) { + public DiscoverSongAdapter(MainActivity activity, Context context) { this.activity = activity; this.context = context; this.inflater = LayoutInflater.from(context); - this.songs = songs; + this.songs = new ArrayList<>(); } @Override diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java index f92d044a..512d730f 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/HomeFragment.java @@ -142,20 +142,14 @@ public class HomeFragment extends Fragment { private void initDiscoverSongSlideView() { bind.discoverSongViewPager.setOrientation(ViewPager2.ORIENTATION_HORIZONTAL); - homeViewModel.getSongRepository().getRandomSample(10, new MediaCallback() { - @Override - public void onError(Exception exception) { - Toast.makeText(requireContext(), exception.getMessage(), Toast.LENGTH_SHORT).show(); - } - - @Override - public void onLoadMedia(List media) { - discoverSongAdapter = new DiscoverSongAdapter(activity, requireContext(), (List) media); - bind.discoverSongViewPager.setAdapter(discoverSongAdapter); - bind.discoverSongViewPager.setOffscreenPageLimit(3); - setDiscoverSongSlideViewOffset(20, 16); - } + discoverSongAdapter = new DiscoverSongAdapter(activity, requireContext()); + bind.discoverSongViewPager.setAdapter(discoverSongAdapter); + bind.discoverSongViewPager.setOffscreenPageLimit(3); + homeViewModel.getDiscoverSongSample().observe(requireActivity(), songs -> { + discoverSongAdapter.setItems(songs); }); + + setDiscoverSongSlideViewOffset(20, 16); } private void initMostPlayedAlbumView() { diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java index 29864771..03483275 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -1,12 +1,14 @@ package com.cappielloantonio.play.viewmodel; import android.app.Application; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.cappielloantonio.play.adapter.DiscoverSongAdapter; import com.cappielloantonio.play.interfaces.MediaCallback; import com.cappielloantonio.play.model.Album; import com.cappielloantonio.play.model.Artist; @@ -24,11 +26,10 @@ public class HomeViewModel extends AndroidViewModel { private AlbumRepository albumRepository; private ArtistRepository artistRepository; - private LiveData> favoritesSongSample; private LiveData> downloadedSongSample; private List years; - private List dicoverSongSample = new ArrayList<>(); + private MutableLiveData> dicoverSongSample; private LiveData> mostPlayedAlbumSample; private LiveData> recentlyAddedAlbumSample; private LiveData> recentlyPlayedAlbumSample; @@ -48,6 +49,8 @@ public class HomeViewModel extends AndroidViewModel { // downloadedSongSample = songRepository.getListLiveDownloadedSampleSong(20); // years = songRepository.getYearList(); + setDicoverSongSample(); + dicoverSongSample = new MutableLiveData<>(); downloadedSongSample = new MutableLiveData<>(); years = new ArrayList<>(); @@ -64,12 +67,12 @@ public class HomeViewModel extends AndroidViewModel { return songRepository; } - public List getYearList() { - return years; + public LiveData> getDiscoverSongSample() { + return dicoverSongSample; } - public LiveData> getFavorites() { - return favoritesSongSample; + public List getYearList() { + return years; } public LiveData> getStarredTracks() { @@ -99,4 +102,18 @@ public class HomeViewModel extends AndroidViewModel { public LiveData> getRecentlyPlayedAlbumList() { return recentlyPlayedAlbumSample; } + + private void setDicoverSongSample() { + songRepository.getRandomSample(10, new MediaCallback() { + @Override + public void onError(Exception exception) { + + } + + @Override + public void onLoadMedia(List media) { + dicoverSongSample.setValue((List) media); + } + }); + } }