From 72218749c0a6ff07b8117d2b468b998d9647f6f9 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Fri, 26 Nov 2021 16:09:49 +0100 Subject: [PATCH] Randomized initialization of playlists on the homepage --- .../play/ui/fragment/HomeFragment.java | 2 +- .../play/viewmodel/HomeViewModel.java | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) 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 21a80ac6..84a6d42a 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 @@ -484,7 +484,7 @@ public class HomeFragment extends Fragment { } public void initPinnedPlaylistsView() { - homeViewModel.getPinnedPlaylistList(requireActivity()).observe(requireActivity(), playlists -> { + homeViewModel.getPinnedPlaylistList(requireActivity(), 5, true).observe(requireActivity(), playlists -> { if (bind != null && playlists != null) { for (Playlist playlist : playlists) { int playlistViewHashCode = playlist.getId().hashCode(); 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 33db5f52..296db9b6 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/HomeViewModel.java @@ -3,7 +3,6 @@ package com.cappielloantonio.play.viewmodel; import android.app.Application; import androidx.annotation.NonNull; -import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.LiveData; @@ -17,11 +16,9 @@ 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.MappingUtil; -import java.util.HashSet; +import java.util.Collections; import java.util.List; -import java.util.TreeSet; public class HomeViewModel extends AndroidViewModel { private static final String TAG = "HomeViewModel"; @@ -98,8 +95,12 @@ public class HomeViewModel extends AndroidViewModel { return recentlyPlayedAlbumSample; } - public LiveData> getPinnedPlaylistList(LifecycleOwner owner) { - playlistRepository.getPinnedPlaylists().observe(owner, pinnedPlaylists::postValue); + public LiveData> getPinnedPlaylistList(LifecycleOwner owner, int maxNumber, boolean random) { + playlistRepository.getPinnedPlaylists().observe(owner, playlists -> { + if (random) Collections.shuffle(playlists); + List subPlaylist = playlists.subList(0, Math.min(maxNumber, playlists.size())); + pinnedPlaylists.postValue(subPlaylist); + }); return pinnedPlaylists; }