Mjahangiry75
02/02/2021, 7:40 AMStateFlow
doesn't emit new changes of a MutableList
?
this is my code:
_selectedLanguages.value = _selectedLanguages.value.apply {
if (changedLanguage.isSelected)
add(changedLanguage)
else
remove(changedLanguage)
}
Albert Chang
02/02/2021, 8:25 AMStateFlow
won't emit the same value. As you are setting the same list it won't be emitted. Use immutable list instead.Albert Chang
02/02/2021, 8:28 AMMutableList
, use MutableSharedFlow(replay = 1,onBufferOverflow = BufferOverflow.DROP_OLDEST)
.Mjahangiry75
02/02/2021, 8:31 AMMjahangiry75
02/02/2021, 8:33 AMgildor
02/02/2021, 8:33 AMgildor
02/02/2021, 8:33 AMAlbert Chang
02/02/2021, 8:36 AMhashCode()
. It depends on the result of equals()
. See https://github.com/Kotlin/kotlinx.coroutines/blob/72238976ac6c06f7b1f6a72d51a41b0573bbc225/kotlinx-coroutines-core/common/src/flow/StateFlow.kt#L279.Mjahangiry75
02/02/2021, 8:37 AMhashCode
too:
val a = arrayListOf(1,,2, 3)
val b = a
b.add(4)
println(a==b) // prints true
gildor
02/02/2021, 8:37 AMgildor
02/02/2021, 8:37 AMgildor
02/02/2021, 8:38 AMMjahangiry75
02/02/2021, 8:39 AMgildor
02/02/2021, 8:40 AMgildor
02/02/2021, 8:40 AMgildor
02/02/2021, 8:41 AMMjahangiry75
02/02/2021, 8:43 AMMjahangiry75
02/02/2021, 8:53 AMgildor
02/02/2021, 8:54 AMgildor
02/02/2021, 8:54 AMgildor
02/02/2021, 8:55 AM_selectedLanguages.value = if (changedLanguage.isSelected)
_selectedLanguages.value + changedLanguage
else
_selectedLanguages.value - changedLanguage
}
Mjahangiry75
02/02/2021, 9:03 AMZach Klippenstein (he/him) [MOD]
02/02/2021, 2:04 PMMjahangiry75
02/02/2021, 2:07 PMZach Klippenstein (he/him) [MOD]
02/02/2021, 2:17 PMMjahangiry75
02/02/2021, 2:20 PM