Rolled back to old style image loading and mosaic

This commit is contained in:
h4h13 2019-09-16 23:32:40 +05:30
parent d6a961a977
commit 397f42a54a
76 changed files with 1560 additions and 1452 deletions

View file

@ -19,7 +19,7 @@ import code.name.monkey.retromusic.model.Artist
import code.name.monkey.retromusic.mvp.Presenter
import code.name.monkey.retromusic.mvp.PresenterImpl
import code.name.monkey.retromusic.providers.interfaces.Repository
import io.reactivex.disposables.Disposable
import io.reactivex.disposables.CompositeDisposable
import javax.inject.Inject
@ -48,7 +48,7 @@ interface AlbumDetailsPresenter : Presenter<AlbumDetailsView> {
private lateinit var album: Album
override fun loadMore(artistId: Int) {
disposable = repository.getArtistByIdFlowable(artistId)
disposable += repository.getArtistByIdFlowable(artistId)
.map {
view.loadArtistImage(it)
return@map it.albums
@ -64,10 +64,10 @@ interface AlbumDetailsPresenter : Presenter<AlbumDetailsView> {
}
}
private var disposable: Disposable? = null
private var disposable: CompositeDisposable = CompositeDisposable()
override fun loadAlbum(albumId: Int) {
disposable = repository.getAlbumFlowable(albumId)
disposable += repository.getAlbumFlowable(albumId)
.doOnComplete {
view.complete()
}
@ -79,7 +79,7 @@ interface AlbumDetailsPresenter : Presenter<AlbumDetailsView> {
override fun detachView() {
super.detachView()
disposable?.dispose()
disposable.dispose()
}
}
}

View file

@ -20,7 +20,7 @@ import code.name.monkey.retromusic.mvp.Presenter
import code.name.monkey.retromusic.mvp.PresenterImpl
import code.name.monkey.retromusic.providers.interfaces.Repository
import code.name.monkey.retromusic.rest.model.LastFmArtist
import io.reactivex.disposables.Disposable
import io.reactivex.disposables.CompositeDisposable
import java.util.*
import javax.inject.Inject
@ -49,16 +49,16 @@ interface ArtistDetailsPresenter : Presenter<ArtistDetailsView> {
override fun loadBiography(name: String,
lang: String?,
cache: String?) {
disposable = repository.artistInfoFloable(name, lang, cache)
disposable += repository.artistInfoFloable(name, lang, cache)
.subscribe {
view.artistInfo(it)
}
}
private var disposable: Disposable? = null
private var disposable = CompositeDisposable()
override fun loadArtist(artistId: Int) {
disposable = repository.getArtistByIdFlowable(artistId)
disposable += repository.getArtistByIdFlowable(artistId)
.doOnComplete {
view.complete()
}
@ -67,6 +67,10 @@ interface ArtistDetailsPresenter : Presenter<ArtistDetailsView> {
}
}
override fun detachView() {
super.detachView()
disposable.dispose()
}
private fun showArtist(artist: Artist) {
view.artist(artist)

View file

@ -20,11 +20,15 @@ import code.name.monkey.retromusic.adapter.HomeAdapter.Companion.RECENT_ALBUMS
import code.name.monkey.retromusic.adapter.HomeAdapter.Companion.RECENT_ARTISTS
import code.name.monkey.retromusic.adapter.HomeAdapter.Companion.TOP_ALBUMS
import code.name.monkey.retromusic.adapter.HomeAdapter.Companion.TOP_ARTISTS
import code.name.monkey.retromusic.model.Album
import code.name.monkey.retromusic.model.Artist
import code.name.monkey.retromusic.model.Home
import code.name.monkey.retromusic.model.Playlist
import code.name.monkey.retromusic.mvp.BaseView
import code.name.monkey.retromusic.mvp.Presenter
import code.name.monkey.retromusic.mvp.PresenterImpl
import code.name.monkey.retromusic.providers.interfaces.Repository
import io.reactivex.Observable
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.disposables.Disposable
import javax.inject.Inject
@ -44,15 +48,16 @@ interface HomePresenter : Presenter<HomeView> {
private val repository: Repository
) : PresenterImpl<HomeView>(), HomePresenter {
override fun loadSections() {
loadRecentArtists()
/*loadRecentArtists()
loadRecentAlbums()
loadTopArtists()
loadATopAlbums()
loadFavorite()
loadFavorite()*/
loadHomeSection()
}
private var disposable: CompositeDisposable = CompositeDisposable()
private val hashSet: HashSet<Home> = HashSet()
private fun showData(sections: ArrayList<Home>) {
if (sections.isEmpty()) {
@ -62,7 +67,7 @@ interface HomePresenter : Presenter<HomeView> {
}
}
private fun loadRecentArtists() {
/*private fun loadRecentArtists() {
disposable += repository.recentArtistsFlowable
.subscribe {
if (it.isNotEmpty()) hashSet.add(
@ -135,8 +140,67 @@ interface HomePresenter : Presenter<HomeView> {
))
showData(ArrayList(hashSet))
}
}
}*/
private fun loadHomeSection() {
val ob = listOf(repository.recentArtistsFlowable,
repository.recentAlbumsFlowable,
repository.topArtistsFlowable,
repository.topAlbumsFlowable,
repository.favoritePlaylistFlowable)
disposable += Observable.combineLatest(ob) {
val hashSet: HashSet<Home> = HashSet()
val recentArtist = it[0] as ArrayList<Artist>
if (recentArtist.isNotEmpty()) hashSet.add(
Home(0,
R.string.recent_artists,
0,
recentArtist,
RECENT_ARTISTS,
R.drawable.ic_artist_white_24dp
))
val recentAlbums = it[1] as ArrayList<Album>
if (recentAlbums.isNotEmpty()) hashSet.add(
Home(1,
R.string.recent_albums,
0,
recentAlbums,
RECENT_ALBUMS,
R.drawable.ic_album_white_24dp
))
val topArtists = it[2] as ArrayList<Artist>
if (topArtists.isNotEmpty()) hashSet.add(
Home(2,
R.string.top_artists,
0,
topArtists,
TOP_ARTISTS,
R.drawable.ic_artist_white_24dp
))
val topAlbums = it[3] as ArrayList<Album>
if (topAlbums.isNotEmpty()) hashSet.add(
Home(3,
R.string.top_albums,
0,
topAlbums,
TOP_ALBUMS,
R.drawable.ic_album_white_24dp
))
val playlists = it[4] as ArrayList<Playlist>
if (playlists.isNotEmpty()) hashSet.add(
Home(4,
R.string.favorites,
0,
playlists,
PLAYLISTS,
R.drawable.ic_favorite_white_24dp
))
return@combineLatest hashSet
}.subscribe {
view.sections(ArrayList(it))
}
}
}
}