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 b2a3e09a..43f777f2 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 @@ -3,7 +3,6 @@ package com.cappielloantonio.play.ui.fragment; import android.annotation.SuppressLint; import android.content.ComponentName; import android.os.Bundle; -import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -28,8 +27,6 @@ import androidx.viewpager2.widget.ViewPager2; import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.AlbumAdapter; -import com.cappielloantonio.play.adapter.AlbumHorizontalAdapter; -import com.cappielloantonio.play.adapter.ArtistHorizontalAdapter; import com.cappielloantonio.play.adapter.DiscoverSongAdapter; import com.cappielloantonio.play.adapter.SimilarTrackAdapter; import com.cappielloantonio.play.adapter.SongHorizontalAdapter; @@ -38,7 +35,6 @@ import com.cappielloantonio.play.databinding.FragmentHomeBinding; import com.cappielloantonio.play.helper.recyclerview.CustomLinearSnapHelper; import com.cappielloantonio.play.helper.recyclerview.DotsIndicatorDecoration; import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.service.MediaService; @@ -59,14 +55,10 @@ public class HomeFragment extends Fragment { private HomeViewModel homeViewModel; private DiscoverSongAdapter discoverSongAdapter; - private AlbumHorizontalAdapter newRelesesAlbumAdapter; private AlbumAdapter recentlyAddedAlbumAdapter; private AlbumAdapter recentlyPlayedAlbumAdapter; private AlbumAdapter mostPlayedAlbumAdapter; private YearAdapter yearAdapter; - private SongHorizontalAdapter starredSongAdapter; - private AlbumHorizontalAdapter starredAlbumAdapter; - private ArtistHorizontalAdapter starredArtistAdapter; private SimilarTrackAdapter similarMusicAdapter; private ListenableFuture mediaBrowserListenableFuture; @@ -105,12 +97,8 @@ public class HomeFragment extends Fragment { initAppBar(); initDiscoverSongSlideView(); initSimilarSongView(); - initNewReleasesView(); initMostPlayedAlbumView(); initRecentPlayedAlbumView(); - initStarredTracksView(); - initStarredAlbumsView(); - initStarredArtistsView(); initYearSongView(); initRecentAddedAlbumView(); initPinnedPlaylistsView(); @@ -176,24 +164,6 @@ public class HomeFragment extends Fragment { activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); }); - bind.starredTracksTextViewClickable.setOnClickListener(v -> { - Bundle bundle = new Bundle(); - bundle.putString(Song.STARRED, Song.STARRED); - activity.navController.navigate(R.id.action_homeFragment_to_songListPageFragment, bundle); - }); - - bind.starredAlbumsTextViewClickable.setOnClickListener(v -> { - Bundle bundle = new Bundle(); - bundle.putString(Album.STARRED, Album.STARRED); - activity.navController.navigate(R.id.action_homeFragment_to_albumListPageFragment, bundle); - }); - - bind.starredArtistsTextViewClickable.setOnClickListener(v -> { - Bundle bundle = new Bundle(); - bundle.putString(Artist.STARRED, Artist.STARRED); - activity.navController.navigate(R.id.action_homeFragment_to_artistListPageFragment, bundle); - }); - bind.musicDiscoveryTextViewRefreshable.setOnLongClickListener(v -> { homeViewModel.refreshDiscoverySongSample(requireActivity()); return true; @@ -218,21 +188,6 @@ public class HomeFragment extends Fragment { homeViewModel.refreshMostRecentlyAddedAlbums(requireActivity()); return true; }); - - bind.starredTracksTextViewRefreshable.setOnLongClickListener(v -> { - homeViewModel.refreshStarredTracks(requireActivity()); - return true; - }); - - bind.starredAlbumsTextViewRefreshable.setOnLongClickListener(v -> { - homeViewModel.refreshStarredAlbums(requireActivity()); - return true; - }); - - bind.starredArtistsTextViewRefreshable.setOnLongClickListener(v -> { - homeViewModel.refreshStarredArtists(requireActivity()); - return true; - }); } private void initAppBar() { @@ -283,39 +238,6 @@ public class HomeFragment extends Fragment { similarSongSnapHelper.attachToRecyclerView(bind.similarTracksRecyclerView); } - private void initNewReleasesView() { - bind.newReleasesRecyclerView.setHasFixedSize(true); - - newRelesesAlbumAdapter = new AlbumHorizontalAdapter(requireContext(), false); - bind.newReleasesRecyclerView.setAdapter(newRelesesAlbumAdapter); - homeViewModel.getRecentlyReleasedAlbums(requireActivity()).observe(requireActivity(), albums -> { - if (albums == null) { - if (bind != null) bind.homeNewReleasesPlaceholder.placeholder.setVisibility(View.VISIBLE); - if (bind != null) bind.homeNewReleasesSector.setVisibility(View.GONE); - } else { - if (bind != null) bind.homeNewReleasesPlaceholder.placeholder.setVisibility(View.GONE); - if (bind != null) bind.homeNewReleasesSector.setVisibility(!albums.isEmpty() ? View.VISIBLE : View.GONE); - - if (bind != null) - bind.newReleasesRecyclerView.setLayoutManager(new GridLayoutManager(requireContext(), UIUtil.getSpanCount(albums.size(), 5), GridLayoutManager.HORIZONTAL, false)); - - newRelesesAlbumAdapter.setItems(albums); - } - }); - - SnapHelper starredAlbumSnapHelper = new PagerSnapHelper(); - starredAlbumSnapHelper.attachToRecyclerView(bind.newReleasesRecyclerView); - - bind.newReleasesRecyclerView.addItemDecoration( - new DotsIndicatorDecoration( - getResources().getDimensionPixelSize(R.dimen.radius), - getResources().getDimensionPixelSize(R.dimen.radius) * 4, - getResources().getDimensionPixelSize(R.dimen.dots_height), - requireContext().getResources().getColor(R.color.titleTextColor, null), - requireContext().getResources().getColor(R.color.titleTextColor, null)) - ); - } - private void initMostPlayedAlbumView() { bind.mostPlayedAlbumsRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)); bind.mostPlayedAlbumsRecyclerView.setHasFixedSize(true); @@ -389,102 +311,6 @@ public class HomeFragment extends Fragment { yearSnapHelper.attachToRecyclerView(bind.yearsRecyclerView); } - private void initStarredTracksView() { - bind.starredTracksRecyclerView.setHasFixedSize(true); - - starredSongAdapter = new SongHorizontalAdapter(activity, requireContext(), true); - bind.starredTracksRecyclerView.setAdapter(starredSongAdapter); - 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); - } - }); - - SnapHelper starredTrackSnapHelper = new PagerSnapHelper(); - starredTrackSnapHelper.attachToRecyclerView(bind.starredTracksRecyclerView); - - bind.starredTracksRecyclerView.addItemDecoration( - new DotsIndicatorDecoration( - getResources().getDimensionPixelSize(R.dimen.radius), - getResources().getDimensionPixelSize(R.dimen.radius) * 4, - getResources().getDimensionPixelSize(R.dimen.dots_height), - requireContext().getResources().getColor(R.color.titleTextColor, null), - requireContext().getResources().getColor(R.color.titleTextColor, null)) - ); - } - - private void initStarredAlbumsView() { - bind.starredAlbumsRecyclerView.setHasFixedSize(true); - - starredAlbumAdapter = new AlbumHorizontalAdapter(requireContext(), false); - bind.starredAlbumsRecyclerView.setAdapter(starredAlbumAdapter); - 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); - } - }); - - SnapHelper starredAlbumSnapHelper = new PagerSnapHelper(); - starredAlbumSnapHelper.attachToRecyclerView(bind.starredAlbumsRecyclerView); - - bind.starredAlbumsRecyclerView.addItemDecoration( - new DotsIndicatorDecoration( - getResources().getDimensionPixelSize(R.dimen.radius), - getResources().getDimensionPixelSize(R.dimen.radius) * 4, - getResources().getDimensionPixelSize(R.dimen.dots_height), - requireContext().getResources().getColor(R.color.titleTextColor, null), - requireContext().getResources().getColor(R.color.titleTextColor, null)) - ); - } - - private void initStarredArtistsView() { - bind.starredArtistsRecyclerView.setHasFixedSize(true); - - starredArtistAdapter = new ArtistHorizontalAdapter(requireContext(), false); - bind.starredArtistsRecyclerView.setAdapter(starredArtistAdapter); - 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); - } - }); - - SnapHelper starredArtistSnapHelper = new PagerSnapHelper(); - starredArtistSnapHelper.attachToRecyclerView(bind.starredArtistsRecyclerView); - - bind.starredArtistsRecyclerView.addItemDecoration( - new DotsIndicatorDecoration( - getResources().getDimensionPixelSize(R.dimen.radius), - getResources().getDimensionPixelSize(R.dimen.radius) * 4, - getResources().getDimensionPixelSize(R.dimen.dots_height), - requireContext().getResources().getColor(R.color.titleTextColor, null), - requireContext().getResources().getColor(R.color.titleTextColor, null)) - ); - } - private void initRecentAddedAlbumView() { bind.recentlyAddedAlbumsRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)); bind.recentlyAddedAlbumsRecyclerView.setHasFixedSize(true); @@ -527,12 +353,8 @@ public class HomeFragment extends Fragment { bind.homeLinearLayoutContainer.removeAllViews(); bind.homeLinearLayoutContainer.addView(bind.homeDiscoverSector); bind.homeLinearLayoutContainer.addView(bind.homeSimilarTracksSector); - bind.homeLinearLayoutContainer.addView(bind.homeNewReleasesSector); bind.homeLinearLayoutContainer.addView(bind.homeRecentlyAddedAlbumsSector); bind.homeLinearLayoutContainer.addView(bind.homeFlashbackSector); - bind.homeLinearLayoutContainer.addView(bind.homeStarredTracksSector); - bind.homeLinearLayoutContainer.addView(bind.homeStarredAlbumsSector); - bind.homeLinearLayoutContainer.addView(bind.homeStarredArtistsSector); bind.homeLinearLayoutContainer.addView(bind.homeMostPlayedAlbumsSector); bind.homeLinearLayoutContainer.addView(bind.homeRecentlyPlayedAlbumsSector); } @@ -608,6 +430,5 @@ public class HomeFragment extends Fragment { private void setMediaBrowserListenableFuture() { discoverSongAdapter.setMediaBrowserListenableFuture(mediaBrowserListenableFuture); similarMusicAdapter.setMediaBrowserListenableFuture(mediaBrowserListenableFuture); - starredSongAdapter.setMediaBrowserListenableFuture(mediaBrowserListenableFuture); } } 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 3ed39929..37f33ef7 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -10,18 +10,14 @@ import androidx.lifecycle.MutableLiveData; import com.cappielloantonio.play.App; import com.cappielloantonio.play.model.Album; -import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.model.Song; import com.cappielloantonio.play.repository.AlbumRepository; -import com.cappielloantonio.play.repository.ArtistRepository; import com.cappielloantonio.play.repository.PlaylistRepository; import com.cappielloantonio.play.repository.SongRepository; import com.cappielloantonio.play.util.PreferenceUtil; -import java.util.Calendar; import java.util.Collections; -import java.util.Comparator; import java.util.List; public class HomeViewModel extends AndroidViewModel { @@ -29,18 +25,13 @@ public class HomeViewModel extends AndroidViewModel { private final SongRepository songRepository; private final AlbumRepository albumRepository; - private final ArtistRepository artistRepository; private final PlaylistRepository playlistRepository; private final MutableLiveData> dicoverSongSample = new MutableLiveData<>(null); - private final MutableLiveData> newReleasedAlbum = new MutableLiveData<>(null); private final MutableLiveData> starredTracksSample = new MutableLiveData<>(null); private final MutableLiveData> mostPlayedAlbumSample = new MutableLiveData<>(null); private final MutableLiveData> recentlyPlayedAlbumSample = new MutableLiveData<>(null); private final MutableLiveData> years = new MutableLiveData<>(null); - private final MutableLiveData> starredTracks = new MutableLiveData<>(null); - private final MutableLiveData> starredAlbums = new MutableLiveData<>(null); - private final MutableLiveData> starredArtists = new MutableLiveData<>(null); private final MutableLiveData> recentlyAddedAlbumSample = new MutableLiveData<>(null); private final MutableLiveData> pinnedPlaylists = new MutableLiveData<>(null); @@ -49,7 +40,6 @@ public class HomeViewModel extends AndroidViewModel { songRepository = new SongRepository(application); albumRepository = new AlbumRepository(application); - artistRepository = new ArtistRepository(application); playlistRepository = new PlaylistRepository(application); songRepository.getRandomSample(10, null, null).observeForever(dicoverSongSample::postValue); @@ -60,17 +50,6 @@ public class HomeViewModel extends AndroidViewModel { return dicoverSongSample; } - public LiveData> getRecentlyReleasedAlbums(LifecycleOwner owner) { - int currentYear = Calendar.getInstance().get(Calendar.YEAR); - - albumRepository.getAlbums("byYear", 500, currentYear, currentYear).observe(owner, albums -> { - albums.sort(Comparator.comparing(Album::getCreated).reversed()); - newReleasedAlbum.postValue(albums.subList(0, Math.min(20, albums.size()))); - }); - - return newReleasedAlbum; - } - public LiveData> getStarredTracksSample() { return starredTracksSample; } @@ -80,21 +59,6 @@ public class HomeViewModel extends AndroidViewModel { return years; } - public LiveData> getStarredTracks(LifecycleOwner owner) { - songRepository.getStarredSongs(true, 20).observe(owner, starredTracks::postValue); - return starredTracks; - } - - public LiveData> getStarredAlbums(LifecycleOwner owner) { - albumRepository.getStarredAlbums(true, 20).observe(owner, starredAlbums::postValue); - return starredAlbums; - } - - public LiveData> getStarredArtists(LifecycleOwner owner) { - artistRepository.getStarredArtists(true, 20).observe(owner, starredArtists::postValue); - return starredArtists; - } - public LiveData> getMostPlayedAlbums(LifecycleOwner owner) { albumRepository.getAlbums("frequent", 20, null, null).observe(owner, mostPlayedAlbumSample::postValue); return mostPlayedAlbumSample; @@ -131,18 +95,6 @@ public class HomeViewModel extends AndroidViewModel { songRepository.getStarredSongs(true, 10).observe(owner, starredTracksSample::postValue); } - public void refreshStarredTracks(LifecycleOwner owner) { - songRepository.getStarredSongs(true, 20).observe(owner, starredTracks::postValue); - } - - public void refreshStarredAlbums(LifecycleOwner owner) { - albumRepository.getStarredAlbums(true, 20).observe(owner, starredAlbums::postValue); - } - - public void refreshStarredArtists(LifecycleOwner owner) { - artistRepository.getStarredArtists(true, 20).observe(owner, starredArtists::postValue); - } - public void refreshMostPlayedAlbums(LifecycleOwner owner) { albumRepository.getAlbums("frequent", 20, null, null).observe(owner, mostPlayedAlbumSample::postValue); } diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml index a493764a..b2068a0a 100644 --- a/app/src/main/res/layout/fragment_home.xml +++ b/app/src/main/res/layout/fragment_home.xml @@ -129,40 +129,6 @@ layout="@layout/item_placeholder_album" android:visibility="gone" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -