Rx Java and Normal compatible for all query

This commit is contained in:
h4h13 2019-08-02 14:29:40 +05:30
parent 850036e5cc
commit c2759e3ec0
89 changed files with 2900 additions and 1040 deletions

View file

@ -24,7 +24,7 @@ import java.util.*
*/
interface SearchContract {
interface SearchView : BaseView<ArrayList<Any>>
interface SearchView : BaseView<MutableList<Any>>
interface SearchPresenter : BasePresenter<SearchView> {
fun search(query: String?)

View file

@ -34,9 +34,7 @@ class AlbumDetailsPresenter(private val view: AlbumDetailsContract.AlbumDetailsV
}
override fun loadAlbumSongs(albumId: Int) {
disposable.add(repository.getAlbum(albumId)
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.getAlbumFlowable(albumId)
.doOnSubscribe { view.loading() }
.subscribe({ this.showAlbum(it) },
{ view.showEmptyView() },

View file

@ -39,9 +39,7 @@ class AlbumPresenter(private val view: AlbumContract.AlbumView) : Presenter(), A
}
override fun loadAlbums() {
disposable.add(repository.allAlbums
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.allAlbumsFlowable
.doOnSubscribe { view.loading() }
.subscribe({ this.showList(it) },
{ view.showEmptyView() },

View file

@ -37,9 +37,7 @@ class ArtistDetailsPresenter(private val view: ArtistDetailContract.ArtistsDetai
}
override fun loadArtistById() {
disposable.add(repository.getArtistById(bundle.getInt(ArtistDetailActivity.EXTRA_ARTIST_ID).toLong())
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.getArtistByIdFlowable(bundle.getInt(ArtistDetailActivity.EXTRA_ARTIST_ID))
.doOnSubscribe { view.loading() }
.subscribe({ this.showArtist(it) },
{ view.showEmptyView() },

View file

@ -38,9 +38,7 @@ class ArtistPresenter(private val mView: ArtistContract.ArtistView) : Presenter(
}
override fun loadArtists() {
disposable.add(repository.allArtists
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.allArtistsFlowable
.doOnSubscribe { mView.loading() }
.subscribe({ this.showList(it) },
{ mView.showEmptyView() },

View file

@ -36,9 +36,7 @@ class GenreDetailsPresenter(private val view: GenreDetailsContract.GenreDetailsV
}
override fun loadGenre(genreId: Int) {
disposable.add(repository.getGenre(genreId)
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.getGenreFlowable(genreId)
.doOnSubscribe { view.loading() }
.subscribe({ this.showGenre(it) },
{ view.showEmptyView() },

View file

@ -35,9 +35,7 @@ class GenrePresenter(
}
override fun loadGenre() {
disposable.add(repository.allGenres
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.allGenresFlowable
.doOnSubscribe { view.loading() }
.subscribe({ this.showList(it) },
{ view.showEmptyView() },

View file

@ -53,7 +53,7 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
private fun loadRecentArtists() {
disposable += repository.recentArtists
disposable += repository.recentArtistsFlowable
.subscribe({
if (it.isNotEmpty()) hashSet.add(Home(0, R.string.recent_artists, 0, it, RECENT_ARTISTS, R.drawable.ic_artist_white_24dp))
view.showData(ArrayList(hashSet))
@ -63,7 +63,7 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
private fun loadRecentAlbums() {
disposable += repository.recentAlbums
disposable += repository.recentAlbumsFlowable
.subscribe({
if (it.isNotEmpty()) hashSet.add(Home(1, R.string.recent_albums, 0, it, RECENT_ALBUMS, R.drawable.ic_album_white_24dp))
view.showData(ArrayList(hashSet))
@ -73,7 +73,7 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
private fun loadATopAlbums() {
disposable += repository.topAlbums
disposable += repository.topAlbumsFlowable
.subscribe({
if (it.isNotEmpty()) hashSet.add(Home(3, R.string.top_albums, 0, it, TOP_ALBUMS, R.drawable.ic_album_white_24dp))
view.showData(ArrayList(hashSet))
@ -83,7 +83,7 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
private fun loadTopArtists() {
disposable += repository.topArtists
disposable += repository.topArtistsFlowable
.subscribe({
if (it.isNotEmpty()) hashSet.add(Home(2, R.string.top_artists, 0, it, TOP_ARTISTS, R.drawable.ic_artist_white_24dp))
view.showData(ArrayList(hashSet))
@ -93,7 +93,7 @@ class HomePresenter(private val view: HomeContract.HomeView) : Presenter(), Home
}
private fun loadFavorite() {
disposable += repository.favoritePlaylist
disposable += repository.favoritePlaylistFlowable
.subscribe({
if (it.isNotEmpty()) hashSet.add(Home(4, R.string.favorites, 0, it, PLAYLISTS, R.drawable.ic_favorite_white_24dp))
view.showData(ArrayList(hashSet))

View file

@ -35,9 +35,7 @@ class PlaylistPresenter(private val view: PlaylistContract.PlaylistView) : Prese
}
override fun loadPlaylists() {
disposable.add(repository.allPlaylists
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.allPlaylistsFlowable
.doOnSubscribe { view.loading() }
.subscribe({ this.showList(it) },
{ view.showEmptyView() },

View file

@ -35,9 +35,7 @@ class PlaylistSongsPresenter(private val view: PlaylistSongsContract.PlaylistSon
}
override fun loadSongs(playlist: Playlist) {
disposable.add(repository.getPlaylistSongs(playlist)
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
disposable.add(repository.getPlaylistSongsFlowable(playlist)
.doOnSubscribe { view.loading() }
.subscribe({ songs -> view.showData(songs) },
{ view.showEmptyView() },

View file

@ -42,13 +42,6 @@ class SearchPresenter(private val view: SearchContract.SearchView) : Presenter()
}
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() }))
view.showData(repository.search(query))
}
}

View file

@ -26,9 +26,7 @@ import java.util.*
class SongPresenter(private val view: SongContract.SongView) : Presenter(), SongContract.Presenter {
override fun loadSongs() {
disposable.add(repository.allSongs
.subscribeOn(schedulerProvider.computation())
.observeOn(schedulerProvider.ui())
disposable.add(repository.allSongsFlowable
.doOnSubscribe { view.loading() }
.subscribe({ this.showList(it) },
{ view.showEmptyView() },