mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 01:53:31 +00:00
implemented the playlist management logic
This commit is contained in:
parent
d2092f5239
commit
4adde9e951
13 changed files with 448 additions and 27 deletions
|
|
@ -31,12 +31,9 @@ public class PlaylistCatalogueViewModel extends AndroidViewModel {
|
|||
super(application);
|
||||
|
||||
playlistRepository = new PlaylistRepository(application);
|
||||
|
||||
playlists = playlistRepository.getPlaylists(false, -1);
|
||||
}
|
||||
|
||||
public LiveData<List<Playlist>> getPlaylistList() {
|
||||
return playlists;
|
||||
return playlistRepository.getPlaylists(false, -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,6 +11,8 @@ import com.cappielloantonio.play.model.Playlist;
|
|||
import com.cappielloantonio.play.model.Song;
|
||||
import com.cappielloantonio.play.repository.PlaylistRepository;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class PlaylistChooserViewModel extends AndroidViewModel {
|
||||
|
|
@ -32,7 +34,7 @@ public class PlaylistChooserViewModel extends AndroidViewModel {
|
|||
}
|
||||
|
||||
public void addSongToPlaylist(String playlistId) {
|
||||
playlistRepository.addSongToPlaylist(playlistId, toAdd.getId());
|
||||
playlistRepository.addSongToPlaylist(playlistId, new ArrayList(Collections.singletonList(toAdd.getId())));
|
||||
}
|
||||
|
||||
public void setSongToAdd(Song song) {
|
||||
|
|
|
|||
|
|
@ -1,38 +1,97 @@
|
|||
package com.cappielloantonio.play.viewmodel;
|
||||
|
||||
import android.app.Application;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.AndroidViewModel;
|
||||
import androidx.lifecycle.LiveData;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.cappielloantonio.play.model.Server;
|
||||
import com.cappielloantonio.play.model.Playlist;
|
||||
import com.cappielloantonio.play.model.Song;
|
||||
import com.cappielloantonio.play.repository.PlaylistRepository;
|
||||
import com.cappielloantonio.play.repository.ServerRepository;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
public class PlaylistEditorViewModel extends AndroidViewModel {
|
||||
private static final String TAG = "PlaylistEditorViewModel";
|
||||
|
||||
private PlaylistRepository playlistRepository;
|
||||
|
||||
private Song toAdd;
|
||||
private Playlist toEdit;
|
||||
|
||||
private MutableLiveData<List<Song>> songLiveList = new MutableLiveData<>();
|
||||
|
||||
public PlaylistEditorViewModel(@NonNull Application application) {
|
||||
super(application);
|
||||
|
||||
playlistRepository = new PlaylistRepository(application);
|
||||
|
||||
Log.d(TAG, "PlaylistEditorViewModel()");
|
||||
}
|
||||
|
||||
public void createPlaylist(String name) {
|
||||
playlistRepository.createPlaylist(name, toAdd.getId());
|
||||
playlistRepository.createPlaylist(null, name, new ArrayList(Collections.singletonList(toAdd.getId())));
|
||||
}
|
||||
|
||||
public void updatePlaylist(String playlistId) {
|
||||
public void updatePlaylist(String name) {
|
||||
playlistRepository.deletePlaylist(toEdit.getId());
|
||||
playlistRepository.createPlaylist(toEdit.getId(), name, getPlaylistSongIds());
|
||||
}
|
||||
|
||||
public void deletePlaylist() {
|
||||
if (toEdit != null) playlistRepository.deletePlaylist(toEdit.getId());
|
||||
}
|
||||
|
||||
public Song getSongToAdd() {
|
||||
return toAdd;
|
||||
}
|
||||
|
||||
public void setSongToAdd(Song song) {
|
||||
toAdd = song;
|
||||
this.toAdd = song;
|
||||
}
|
||||
|
||||
public Playlist getPlaylistToEdit() {
|
||||
return toEdit;
|
||||
}
|
||||
|
||||
public void setPlaylistToEdit(Playlist playlist) {
|
||||
this.toEdit = playlist;
|
||||
|
||||
if (playlist != null) {
|
||||
this.songLiveList = playlistRepository.getPlaylistSongs(toEdit.getId());
|
||||
} else {
|
||||
this.songLiveList = new MutableLiveData<>();
|
||||
}
|
||||
}
|
||||
|
||||
public LiveData<List<Song>> getPlaylistSongLiveList() {
|
||||
return songLiveList;
|
||||
}
|
||||
|
||||
public void removeFromPlaylistSongLiveList(Song song) {
|
||||
List<Song> songs = songLiveList.getValue();
|
||||
Objects.requireNonNull(songs).remove(song);
|
||||
songLiveList.postValue(songs);
|
||||
}
|
||||
|
||||
public void orderPlaylistSongLiveListAfterSwap(List<Song> songs) {
|
||||
songLiveList.postValue(songs);
|
||||
}
|
||||
|
||||
private ArrayList<String> getPlaylistSongIds() {
|
||||
List<Song> songs = songLiveList.getValue();
|
||||
ArrayList<String> ids = new ArrayList<>();
|
||||
|
||||
for (Song song : songs) {
|
||||
ids.add(song.getId());
|
||||
}
|
||||
|
||||
return ids;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue