Removed butter knife
This commit is contained in:
parent
d5f63b91ac
commit
63e3276098
194 changed files with 5984 additions and 7491 deletions
|
@ -1,12 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 09/08/17.
|
||||
*/
|
||||
|
||||
public interface BasePresenter<T> {
|
||||
|
||||
void subscribe();
|
||||
|
||||
void unsubscribe();
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
package code.name.monkey.retromusic.mvp
|
||||
|
||||
/**
|
||||
* Created by hemanths on 09/08/17.
|
||||
*/
|
||||
|
||||
interface BasePresenter<T> {
|
||||
|
||||
fun subscribe()
|
||||
|
||||
fun unsubscribe()
|
||||
}
|
|
@ -1,15 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 09/08/17.
|
||||
*/
|
||||
|
||||
public interface BaseView<T> {
|
||||
void loading();
|
||||
|
||||
void showData(T list);
|
||||
|
||||
void showEmptyView();
|
||||
|
||||
void completed();
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package code.name.monkey.retromusic.mvp
|
||||
|
||||
/**
|
||||
* Created by hemanths on 09/08/17.
|
||||
*/
|
||||
|
||||
interface BaseView<T> {
|
||||
fun loading()
|
||||
|
||||
fun showData(list: T)
|
||||
|
||||
fun showEmptyView()
|
||||
|
||||
fun completed()
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import code.name.monkey.retromusic.Injection;
|
||||
import code.name.monkey.retromusic.providers.interfaces.Repository;
|
||||
import code.name.monkey.retromusic.util.schedulers.BaseSchedulerProvider;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
*/
|
||||
|
||||
public class Presenter {
|
||||
@NonNull
|
||||
protected Repository repository;
|
||||
@NonNull
|
||||
protected CompositeDisposable disposable;
|
||||
@NonNull
|
||||
protected BaseSchedulerProvider schedulerProvider;
|
||||
|
||||
public Presenter() {
|
||||
this.repository = Injection.INSTANCE.provideRepository();
|
||||
this.schedulerProvider = Injection.INSTANCE.provideSchedulerProvider();
|
||||
this.disposable = new CompositeDisposable();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package code.name.monkey.retromusic.mvp
|
||||
|
||||
import code.name.monkey.retromusic.Injection
|
||||
import code.name.monkey.retromusic.providers.interfaces.Repository
|
||||
import code.name.monkey.retromusic.util.schedulers.BaseSchedulerProvider
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
*/
|
||||
|
||||
open class Presenter {
|
||||
protected var repository: Repository = Injection.provideRepository()
|
||||
protected var disposable: CompositeDisposable = CompositeDisposable()
|
||||
protected var schedulerProvider: BaseSchedulerProvider = Injection.provideSchedulerProvider()
|
||||
}
|
|
@ -1,19 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public interface AlbumContract {
|
||||
|
||||
interface AlbumView extends BaseView<ArrayList<Album>> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<AlbumView> {
|
||||
|
||||
void loadAlbums();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
import java.util.ArrayList
|
||||
|
||||
interface AlbumContract {
|
||||
|
||||
interface AlbumView : BaseView<ArrayList<Album>>
|
||||
|
||||
interface Presenter : BasePresenter<AlbumView> {
|
||||
|
||||
fun loadAlbums()
|
||||
}
|
||||
|
||||
}
|
|
@ -1,18 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
public interface AlbumDetailsContract {
|
||||
|
||||
interface AlbumDetailsView extends BaseView<Album> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<AlbumDetailsView> {
|
||||
|
||||
void loadAlbumSongs(int albumId);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
interface AlbumDetailsContract {
|
||||
|
||||
interface AlbumDetailsView : BaseView<Album>
|
||||
|
||||
interface Presenter : BasePresenter<AlbumDetailsView> {
|
||||
|
||||
fun loadAlbumSongs(albumId: Int)
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
*/
|
||||
|
||||
public interface ArtistContract {
|
||||
interface ArtistView extends BaseView<ArrayList<Artist>> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<ArtistView> {
|
||||
void loadArtists();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 16/08/17.
|
||||
*/
|
||||
|
||||
interface ArtistContract {
|
||||
interface ArtistView : BaseView<ArrayList<Artist>>
|
||||
|
||||
interface Presenter : BasePresenter<ArtistView> {
|
||||
fun loadArtists()
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public interface ArtistDetailContract {
|
||||
interface ArtistsDetailsView extends BaseView<Artist> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<ArtistsDetailsView> {
|
||||
void loadArtistById();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
interface ArtistDetailContract {
|
||||
interface ArtistsDetailsView : BaseView<Artist>
|
||||
|
||||
interface Presenter : BasePresenter<ArtistsDetailsView> {
|
||||
fun loadArtistById()
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.model.Genre;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
public interface GenreContract {
|
||||
interface GenreView extends BaseView<ArrayList<Genre>> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<GenreView> {
|
||||
void loadGenre();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.Genre
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
interface GenreContract {
|
||||
interface GenreView : BaseView<ArrayList<Genre>>
|
||||
|
||||
interface Presenter : BasePresenter<GenreView> {
|
||||
fun loadGenre()
|
||||
}
|
||||
}
|
|
@ -1,20 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
public interface GenreDetailsContract {
|
||||
interface GenreDetailsView extends BaseView<ArrayList<Song>> {
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<GenreDetailsView> {
|
||||
void loadGenre(int genreId);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
interface GenreDetailsContract {
|
||||
interface GenreDetailsView : BaseView<ArrayList<Song>>
|
||||
|
||||
interface Presenter : BasePresenter<GenreDetailsView> {
|
||||
fun loadGenre(genreId: Int)
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.AbsCustomPlaylist;
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.model.Genre;
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
public interface HomeContract {
|
||||
|
||||
interface HomeView extends BaseView<ArrayList<Object>> {
|
||||
|
||||
void recentArtist(ArrayList<Artist> artists);
|
||||
|
||||
void recentAlbum(ArrayList<Album> albums);
|
||||
|
||||
void topArtists(ArrayList<Artist> artists);
|
||||
|
||||
void topAlbums(ArrayList<Album> albums);
|
||||
|
||||
void suggestions(ArrayList<Song> songs);
|
||||
|
||||
void playlists(ArrayList<Playlist> playlists);
|
||||
|
||||
void geners(ArrayList<Genre> songs);
|
||||
}
|
||||
|
||||
interface HomePresenter extends BasePresenter<HomeView> {
|
||||
|
||||
void loadRecentAlbums();
|
||||
|
||||
void loadTopAlbums();
|
||||
|
||||
void loadRecentArtists();
|
||||
|
||||
void loadTopArtists();
|
||||
|
||||
void loadSuggestions();
|
||||
|
||||
void loadGenres();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
import code.name.monkey.retromusic.model.AbsCustomPlaylist
|
||||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.model.Genre
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
interface HomeContract {
|
||||
|
||||
interface HomeView : BaseView<ArrayList<Any>> {
|
||||
|
||||
fun recentArtist(artists: ArrayList<Artist>)
|
||||
|
||||
fun recentAlbum(albums: ArrayList<Album>)
|
||||
|
||||
fun topArtists(artists: ArrayList<Artist>)
|
||||
|
||||
fun topAlbums(albums: ArrayList<Album>)
|
||||
|
||||
fun suggestions(songs: ArrayList<Song>)
|
||||
|
||||
fun playlists(playlists: ArrayList<Playlist>)
|
||||
|
||||
fun geners(songs: ArrayList<Genre>)
|
||||
}
|
||||
|
||||
interface HomePresenter : BasePresenter<HomeView> {
|
||||
|
||||
fun loadRecentAlbums()
|
||||
|
||||
fun loadTopAlbums()
|
||||
|
||||
fun loadRecentArtists()
|
||||
|
||||
fun loadTopArtists()
|
||||
|
||||
fun loadSuggestions()
|
||||
|
||||
fun loadGenres()
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 19/08/17.
|
||||
*/
|
||||
|
||||
public interface PlaylistContract {
|
||||
interface PlaylistView extends BaseView<ArrayList<Playlist> > {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<PlaylistView> {
|
||||
void loadPlaylists();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
/**
|
||||
* Created by hemanths on 19/08/17.
|
||||
*/
|
||||
|
||||
interface PlaylistContract {
|
||||
interface PlaylistView : BaseView<ArrayList<Playlist>>
|
||||
|
||||
interface Presenter : BasePresenter<PlaylistView> {
|
||||
fun loadPlaylists()
|
||||
}
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public interface PlaylistSongsContract {
|
||||
interface PlaylistSongsView extends BaseView<ArrayList<Song>> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<PlaylistSongsView> {
|
||||
void loadSongs(Playlist playlist);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
interface PlaylistSongsContract {
|
||||
interface PlaylistSongsView : BaseView<ArrayList<Song>>
|
||||
|
||||
interface Presenter : BasePresenter<PlaylistSongsView> {
|
||||
fun loadSongs(playlist: Playlist)
|
||||
}
|
||||
}
|
|
@ -1,21 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public interface SearchContract {
|
||||
interface SearchView extends BaseView<ArrayList<Object>> {
|
||||
|
||||
}
|
||||
|
||||
interface SearchPresenter extends BasePresenter<SearchView> {
|
||||
void search(String query);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
interface SearchContract {
|
||||
interface SearchView : BaseView<ArrayList<Any>>
|
||||
|
||||
interface SearchPresenter : BasePresenter<SearchView> {
|
||||
fun search(query: String)
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.contract;
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter;
|
||||
import code.name.monkey.retromusic.mvp.BaseView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 10/08/17.
|
||||
*/
|
||||
|
||||
public interface SongContract {
|
||||
|
||||
interface SongView extends BaseView<ArrayList<Song>> {
|
||||
|
||||
}
|
||||
|
||||
interface Presenter extends BasePresenter<SongView> {
|
||||
void loadSongs();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.BasePresenter
|
||||
import code.name.monkey.retromusic.mvp.BaseView
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 10/08/17.
|
||||
*/
|
||||
|
||||
interface SongContract {
|
||||
|
||||
interface SongView : BaseView<ArrayList<Song>>
|
||||
|
||||
interface Presenter : BasePresenter<SongView> {
|
||||
fun loadSongs()
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.AlbumDetailsContract;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public class AlbumDetailsPresenter extends Presenter implements AlbumDetailsContract.Presenter {
|
||||
|
||||
@NonNull
|
||||
private final int albumId;
|
||||
@NonNull
|
||||
private AlbumDetailsContract.AlbumDetailsView view;
|
||||
|
||||
public AlbumDetailsPresenter(@NonNull AlbumDetailsContract.AlbumDetailsView view, int albumId) {
|
||||
|
||||
this.view = view;
|
||||
this.albumId = albumId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadAlbumSongs(albumId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAlbumSongs(int albumId) {
|
||||
disposable.add(repository.getAlbum(albumId)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showAlbum,
|
||||
throwable -> view.showEmptyView(),
|
||||
() -> view.completed()));
|
||||
}
|
||||
|
||||
private void showAlbum(Album album) {
|
||||
if (album != null) {
|
||||
view.showData(album);
|
||||
} else {
|
||||
view.showEmptyView();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.AlbumDetailsContract
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
class AlbumDetailsPresenter(private val view: AlbumDetailsContract.AlbumDetailsView, private val albumId: Int) : Presenter(), AlbumDetailsContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadAlbumSongs(albumId)
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadAlbumSongs(albumId: Int) {
|
||||
disposable.add(repository.getAlbum(albumId)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showAlbum(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
private fun showAlbum(album: Album?) {
|
||||
if (album != null) {
|
||||
view.showData(album)
|
||||
} else {
|
||||
view.showEmptyView()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Album;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.AlbumContract;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 12/08/17.
|
||||
*/
|
||||
|
||||
public class AlbumPresenter extends Presenter implements AlbumContract.Presenter {
|
||||
@NonNull
|
||||
private AlbumContract.AlbumView view;
|
||||
|
||||
|
||||
public AlbumPresenter(@NonNull AlbumContract.AlbumView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadAlbums();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Album> albums) {
|
||||
view.showData(albums);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAlbums() {
|
||||
disposable.add(repository.getAllAlbums()
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> view.showEmptyView(),
|
||||
() -> view.completed()));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Album
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.AlbumContract
|
||||
import java.util.*
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 12/08/17.
|
||||
*/
|
||||
|
||||
class AlbumPresenter(private val view: AlbumContract.AlbumView) : Presenter(), AlbumContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadAlbums()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
private fun showList(albums: ArrayList<Album>) {
|
||||
view.showData(albums)
|
||||
}
|
||||
|
||||
override fun loadAlbums() {
|
||||
disposable.add(repository.allAlbums
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.ArtistDetailContract;
|
||||
import code.name.monkey.retromusic.ui.activities.ArtistDetailActivity;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public class ArtistDetailsPresenter extends Presenter implements ArtistDetailContract.Presenter {
|
||||
|
||||
@NonNull
|
||||
private final ArtistDetailContract.ArtistsDetailsView view;
|
||||
private Bundle bundle;
|
||||
|
||||
public ArtistDetailsPresenter(@NonNull ArtistDetailContract.ArtistsDetailsView view,
|
||||
Bundle artistId) {
|
||||
this.view = view;
|
||||
this.bundle = artistId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadArtistById();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadArtistById() {
|
||||
disposable.add(repository.getArtistById(bundle.getInt(ArtistDetailActivity.EXTRA_ARTIST_ID))
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showArtist,
|
||||
throwable -> view.showEmptyView(),
|
||||
view::completed));
|
||||
}
|
||||
|
||||
private void showArtist(Artist album) {
|
||||
if (album != null) {
|
||||
view.showData(album);
|
||||
} else {
|
||||
view.showEmptyView();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import android.os.Bundle
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.ArtistDetailContract
|
||||
import code.name.monkey.retromusic.ui.activities.ArtistDetailActivity
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
class ArtistDetailsPresenter(private val view: ArtistDetailContract.ArtistsDetailsView,
|
||||
private val bundle: Bundle) : Presenter(), ArtistDetailContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadArtistById()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadArtistById() {
|
||||
disposable.add(repository.getArtistById(bundle.getInt(ArtistDetailActivity.EXTRA_ARTIST_ID).toLong())
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showArtist(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
private fun showArtist(album: Artist?) {
|
||||
if (album != null) {
|
||||
view.showData(album)
|
||||
} else {
|
||||
view.showEmptyView()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,47 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.ArtistContract;
|
||||
|
||||
public class ArtistPresenter extends Presenter implements ArtistContract.Presenter {
|
||||
@NonNull
|
||||
private ArtistContract.ArtistView mView;
|
||||
|
||||
public ArtistPresenter(@NonNull ArtistContract.ArtistView view) {
|
||||
mView = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadArtists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Artist> songs) {
|
||||
if (songs.isEmpty()) {
|
||||
mView.showEmptyView();
|
||||
} else {
|
||||
mView.showData(songs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadArtists() {
|
||||
disposable.add(repository.getAllArtists()
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> mView.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> mView.showEmptyView(),
|
||||
() -> mView.completed()));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Artist
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.ArtistContract
|
||||
import java.util.*
|
||||
|
||||
class ArtistPresenter(private val mView: ArtistContract.ArtistView) : Presenter(), ArtistContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadArtists()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
private fun showList(songs: ArrayList<Artist>) {
|
||||
if (songs.isEmpty()) {
|
||||
mView.showEmptyView()
|
||||
} else {
|
||||
mView.showData(songs)
|
||||
}
|
||||
}
|
||||
|
||||
override fun loadArtists() {
|
||||
disposable.add(repository.allArtists
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { mView.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ mView.showEmptyView() },
|
||||
{ mView.completed() }))
|
||||
}
|
||||
}
|
|
@ -1,56 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.GenreDetailsContract;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public class GenreDetailsPresenter extends Presenter
|
||||
implements GenreDetailsContract.Presenter {
|
||||
private final int genreId;
|
||||
@NonNull
|
||||
private GenreDetailsContract.GenreDetailsView view;
|
||||
|
||||
public GenreDetailsPresenter(@NonNull GenreDetailsContract.GenreDetailsView view,
|
||||
int genreId) {
|
||||
this.view = view;
|
||||
this.genreId = genreId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadGenre(genreId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadGenre(int genreId) {
|
||||
disposable.add(repository.getGenre(genreId)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showGenre,
|
||||
throwable -> view.showEmptyView(),
|
||||
() -> view.completed()));
|
||||
}
|
||||
|
||||
private void showGenre(ArrayList<Song> songs) {
|
||||
if (songs != null) {
|
||||
view.showData(songs);
|
||||
} else {
|
||||
view.showEmptyView();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.GenreDetailsContract
|
||||
import java.util.*
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
class GenreDetailsPresenter(private val view: GenreDetailsContract.GenreDetailsView,
|
||||
private val genreId: Int) : Presenter(), GenreDetailsContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadGenre(genreId)
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadGenre(genreId: Int) {
|
||||
disposable.add(repository.getGenre(genreId)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showGenre(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
private fun showGenre(songs: ArrayList<Song>?) {
|
||||
if (songs != null) {
|
||||
view.showData(songs)
|
||||
} else {
|
||||
view.showEmptyView()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Genre;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.GenreContract;
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
public class GenrePresenter extends Presenter
|
||||
implements GenreContract.Presenter {
|
||||
@NonNull
|
||||
private GenreContract.GenreView view;
|
||||
|
||||
public GenrePresenter(
|
||||
@NonNull GenreContract.GenreView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadGenre();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadGenre() {
|
||||
disposable.add(repository.getAllGenres()
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> view.showEmptyView(),
|
||||
() -> view.completed()));
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Genre> genres) {
|
||||
if (genres.isEmpty()) {
|
||||
view.showEmptyView();
|
||||
} else {
|
||||
view.showData(genres);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Genre
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.GenreContract
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* @author Hemanth S (h4h13).
|
||||
*/
|
||||
|
||||
class GenrePresenter(
|
||||
private val view: GenreContract.GenreView) : Presenter(), GenreContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadGenre()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadGenre() {
|
||||
disposable.add(repository.allGenres
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
private fun showList(genres: ArrayList<Genre>) {
|
||||
if (genres.isEmpty()) {
|
||||
view.showEmptyView()
|
||||
} else {
|
||||
view.showData(genres)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,126 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.HomeContract;
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil;
|
||||
|
||||
public class HomePresenter extends Presenter implements HomeContract.HomePresenter {
|
||||
|
||||
@NonNull
|
||||
private HomeContract.HomeView view;
|
||||
|
||||
public HomePresenter(@NonNull HomeContract.HomeView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
|
||||
loadRecentAlbums();
|
||||
loadRecentArtists();
|
||||
loadTopAlbums();
|
||||
loadTopArtists();
|
||||
loadSuggestions();
|
||||
|
||||
if (PreferenceUtil.getInstance().isGenreShown()) loadGenres();
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
public void loadPlaylists() {
|
||||
disposable.add(repository.getAllPlaylists()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.subscribe(playlist -> {
|
||||
if (!playlist.isEmpty()) {
|
||||
view.playlists(playlist);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadRecentAlbums() {
|
||||
disposable.add(repository.getRecentAlbums()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(artists -> {
|
||||
if (!artists.isEmpty()) {
|
||||
view.recentAlbum(artists);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadTopAlbums() {
|
||||
disposable.add(repository.getTopAlbums()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(artists -> {
|
||||
if (!artists.isEmpty()) {
|
||||
view.topAlbums(artists);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadRecentArtists() {
|
||||
disposable.add(repository.getRecentArtists()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(artists -> {
|
||||
if (!artists.isEmpty()) {
|
||||
view.recentArtist(artists);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadTopArtists() {
|
||||
disposable.add(repository.getTopArtists()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(artists -> {
|
||||
if (!artists.isEmpty()) {
|
||||
view.topArtists(artists);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadSuggestions() {
|
||||
disposable.add(repository.getSuggestionSongs()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(songs -> view.suggestions(songs), throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadGenres() {
|
||||
disposable.add(repository.getAllGenres()
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(genres -> {
|
||||
if (!genres.isEmpty()) {
|
||||
view.geners(genres);
|
||||
}
|
||||
},
|
||||
throwable -> view.showEmptyView(), () -> view.completed()));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,105 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.HomeContract
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
|
||||
class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), HomeContract.HomePresenter {
|
||||
|
||||
override fun subscribe() {
|
||||
|
||||
loadRecentAlbums()
|
||||
loadRecentArtists()
|
||||
loadTopAlbums()
|
||||
loadTopArtists()
|
||||
loadSuggestions()
|
||||
|
||||
if (PreferenceUtil.getInstance().isGenreShown) loadGenres()
|
||||
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
fun loadPlaylists() {
|
||||
disposable.add(repository.allPlaylists
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.subscribe({ playlist ->
|
||||
if (!playlist.isEmpty()) {
|
||||
view.playlists(playlist)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
|
||||
override fun loadRecentAlbums() {
|
||||
disposable.add(repository.recentAlbums
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ artists ->
|
||||
if (!artists.isEmpty()) {
|
||||
view.recentAlbum(artists)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
|
||||
override fun loadTopAlbums() {
|
||||
disposable.add(repository.topAlbums
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ artists ->
|
||||
if (!artists.isEmpty()) {
|
||||
view.topAlbums(artists)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
|
||||
override fun loadRecentArtists() {
|
||||
disposable.add(repository.recentArtists
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ artists ->
|
||||
if (!artists.isEmpty()) {
|
||||
view.recentArtist(artists)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
|
||||
override fun loadTopArtists() {
|
||||
disposable.add(repository.topArtists
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ artists ->
|
||||
if (!artists.isEmpty()) {
|
||||
view.topArtists(artists)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() }))
|
||||
|
||||
}
|
||||
|
||||
override fun loadSuggestions() {
|
||||
disposable.add(repository.suggestionSongs
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ songs -> view.suggestions(songs) }, { view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
|
||||
override fun loadGenres() {
|
||||
disposable.add(repository.allGenres
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ genres ->
|
||||
if (!genres.isEmpty()) {
|
||||
view.geners(genres)
|
||||
}
|
||||
},
|
||||
{ view.showEmptyView() }, { view.completed() }))
|
||||
}
|
||||
}
|
|
@ -1,54 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.PlaylistContract;
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 19/08/17.
|
||||
*/
|
||||
|
||||
public class PlaylistPresenter extends Presenter
|
||||
implements PlaylistContract.Presenter {
|
||||
@NonNull
|
||||
private PlaylistContract.PlaylistView mView;
|
||||
|
||||
public PlaylistPresenter(@NonNull PlaylistContract.PlaylistView view) {
|
||||
|
||||
mView = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadPlaylists();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadPlaylists() {
|
||||
disposable.add(repository.getAllPlaylists()
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> mView.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> mView.showEmptyView(),
|
||||
() -> mView.completed()));
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Playlist> songs) {
|
||||
if (songs.isEmpty()) {
|
||||
mView.showEmptyView();
|
||||
} else {
|
||||
mView.showData(songs);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.PlaylistContract
|
||||
import java.util.*
|
||||
|
||||
|
||||
/**
|
||||
* Created by hemanths on 19/08/17.
|
||||
*/
|
||||
|
||||
class PlaylistPresenter(private val view: PlaylistContract.PlaylistView) : Presenter(), PlaylistContract.Presenter {
|
||||
|
||||
override fun subscribe() {
|
||||
loadPlaylists()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadPlaylists() {
|
||||
disposable.add(repository.allPlaylists
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
private fun showList(songs: ArrayList<Playlist>) {
|
||||
if (songs.isEmpty()) {
|
||||
view.showEmptyView()
|
||||
} else {
|
||||
view.showData(songs)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,48 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.PlaylistSongsContract;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public class PlaylistSongsPresenter extends Presenter
|
||||
implements PlaylistSongsContract.Presenter {
|
||||
@NonNull
|
||||
private PlaylistSongsContract.PlaylistSongsView mView;
|
||||
@NonNull
|
||||
private Playlist mPlaylist;
|
||||
|
||||
public PlaylistSongsPresenter(@NonNull PlaylistSongsContract.PlaylistSongsView view,
|
||||
@NonNull Playlist playlist) {
|
||||
|
||||
mView = view;
|
||||
mPlaylist = playlist;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadSongs(mPlaylist);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadSongs(Playlist playlist) {
|
||||
disposable.add(repository.getPlaylistSongs(playlist)
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> mView.loading())
|
||||
.subscribe(songs -> mView.showData(songs),
|
||||
throwable -> mView.showEmptyView(),
|
||||
() -> mView.completed()));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Playlist
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.PlaylistSongsContract
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
class PlaylistSongsPresenter(private val view: PlaylistSongsContract.PlaylistSongsView,
|
||||
private val mPlaylist: Playlist) : Presenter(), PlaylistSongsContract.Presenter {
|
||||
|
||||
|
||||
override fun subscribe() {
|
||||
loadSongs(mPlaylist)
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
override fun loadSongs(playlist: Playlist) {
|
||||
disposable.add(repository.getPlaylistSongs(playlist)
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ songs -> view.showData(songs) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
}
|
|
@ -1,52 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.SearchContract;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
public class SearchPresenter extends Presenter implements SearchContract.SearchPresenter {
|
||||
@NonNull
|
||||
private SearchContract.SearchView mView;
|
||||
|
||||
public SearchPresenter(@NonNull SearchContract.SearchView view) {
|
||||
mView = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
search("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Object> albums) {
|
||||
if (albums.isEmpty()) {
|
||||
mView.showEmptyView();
|
||||
} else {
|
||||
mView.showData(albums);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void search(String query) {
|
||||
disposable.add(repository.search(query)
|
||||
.debounce(500, TimeUnit.MILLISECONDS)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> mView.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> mView.showEmptyView(),
|
||||
() -> mView.completed()));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.SearchContract
|
||||
import java.util.*
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
||||
/**
|
||||
* Created by hemanths on 20/08/17.
|
||||
*/
|
||||
|
||||
class SearchPresenter(private val view: SearchContract.SearchView) : Presenter(), SearchContract.SearchPresenter {
|
||||
|
||||
override fun subscribe() {
|
||||
search("")
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
|
||||
private fun showList(albums: ArrayList<Any>) {
|
||||
if (albums.isEmpty()) {
|
||||
view.showEmptyView()
|
||||
} else {
|
||||
view.showData(albums)
|
||||
}
|
||||
}
|
||||
|
||||
override fun search(query: String) {
|
||||
disposable.add(repository.search(query)
|
||||
.debounce(500, TimeUnit.MILLISECONDS)
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
}
|
|
@ -1,53 +0,0 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import code.name.monkey.retromusic.model.Song;
|
||||
import code.name.monkey.retromusic.mvp.Presenter;
|
||||
import code.name.monkey.retromusic.mvp.contract.SongContract;
|
||||
|
||||
/**
|
||||
* Created by hemanths on 10/08/17.
|
||||
*/
|
||||
|
||||
public class SongPresenter extends Presenter implements SongContract.Presenter {
|
||||
|
||||
@NonNull
|
||||
private SongContract.SongView view;
|
||||
|
||||
|
||||
public SongPresenter(@NonNull SongContract.SongView view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadSongs() {
|
||||
disposable.add(repository.getAllSongs()
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe(disposable1 -> view.loading())
|
||||
.subscribe(this::showList,
|
||||
throwable -> view.showEmptyView(),
|
||||
() -> view.completed()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subscribe() {
|
||||
loadSongs();
|
||||
}
|
||||
|
||||
private void showList(@NonNull ArrayList<Song> songs) {
|
||||
if (songs.isEmpty()) {
|
||||
view.showEmptyView();
|
||||
} else {
|
||||
view.showData(songs);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unsubscribe() {
|
||||
disposable.clear();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package code.name.monkey.retromusic.mvp.presenter
|
||||
|
||||
import code.name.monkey.retromusic.model.Song
|
||||
import code.name.monkey.retromusic.mvp.Presenter
|
||||
import code.name.monkey.retromusic.mvp.contract.SongContract
|
||||
import java.util.*
|
||||
|
||||
/**
|
||||
* Created by hemanths on 10/08/17.
|
||||
*/
|
||||
|
||||
class SongPresenter(private val view: SongContract.SongView) : Presenter(), SongContract.Presenter {
|
||||
|
||||
override fun loadSongs() {
|
||||
disposable.add(repository.allSongs
|
||||
.subscribeOn(schedulerProvider.computation())
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ this.showList(it) },
|
||||
{ view.showEmptyView() },
|
||||
{ view.completed() }))
|
||||
}
|
||||
|
||||
override fun subscribe() {
|
||||
loadSongs()
|
||||
}
|
||||
|
||||
private fun showList(songs: ArrayList<Song>) {
|
||||
if (songs.isEmpty()) {
|
||||
view.showEmptyView()
|
||||
} else {
|
||||
view.showData(songs)
|
||||
}
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
disposable.clear()
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue