refactor code

This commit is contained in:
h4h13 2018-12-13 02:32:14 +05:30
parent f4c56c8484
commit d6a99f99e4
29 changed files with 299 additions and 178 deletions

View file

@ -3,6 +3,12 @@ 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
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
operator fun CompositeDisposable.plusAssign(disposable: Disposable) {
add(disposable)
}
class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), HomeContract.HomePresenter {
@ -19,22 +25,24 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
override fun unsubscribe() {
disposable.clear()
if (!disposable.isDisposed) {
disposable.dispose()
}
}
fun loadPlaylists() {
disposable.add(repository.allPlaylists
disposable += repository.allPlaylists
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.subscribe({ playlist ->
if (!playlist.isEmpty()) {
view.playlists(playlist)
}
}, { view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
override fun loadRecentAlbums() {
disposable.add(repository.recentAlbums
disposable += repository.recentAlbums
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
@ -42,11 +50,11 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
if (!artists.isEmpty()) {
view.recentAlbum(artists)
}
}, { view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
override fun loadTopAlbums() {
disposable.add(repository.topAlbums
disposable += repository.topAlbums
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
@ -54,11 +62,11 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
if (!artists.isEmpty()) {
view.topAlbums(artists)
}
}, { view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
override fun loadRecentArtists() {
disposable.add(repository.recentArtists
disposable += repository.recentArtists
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
@ -66,11 +74,11 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
if (!artists.isEmpty()) {
view.recentArtist(artists)
}
}, { view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
override fun loadTopArtists() {
disposable.add(repository.topArtists
disposable += repository.topArtists
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
@ -78,20 +86,21 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
if (!artists.isEmpty()) {
view.topArtists(artists)
}
}, { view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
override fun loadSuggestions() {
disposable.add(repository.suggestionSongs
disposable += repository.suggestionSongs
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
.subscribe({ songs -> view.suggestions(songs) }, { view.showEmptyView() }, { view.completed() }))
.subscribe({ songs -> view.suggestions(songs) },
{ view.showEmptyView() }, { view.completed() })
}
override fun loadGenres() {
disposable.add(repository.allGenres
disposable += repository.allGenres
.observeOn(schedulerProvider.ui())
.subscribeOn(schedulerProvider.io())
.doOnSubscribe { view.loading() }
@ -99,7 +108,6 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
if (!genres.isEmpty()) {
view.geners(genres)
}
},
{ view.showEmptyView() }, { view.completed() }))
}, { view.showEmptyView() }, { view.completed() })
}
}