mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 01:53:31 +00:00
Implementation of playlist page visualization
This commit is contained in:
parent
95bcbb0f61
commit
051ba23b58
5 changed files with 35 additions and 17 deletions
|
|
@ -7,6 +7,7 @@ import androidx.lifecycle.MutableLiveData;
|
||||||
import com.cappielloantonio.play.App;
|
import com.cappielloantonio.play.App;
|
||||||
import com.cappielloantonio.play.model.Artist;
|
import com.cappielloantonio.play.model.Artist;
|
||||||
import com.cappielloantonio.play.model.Playlist;
|
import com.cappielloantonio.play.model.Playlist;
|
||||||
|
import com.cappielloantonio.play.model.Song;
|
||||||
import com.cappielloantonio.play.subsonic.models.ResponseStatus;
|
import com.cappielloantonio.play.subsonic.models.ResponseStatus;
|
||||||
import com.cappielloantonio.play.subsonic.models.SubsonicResponse;
|
import com.cappielloantonio.play.subsonic.models.SubsonicResponse;
|
||||||
import com.cappielloantonio.play.util.MappingUtil;
|
import com.cappielloantonio.play.util.MappingUtil;
|
||||||
|
|
@ -24,6 +25,7 @@ public class PlaylistRepository {
|
||||||
|
|
||||||
private MutableLiveData<List<Playlist>> listLivePlaylists = new MutableLiveData<>(new ArrayList<>());
|
private MutableLiveData<List<Playlist>> listLivePlaylists = new MutableLiveData<>(new ArrayList<>());
|
||||||
private MutableLiveData<List<Playlist>> listLiveRandomPlaylist = new MutableLiveData<>(new ArrayList<>());
|
private MutableLiveData<List<Playlist>> listLiveRandomPlaylist = new MutableLiveData<>(new ArrayList<>());
|
||||||
|
private MutableLiveData<List<Song>> listLivePlaylistSongs = new MutableLiveData<>(new ArrayList<>());
|
||||||
|
|
||||||
public PlaylistRepository(Application application) {
|
public PlaylistRepository(Application application) {
|
||||||
this.application = application;
|
this.application = application;
|
||||||
|
|
@ -51,4 +53,25 @@ public class PlaylistRepository {
|
||||||
|
|
||||||
return listLivePlaylists;
|
return listLivePlaylists;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MutableLiveData<List<Song>> getPlaylistSongs(String id) {
|
||||||
|
App.getSubsonicClientInstance(application, false)
|
||||||
|
.getPlaylistClient()
|
||||||
|
.getPlaylist(id)
|
||||||
|
.enqueue(new Callback<SubsonicResponse>() {
|
||||||
|
@Override
|
||||||
|
public void onResponse(Call<SubsonicResponse> call, Response<SubsonicResponse> response) {
|
||||||
|
if (response.body().getStatus().getValue().equals(ResponseStatus.OK)) {
|
||||||
|
List<Song> songs = new ArrayList<>(MappingUtil.mapSong(response.body().getPlaylist().getEntries()));
|
||||||
|
listLivePlaylistSongs.setValue(songs);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onFailure(Call<SubsonicResponse> call, Throwable t) {
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return listLivePlaylistSongs;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,13 @@ import java.util.Map;
|
||||||
|
|
||||||
import retrofit2.Call;
|
import retrofit2.Call;
|
||||||
import retrofit2.http.GET;
|
import retrofit2.http.GET;
|
||||||
|
import retrofit2.http.Query;
|
||||||
import retrofit2.http.QueryMap;
|
import retrofit2.http.QueryMap;
|
||||||
|
|
||||||
public interface PlaylistService {
|
public interface PlaylistService {
|
||||||
@GET("getPlaylists")
|
@GET("getPlaylists")
|
||||||
Call<SubsonicResponse> getPlaylists(@QueryMap Map<String, String> params);
|
Call<SubsonicResponse> getPlaylists(@QueryMap Map<String, String> params);
|
||||||
|
|
||||||
@GET("getPlaylist?id={id}")
|
@GET("getPlaylist")
|
||||||
Call<SubsonicResponse> getPlaylist(@QueryMap Map<String, String> params, String id);
|
Call<SubsonicResponse> getPlaylist(@QueryMap Map<String, String> params, @Query("id") String id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ public class SubsonicResponse {
|
||||||
private License license;
|
private License license;
|
||||||
private JukeboxPlaylist jukeboxPlaylist;
|
private JukeboxPlaylist jukeboxPlaylist;
|
||||||
private JukeboxStatus jukeboxStatus;
|
private JukeboxStatus jukeboxStatus;
|
||||||
@Element
|
@Element(name = "playlist")
|
||||||
private PlaylistWithSongs playlist;
|
private PlaylistWithSongs playlist;
|
||||||
@Element
|
@Element
|
||||||
private Playlists playlists;
|
private Playlists playlists;
|
||||||
|
|
|
||||||
|
|
@ -88,7 +88,7 @@ public class PlaylistPageFragment extends Fragment {
|
||||||
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.action_download_playlist:
|
case R.id.action_download_playlist:
|
||||||
DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(playlistPageViewModel.getPlaylistSongList());
|
DownloadUtil.getDownloadTracker(requireContext()).toggleDownload(playlistPageViewModel.getPlaylistSongLiveList().getValue());
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -5,38 +5,32 @@ import android.app.Application;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.lifecycle.AndroidViewModel;
|
import androidx.lifecycle.AndroidViewModel;
|
||||||
import androidx.lifecycle.LiveData;
|
import androidx.lifecycle.LiveData;
|
||||||
|
import androidx.lifecycle.MutableLiveData;
|
||||||
|
|
||||||
import com.cappielloantonio.play.model.Playlist;
|
import com.cappielloantonio.play.model.Playlist;
|
||||||
import com.cappielloantonio.play.model.Song;
|
import com.cappielloantonio.play.model.Song;
|
||||||
import com.cappielloantonio.play.repository.SongRepository;
|
import com.cappielloantonio.play.repository.PlaylistRepository;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class PlaylistPageViewModel extends AndroidViewModel {
|
public class PlaylistPageViewModel extends AndroidViewModel {
|
||||||
private static final String TAG = "PlaylistPageViewModel";
|
private PlaylistRepository playlistRepository;
|
||||||
|
|
||||||
private SongRepository songRepository;
|
private MutableLiveData<List<Song>> songLiveList = new MutableLiveData<>();
|
||||||
|
|
||||||
private LiveData<List<Song>> songLiveList;
|
|
||||||
|
|
||||||
private Playlist playlist;
|
private Playlist playlist;
|
||||||
|
|
||||||
public PlaylistPageViewModel(@NonNull Application application) {
|
public PlaylistPageViewModel(@NonNull Application application) {
|
||||||
super(application);
|
super(application);
|
||||||
|
|
||||||
songRepository = new SongRepository(application);
|
playlistRepository = new PlaylistRepository(application);
|
||||||
}
|
}
|
||||||
|
|
||||||
public LiveData<List<Song>> getPlaylistSongLiveList() {
|
public MutableLiveData<List<Song>> getPlaylistSongLiveList() {
|
||||||
// songLiveList = songRepository.getPlaylistLiveSong(playlist.getId());
|
songLiveList = playlistRepository.getPlaylistSongs(playlist.getId());
|
||||||
return songLiveList;
|
return songLiveList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Song> getPlaylistSongList() {
|
|
||||||
// return songRepository.getPlaylistSong(playlist.getId());
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Playlist getPlaylist() {
|
public Playlist getPlaylist() {
|
||||||
return playlist;
|
return playlist;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue