2020-08-11 18:29:44 +00:00
|
|
|
package code.name.monkey.retromusic.fragments.artists
|
2020-06-05 20:01:37 +00:00
|
|
|
|
|
|
|
import androidx.lifecycle.LiveData
|
2020-07-20 19:05:48 +00:00
|
|
|
import androidx.lifecycle.ViewModel
|
2020-09-06 07:18:47 +00:00
|
|
|
import androidx.lifecycle.liveData
|
2020-06-07 18:21:49 +00:00
|
|
|
import code.name.monkey.retromusic.interfaces.MusicServiceEventListener
|
2020-06-05 20:01:37 +00:00
|
|
|
import code.name.monkey.retromusic.model.Artist
|
2020-09-06 07:18:47 +00:00
|
|
|
import code.name.monkey.retromusic.network.Result
|
2020-07-20 19:51:15 +00:00
|
|
|
import code.name.monkey.retromusic.network.model.LastFmArtist
|
2020-08-21 14:19:15 +00:00
|
|
|
import code.name.monkey.retromusic.repository.RealRepository
|
2020-09-06 07:18:47 +00:00
|
|
|
import kotlinx.coroutines.Dispatchers.IO
|
2020-06-05 20:01:37 +00:00
|
|
|
|
|
|
|
class ArtistDetailsViewModel(
|
2020-08-13 17:08:37 +00:00
|
|
|
private val realRepository: RealRepository,
|
2020-06-05 20:01:37 +00:00
|
|
|
private val artistId: Int
|
2020-07-20 19:05:48 +00:00
|
|
|
) : ViewModel(), MusicServiceEventListener {
|
2020-06-05 20:01:37 +00:00
|
|
|
|
2020-09-06 07:18:47 +00:00
|
|
|
fun getArtist(): LiveData<Artist> = liveData(IO) {
|
|
|
|
val artist = realRepository.artistById(artistId)
|
|
|
|
emit(artist)
|
2020-06-05 20:01:37 +00:00
|
|
|
}
|
|
|
|
|
2020-09-06 07:18:47 +00:00
|
|
|
fun getArtistInfo(
|
|
|
|
name: String,
|
|
|
|
lang: String?,
|
|
|
|
cache: String?
|
|
|
|
): LiveData<Result<LastFmArtist>> = liveData(IO) {
|
|
|
|
emit(Result.Loading)
|
2020-08-13 17:08:37 +00:00
|
|
|
val info = realRepository.artistInfo(name, lang, cache)
|
2020-09-06 07:18:47 +00:00
|
|
|
emit(info)
|
2020-06-05 20:01:37 +00:00
|
|
|
}
|
2020-06-07 18:21:49 +00:00
|
|
|
|
|
|
|
override fun onMediaStoreChanged() {
|
2020-09-06 07:18:47 +00:00
|
|
|
getArtist()
|
2020-06-07 18:21:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
override fun onServiceConnected() {}
|
|
|
|
override fun onServiceDisconnected() {}
|
|
|
|
override fun onQueueChanged() {}
|
|
|
|
override fun onPlayingMetaChanged() {}
|
|
|
|
override fun onPlayStateChanged() {}
|
|
|
|
override fun onRepeatModeChanged() {}
|
|
|
|
override fun onShuffleModeChanged() {}
|
2020-06-05 20:01:37 +00:00
|
|
|
}
|