From 95bcbb0f6155c605f7599db1444de8f119ed587c Mon Sep 17 00:00:00 2001 From: CappielloAntonio Date: Fri, 30 Jul 2021 14:15:46 +0200 Subject: [PATCH] Implementation of playlist catalog recovery --- .../fragment/PlaylistCatalogueFragment.java | 9 +++- .../viewmodel/AlbumCatalogueViewModel.java | 9 ---- .../viewmodel/ArtistCatalogueViewModel.java | 9 ---- .../viewmodel/PlaylistCatalogueViewModel.java | 42 ++++++++++++++++--- 4 files changed, 45 insertions(+), 24 deletions(-) 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 3340146e..99858335 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 @@ -24,6 +24,7 @@ import com.cappielloantonio.play.R; import com.cappielloantonio.play.adapter.PlaylistCatalogueAdapter; import com.cappielloantonio.play.databinding.FragmentPlaylistCatalogueBinding; import com.cappielloantonio.play.ui.activity.MainActivity; +import com.cappielloantonio.play.viewmodel.ArtistCatalogueViewModel; import com.cappielloantonio.play.viewmodel.PlaylistCatalogueViewModel; public class PlaylistCatalogueFragment extends Fragment { @@ -39,6 +40,8 @@ public class PlaylistCatalogueFragment extends Fragment { public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); + + initData(); } @Override @@ -47,7 +50,6 @@ public class PlaylistCatalogueFragment extends Fragment { bind = FragmentPlaylistCatalogueBinding.inflate(inflater, container, false); View view = bind.getRoot(); - playlistCatalogueViewModel = new ViewModelProvider(requireActivity()).get(PlaylistCatalogueViewModel.class); initAppBar(); initArtistCatalogueView(); @@ -67,6 +69,11 @@ public class PlaylistCatalogueFragment extends Fragment { bind = null; } + private void initData() { + playlistCatalogueViewModel = new ViewModelProvider(requireActivity()).get(PlaylistCatalogueViewModel.class); + playlistCatalogueViewModel.loadPlaylists(requireContext()); + } + private void initAppBar() { activity.setSupportActionBar(bind.toolbar); diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java index a70cba9b..80035f9c 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/AlbumCatalogueViewModel.java @@ -81,13 +81,4 @@ public class AlbumCatalogueViewModel extends AndroidViewModel { } }); } - - - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } } diff --git a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java index 2cc2ccd0..d8a6703a 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/ArtistCatalogueViewModel.java @@ -31,7 +31,6 @@ public class ArtistCatalogueViewModel extends AndroidViewModel { private ArtistRepository artistRepository; private String query = ""; - private int page = 0; public ArtistCatalogueViewModel(@NonNull Application application) { super(application); @@ -67,12 +66,4 @@ public class ArtistCatalogueViewModel extends AndroidViewModel { } }); } - - public String getQuery() { - return query; - } - - public void setQuery(String query) { - this.query = query; - } } 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 2fb9d3b1..90178a71 100644 --- a/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java +++ b/app/src/main/java/com/cappielloantonio/play/viewmodel/PlaylistCatalogueViewModel.java @@ -1,20 +1,34 @@ package com.cappielloantonio.play.viewmodel; import android.app.Application; +import android.content.Context; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import com.cappielloantonio.play.App; +import com.cappielloantonio.play.model.Artist; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.repository.PlaylistRepository; +import com.cappielloantonio.play.subsonic.models.ArtistID3; +import com.cappielloantonio.play.subsonic.models.IndexID3; +import com.cappielloantonio.play.subsonic.models.ResponseStatus; +import com.cappielloantonio.play.subsonic.models.SubsonicResponse; +import com.cappielloantonio.play.util.MappingUtil; +import java.util.ArrayList; import java.util.List; -public class PlaylistCatalogueViewModel extends AndroidViewModel { - private PlaylistRepository playlistRepository; +import retrofit2.Call; +import retrofit2.Callback; - private LiveData> playlistList; +public class PlaylistCatalogueViewModel extends AndroidViewModel { + private MutableLiveData> playlists = new MutableLiveData<>(new ArrayList<>()); + + private PlaylistRepository playlistRepository; + private String query = ""; public PlaylistCatalogueViewModel(@NonNull Application application) { super(application); @@ -23,7 +37,25 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel { } public LiveData> getPlaylistList() { - // playlistList = playlistRepository.getListLivePlaylists(); - return playlistList; + 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) { + + } + }); } }