Slide 100
Slide 100 text
#DCNYC19 @rharter
Login Feature
SessionListViewModel
override val viewState = combine(sessionFlow, speakerFlow, favoriteFlow) {
sessions, speakers, favorites ->
SessionListViewState(date, viewSessions)
}
class SessionListViewModel(
private val sessionRepo: SessionRepository,
speakerRepo SpeakerRepository,
favoriteRepo: FavoriteRepository
) : ViewModel {
private val dateChannel = ConflatedBroadcastChannel()
private val sessionFlow: Flow> = dateChannel.asFlow()
.flatMapConcat { sessionRepo.sessionsForDate(it) }
private val speakerFlow: Flow> = speakerRepo.getSpeakers()
private val favoriteFlow: Flow> = favoriteRepo.getFavorites()
override val viewState = combine(sessionFlow, speakerFlow, favoriteFlow) {
sessions, speakers, favorites ->
SessionListViewState(date, viewSessions)
}
}