package io.hefuyi.listener.respository.interfaces; import java.io.File; import java.util.List; import io.hefuyi.listener.api.model.ArtistInfo; import io.hefuyi.listener.mvp.model.Album; import io.hefuyi.listener.mvp.model.Artist; import io.hefuyi.listener.mvp.model.FolderInfo; import io.hefuyi.listener.mvp.model.Playlist; import io.hefuyi.listener.mvp.model.Song; import rx.Observable; /** * Created by hefuyi on 2016/11/3. */ public interface Repository { //from network Observable<ArtistInfo> getArtistInfo( String artist); Observable<File> downloadLrcFile(String title, String artist, long duration); //form local Observable<List<Album>> getAllAlbums(); Observable<Album> getAlbum(long id); Observable<List<Album>> getAlbums(String paramString); Observable<List<Song>> getSongsForAlbum(long albumID); Observable<List<Album>> getAlbumsForArtist(long artistID); Observable<List<Artist>> getAllArtists(); Observable<Artist> getArtist(long artistID); Observable<List<Artist>> getArtists(String paramString); Observable<List<Song>> getSongsForArtist(long artistID); Observable<List<Song>> getRecentlyAddedSongs(); Observable<List<Album>> getRecentlyAddedAlbums(); Observable<List<Artist>> getRecentlyAddedArtists(); Observable<List<Song>> getRecentlyPlayedSongs(); Observable<List<Album>> getRecentlyPlayedAlbums(); Observable<List<Artist>> getRecentlyPlayedArtist(); Observable<List<Playlist>> getPlaylists(boolean defaultIncluded); Observable<List<Song>> getSongsInPlaylist(long playlistID); Observable<List<Song>> getQueueSongs(); Observable<List<Song>> getFavourateSongs(); Observable<List<Album>> getFavourateAlbums(); Observable<List<Artist>> getFavourateArtist(); Observable<List<Song>> getAllSongs(); Observable<List<Song>> searchSongs(String searchString); Observable<List<Song>> getTopPlaySongs(); Observable<List<FolderInfo>> getFoldersWithSong(); Observable<List<Song>> getSongsInFolder(String path); Observable<List<Object>> getSearchResult(String queryString); }