From d3f1ce1fe4dde0c86511de5ef704e31c9ceeb547 Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Tue, 10 Aug 2021 17:34:20 +0200 Subject: [PATCH] Fix long click to refresh --- .../play/repository/AlbumRepository.java | 36 +++---------------- .../play/repository/ArtistRepository.java | 24 ++++++------- .../play/repository/GenreRepository.java | 4 +-- .../play/repository/PlaylistRepository.java | 18 ++++++---- .../fragment/PlaylistCatalogueFragment.java | 5 ++- .../viewmodel/PlaylistCatalogueViewModel.java | 22 ++---------- 6 files changed, 34 insertions(+), 75 deletions(-) diff --git a/app/src/main/java/com/cappielloantonio/play/repository/AlbumRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/AlbumRepository.java index bd738c79..a01d9336 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/AlbumRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/AlbumRepository.java @@ -29,16 +29,13 @@ public class AlbumRepository { private Application application; - private MutableLiveData> listLiveRecentlyAddedAlbums = new MutableLiveData<>(); - private MutableLiveData> listLiveMostPlayedAlbums = new MutableLiveData<>(); - private MutableLiveData> listLiveRecentlyPlayedAlbums = new MutableLiveData<>(); - private MutableLiveData> listLiveRandomAlbums = new MutableLiveData<>(); - public AlbumRepository(Application application) { this.application = application; } public MutableLiveData> getAlbums(String type, int size) { + MutableLiveData> listLiveAlbums = new MutableLiveData<>(); + App.getSubsonicClientInstance(application, false) .getAlbumSongListClient() .getAlbumList2(type, size, 0, null, null) @@ -46,21 +43,7 @@ public class AlbumRepository { @Override public void onResponse(Call call, Response response) { List albums = new ArrayList<>(MappingUtil.mapAlbum(response.body().getAlbumList2().getAlbums())); - - switch (type) { - case "newest": - listLiveRecentlyAddedAlbums.setValue(albums); - break; - case "frequent": - listLiveMostPlayedAlbums.setValue(albums); - break; - case "recent": - listLiveRecentlyPlayedAlbums.setValue(albums); - break; - case "random": - listLiveRandomAlbums.setValue(albums); - break; - } + listLiveAlbums.setValue(albums); } @Override @@ -69,18 +52,7 @@ public class AlbumRepository { } }); - switch (type) { - case "newest": - return listLiveRecentlyAddedAlbums; - case "frequent": - return listLiveMostPlayedAlbums; - case "recent": - return listLiveRecentlyPlayedAlbums; - case "random": - return listLiveRandomAlbums; - default: - return new MutableLiveData<>(); - } + return listLiveAlbums; } public MutableLiveData> getStarredAlbums() { diff --git a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java index 7818ca17..f44ae902 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/ArtistRepository.java @@ -26,15 +26,13 @@ import retrofit2.Response; public class ArtistRepository { private Application application; - private MutableLiveData> starredArtists = new MutableLiveData<>(new ArrayList<>()); - private MutableLiveData> listLiveRandomArtists = new MutableLiveData<>(new ArrayList<>()); - private MutableLiveData> listLiveArtists = new MutableLiveData<>(new ArrayList<>()); - public ArtistRepository(Application application) { this.application = application; } public MutableLiveData> getStarredArtists() { + MutableLiveData> starredArtists = new MutableLiveData<>(new ArrayList<>()); + App.getSubsonicClientInstance(application, false) .getAlbumSongListClient() .getStarred2() @@ -56,6 +54,8 @@ public class ArtistRepository { } public MutableLiveData> getArtists(boolean random, int size) { + MutableLiveData> listLiveArtists = new MutableLiveData<>(new ArrayList<>()); + App.getSubsonicClientInstance(application, false) .getBrowsingClient() .getArtists() @@ -69,9 +69,13 @@ public class ArtistRepository { artists.addAll(MappingUtil.mapArtist(index.getArtists())); } - listLiveArtists.setValue(artists); - Collections.shuffle(artists); - getArtistInfo(artists.subList(0, artists.size() / size > 0 ? size : artists.size()), listLiveRandomArtists); + if(random) { + Collections.shuffle(artists); + getArtistInfo(artists.subList(0, artists.size() / size > 0 ? size : artists.size()), listLiveArtists); + } + else { + listLiveArtists.setValue(artists); + } } } @@ -80,11 +84,7 @@ public class ArtistRepository { } }); - if (random) { - return listLiveRandomArtists; - } else { - return listLiveArtists; - } + return listLiveArtists; } /* diff --git a/app/src/main/java/com/cappielloantonio/play/repository/GenreRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/GenreRepository.java index 02520aa3..66f60acf 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/GenreRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/GenreRepository.java @@ -23,13 +23,13 @@ public class GenreRepository { private Application application; - private MutableLiveData> genres = new MutableLiveData<>(); - public GenreRepository(Application application) { this.application = application; } public MutableLiveData> getGenres(boolean random, int size) { + MutableLiveData> genres = new MutableLiveData<>(); + App.getSubsonicClientInstance(application, false) .getBrowsingClient() .getGenres() diff --git a/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java b/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java index 8ed566cb..b8c84667 100644 --- a/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java +++ b/app/src/main/java/com/cappielloantonio/play/repository/PlaylistRepository.java @@ -22,15 +22,13 @@ import retrofit2.Response; public class PlaylistRepository { private Application application; - private MutableLiveData> listLivePlaylists = new MutableLiveData<>(new ArrayList<>()); - private MutableLiveData> listLiveRandomPlaylist = new MutableLiveData<>(new ArrayList<>()); - private MutableLiveData> listLivePlaylistSongs = new MutableLiveData<>(new ArrayList<>()); - public PlaylistRepository(Application application) { this.application = application; } public MutableLiveData> getPlaylists(boolean random, int size) { + MutableLiveData> listLivePlaylists = new MutableLiveData<>(new ArrayList<>()); + App.getSubsonicClientInstance(application, false) .getPlaylistClient() .getPlaylists() @@ -39,9 +37,13 @@ public class PlaylistRepository { public void onResponse(Call call, Response response) { if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { List playlists = new ArrayList<>(MappingUtil.mapPlaylist(response.body().getPlaylists().getPlaylists())); - listLivePlaylists.setValue(playlists); - Collections.shuffle(playlists); - listLiveRandomPlaylist.setValue(playlists); + if(random) { + Collections.shuffle(playlists); + listLivePlaylists.setValue(playlists.subList(0, size)); + } + else { + listLivePlaylists.setValue(playlists); + } } } @@ -54,6 +56,8 @@ public class PlaylistRepository { } public MutableLiveData> getPlaylistSongs(String id) { + MutableLiveData> listLivePlaylistSongs = new MutableLiveData<>(new ArrayList<>()); + App.getSubsonicClientInstance(application, false) .getPlaylistClient() .getPlaylist(id) diff --git a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java index 85f71145..9ad1901d 100644 --- a/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/play/ui/fragment/PlaylistCatalogueFragment.java @@ -52,7 +52,7 @@ public class PlaylistCatalogueFragment extends Fragment { View view = bind.getRoot(); initAppBar(); - initArtistCatalogueView(); + initPlaylistCatalogueView(); return view; } @@ -71,7 +71,6 @@ public class PlaylistCatalogueFragment extends Fragment { private void initData() { playlistCatalogueViewModel = new ViewModelProvider(requireActivity()).get(PlaylistCatalogueViewModel.class); - playlistCatalogueViewModel.loadPlaylists(requireContext()); } private void initAppBar() { @@ -98,7 +97,7 @@ public class PlaylistCatalogueFragment extends Fragment { } @SuppressLint("ClickableViewAccessibility") - private void initArtistCatalogueView() { + private void initPlaylistCatalogueView() { bind.playlistCatalogueRecyclerView.setLayoutManager(new LinearLayoutManager(requireContext())); bind.playlistCatalogueRecyclerView.setHasFixedSize(true); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java index 4de577f4..a8583853 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java @@ -22,7 +22,7 @@ import retrofit2.Call; import retrofit2.Callback; public class PlaylistCatalogueViewModel extends AndroidViewModel { - private MutableLiveData> playlists = new MutableLiveData<>(new ArrayList<>()); + private MutableLiveData> playlists; private PlaylistRepository playlistRepository; private String query = ""; @@ -31,28 +31,12 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel { super(application); playlistRepository = new PlaylistRepository(application); + + playlists = playlistRepository.getPlaylists(false, -1); } public LiveData> getPlaylistList() { return playlists; } - public void loadPlaylists(Context context) { - App.getSubsonicClientInstance(context, false) - .getPlaylistClient() - .getPlaylists() - .enqueue(new Callback() { - @Override - public void onResponse(Call call, retrofit2.Response response) { - if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) { - playlists.setValue(MappingUtil.mapPlaylist(response.body().getPlaylists().getPlaylists())); - } - } - - @Override - public void onFailure(Call call, Throwable t) { - - } - }); - } }