Koya Sivaji
06/15/2020, 7:47 PMI am new to kotlin flows and trying to add Flows to one of my project and facing an issue while converting list of objects of one type to another as shown below. Basically, am not sure which operator to be used for this.
//Repository - method return type is Flow<List<HistoryEvent>>
fun getHistoryEvents(): Flow<List<HistoryEvent>>
//ViewModel - calling repository method and trying to convert data to List<AccessoryEvent>
val accessoryEvents : LiveData<List<AccessoryEvent>>= liveData{
repository.getHistoryEvents()
// what operator to be used to convert from List<HistoryEvent> to List<AccessoryEvent>
.collect()
}
octylFractal
06/15/2020, 7:48 PM.map {}
?Koya Sivaji
06/15/2020, 7:53 PMval eventHistory: LiveData<List<AccessoryEventType>> =
liveData {
deviceRepository.getDeviceEventHistoryFor("abcd")
.map { historyEvents ->
emit((historyEvents.map { AccessoryEventType.getEventType(it) }))
}
.collect()
}
after this, all elements in the returned list are same and equals to the last emitted element. Am not sure what I am doing wrong
historyEvent
to AccessoryEvent
octylFractal
06/15/2020, 7:54 PMmap
operation -- why not do:
.map { hE -> hE.map { ... } }.collect { emit(it) }
?getEventType
or what events are actually in getHistoryEvents()
Koya Sivaji
06/15/2020, 8:00 PM