Refactor
This commit is contained in:
parent
63c417cd61
commit
a81536ab9a
96 changed files with 729 additions and 724 deletions
|
@ -1,43 +1,15 @@
|
|||
package code.name.monkey.retromusic.mvp.contract
|
||||
|
||||
import code.name.monkey.retromusic.model.*
|
||||
import code.name.monkey.retromusic.model.Home
|
||||
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>)*/
|
||||
|
||||
fun loadHomes(homes: ArrayList<Home>)
|
||||
}
|
||||
interface HomeView : BaseView<ArrayList<Home>>
|
||||
|
||||
interface HomePresenter : BasePresenter<HomeView> {
|
||||
|
||||
/*fun loadRecentAlbums()
|
||||
|
||||
fun loadTopAlbums()
|
||||
|
||||
fun loadRecentArtists()
|
||||
|
||||
fun loadTopArtists()
|
||||
|
||||
fun loadSuggestions()
|
||||
|
||||
fun loadGenres()*/
|
||||
fun loadAll();
|
||||
fun homeSections();
|
||||
}
|
||||
}
|
|
@ -11,6 +11,7 @@ import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.RECENT_ARTIS
|
|||
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.SUGGESTIONS
|
||||
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ALBUMS
|
||||
import code.name.monkey.retromusic.ui.adapter.HomeAdapter.Companion.TOP_ARTISTS
|
||||
import code.name.monkey.retromusic.util.PreferenceUtil
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
import io.reactivex.disposables.Disposable
|
||||
|
@ -21,128 +22,37 @@ operator fun CompositeDisposable.plusAssign(disposable: Disposable) {
|
|||
}
|
||||
|
||||
class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), HomeContract.HomePresenter {
|
||||
override fun loadAll() {
|
||||
override fun homeSections() {
|
||||
disposable += Observable.combineLatest(repository.suggestionSongs, repository.recentAlbums,
|
||||
repository.topAlbums, repository.recentArtists, repository.topArtists,
|
||||
repository.allGenres, repository.allPlaylists,
|
||||
repository.allGenres, repository.favoritePlaylist,
|
||||
Function7<ArrayList<Song>, ArrayList<Album>, ArrayList<Album>, ArrayList<Artist>,
|
||||
ArrayList<Artist>, ArrayList<Genre>, ArrayList<Playlist>, List<Home>>
|
||||
{ suggestions: ArrayList<Song>, recentAlbums: ArrayList<Album>,
|
||||
topAlbums: ArrayList<Album>, recentArtists: ArrayList<Artist>,
|
||||
topArtists: ArrayList<Artist>, genres: ArrayList<Genre>,
|
||||
playlists: ArrayList<Playlist> ->
|
||||
favoritePlaylist: ArrayList<Playlist> ->
|
||||
val homes: ArrayList<Home> = ArrayList()
|
||||
if (suggestions.isNotEmpty()) homes.add(Home(R.string.suggestion_songs, 0, suggestions, SUGGESTIONS))
|
||||
if (recentArtists.isNotEmpty()) homes.add(Home(R.string.recent_artists, 0, recentArtists, RECENT_ARTISTS))
|
||||
if (recentAlbums.isNotEmpty()) homes.add(Home(R.string.recent_albums, 0, recentAlbums, RECENT_ALBUMS))
|
||||
if (topArtists.isNotEmpty()) homes.add(Home(R.string.top_artists, 0, topArtists, TOP_ARTISTS))
|
||||
if (topAlbums.isNotEmpty()) homes.add(Home(R.string.top_albums, 0, topAlbums, TOP_ALBUMS))
|
||||
if (genres.isNotEmpty()) homes.add(Home(R.string.genres, 0, genres, GENRES))
|
||||
if (playlists.isNotEmpty()) homes.add(Home(R.string.playlists, 0, playlists, PLAYLISTS))
|
||||
if (favoritePlaylist.isNotEmpty()) homes.add(Home(R.string.favorites, 0, favoritePlaylist, PLAYLISTS))
|
||||
if (genres.isNotEmpty() && PreferenceUtil.getInstance().isGenreShown) homes.add(Home(R.string.genres, 0, genres, GENRES))
|
||||
homes
|
||||
}).subscribe { homes ->
|
||||
if (homes.isNotEmpty()) {
|
||||
view.loadHomes(homes as ArrayList<Home>)
|
||||
view.showData(homes as ArrayList<Home>)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun subscribe() {
|
||||
loadAll()
|
||||
/*loadRecentAlbums()
|
||||
loadRecentArtists()
|
||||
loadTopAlbums()
|
||||
loadTopArtists()
|
||||
loadSuggestions()*/
|
||||
|
||||
/*if (PreferenceUtil.getInstance().isGenreShown) loadGenres()*/
|
||||
|
||||
homeSections()
|
||||
}
|
||||
|
||||
override fun unsubscribe() {
|
||||
if (true) {
|
||||
disposable.dispose()
|
||||
}
|
||||
disposable.dispose()
|
||||
}
|
||||
|
||||
/*fun loadPlaylists() {
|
||||
disposable += repository.allPlaylists
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.subscribe({ playlist ->
|
||||
if (!playlist.isEmpty()) {
|
||||
view.playlists(playlist)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() })
|
||||
}
|
||||
|
||||
override fun loadRecentAlbums() {
|
||||
disposable += 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 += 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 += 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 += 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 += repository.suggestionSongs
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ songs -> view.suggestions(songs) },
|
||||
{ view.showEmptyView() }, { view.completed() })
|
||||
}
|
||||
|
||||
override fun loadGenres() {
|
||||
disposable += repository.allGenres
|
||||
.observeOn(schedulerProvider.ui())
|
||||
.subscribeOn(schedulerProvider.io())
|
||||
.doOnSubscribe { view.loading() }
|
||||
.subscribe({ genres ->
|
||||
if (!genres.isEmpty()) {
|
||||
view.geners(genres)
|
||||
}
|
||||
}, { view.showEmptyView() }, { view.completed() })
|
||||
}*/
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue