I have a AndroidViewModel for one of my fragments which contains a LiveData List, and I have another property for selected item of another LiveData List. Below is an example
You need to switchMap over the selectedTeam, and possibly renamed "allPlayers" because that's a lie. :P
val selectedTeam = MutableLiveData()
val allTeams: LiveData>
get() = repository.getAllTeams().toLiveData()
val playersOfSelectedTeam: LiveData>
get() = Transformations.switchMap(selectedTeam) { team ->
val allPlayers = repository.getAllPlayers().toLiveData()
val players = when {
team == null -> allPlayers
else -> {
Transformations.switchMap(allPlayers) { playerList ->
val filteredPlayers = MutableLiveData>()
val filteredList = playerList.filter { player -> player.team == team }
filteredPlayers.value = filteredList
filteredPlayers
}
}
}
players
}
Which I really hope it works as I wrote it here directly.