PlayerAndroid/app/src/main/java/code/name/monkey/retromusic/fragments/artists/ArtistDetailsViewModel.kt

44 lines
1.4 KiB
Kotlin
Raw Normal View History

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
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
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
import kotlinx.coroutines.Dispatchers.IO
2020-06-05 20:01:37 +00:00
class ArtistDetailsViewModel(
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
fun getArtist(): LiveData<Artist> = liveData(IO) {
val artist = realRepository.artistById(artistId)
emit(artist)
2020-06-05 20:01:37 +00:00
}
fun getArtistInfo(
name: String,
lang: String?,
cache: String?
): LiveData<Result<LastFmArtist>> = liveData(IO) {
emit(Result.Loading)
val info = realRepository.artistInfo(name, lang, cache)
emit(info)
2020-06-05 20:01:37 +00:00
}
2020-06-07 18:21:49 +00:00
override fun onMediaStoreChanged() {
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
}