```I am new to kotlin flows and trying to add Flow...
# coroutines
k
Copy code
I 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()
                                                      }
o
.map {}
?
k
I tried like below
Copy code
val 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
Basically I want to map each
historyEvent
to
AccessoryEvent
o
I don't really know how liveData works, but it seems wrong to have side-effects in a
map
operation -- why not do:
.map { hE -> hE.map { ... } }.collect { emit(it) }
?
I don't think it will fundamentally change anything though
but to me, this looks correct for mapping each event, anything wrong might be because of
getEventType
or what events are actually in
getHistoryEvents()
k
ok
still , no luck. am not sure what I am doing wrong