Created
June 24, 2018 10:07
-
-
Save annchar/cc6a722691990a28e1aec8cbf3c0368f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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