Skip to content

Instantly share code, notes, and snippets.

@annchar
Created June 24, 2018 10:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save annchar/cc6a722691990a28e1aec8cbf3c0368f to your computer and use it in GitHub Desktop.
Save annchar/cc6a722691990a28e1aec8cbf3c0368f to your computer and use it in GitHub Desktop.
class TeamDetailViewModel(private val cheerBallDataRepository: CheerBallDataRepository,
private val teamId: Int) : ViewModel() {
private val flagURL = MutableLiveData<String>()
private val team = MutableLiveData<Team>()
private val players = MutableLiveData<List<Player>>()
private val compositeDisposable: CompositeDisposable = CompositeDisposable()
val teamName = MutableLiveData<String>()
val adapter = MutableLiveData<PlayerListAdapter>()
val layoutManager = MutableLiveData<RecyclerView.LayoutManager>()
init {
compositeDisposable.clear()
val teamDisposable = cheerBallDataRepository.getTeam(teamId)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribeWith(TeamObserver())
compositeDisposable.add(teamDisposable)
val playersDisposable = cheerBallDataRepository.getPlayer(teamId)
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribeWith(PlayersObserver())
compositeDisposable.add(playersDisposable)
}
fun getFlagURL(): LiveData<String> {
return flagURL
}
fun getTeam(): LiveData<Team> {
return team
}
fun getPlayers(): LiveData<List<Player>> {
return players
}
fun disposable() {
compositeDisposable.dispose()
}
private inner class TeamObserver : DefaultObserver<Team>() {
override fun onNext(t: Team) {
team.value = t
flagURL.value = t.crestUrl
}
}
private inner class PlayersObserver : DefaultObserver<Players>() {
override fun onNext(t: Players) {
players.value = t.players
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment