package com.marverenic.music.data.store; import android.support.annotation.Nullable; import com.marverenic.music.model.AutoPlaylist; import com.marverenic.music.model.Playlist; import com.marverenic.music.model.Song; import java.util.List; import rx.Observable; public interface PlaylistStore { void loadPlaylists(); Observable<Boolean> refresh(); Observable<Boolean> isLoading(); Observable<List<Playlist>> getPlaylists(); Observable<List<Song>> getSongs(Playlist playlist); Observable<List<Playlist>> searchForPlaylists(String query); String verifyPlaylistName(String playlistName); Playlist makePlaylist(String name); AutoPlaylist makePlaylist(AutoPlaylist model); Playlist makePlaylist(String name, @Nullable List<Song> songs); void removePlaylist(Playlist playlist); void editPlaylist(Playlist playlist, List<Song> newSongs); void editPlaylist(AutoPlaylist replacementModel); void addToPlaylist(Playlist playlist, Song song); void addToPlaylist(Playlist playlist, List<Song> songs); }