android / codelab-kotlin-coroutines

Kotlin Coroutines codelab
Apache License 2.0
552 stars 268 forks source link

Advanced coroutines - applySort is called twice #184

Open dmihailov opened 1 year ago

dmihailov commented 1 year ago

In the list with PLANTS, when filter button is pressed emitting of new live data and sorting is executed more than once. I added logging to be more clear:

In List.applySort: println("Name: ${plant.name}, position: $positionForItem")

And in val plants: LiveData<List> = liveData<List> { ... println("Plant list: ${System.identityHashCode(plantList)}")

And this is observed in Logcat:

image

Same is observed when the filter is press again, but log is much bigger as all plants are shown.

How can this be optimized?