Alejo
06/27/2021, 2:23 PMval userInteracting = MutableSharedFlow<Unit>(replay = 0)
onEvent(){
coroutineScope.launch {
userInteracting.emit(Unit)
}
}
coroutineScope.launch {
userInteracting.collectLatest {
showSky.value = false
delay(5000)
showSky.value = true
}
}
mbonnin
06/27/2021, 2:29 PMMutableSharedFlow(
replay = 0,
extraBufferCapacity = 1,
onBufferOverflow = BufferOverflow.DROP_OLDEST
)
Alejo
06/27/2021, 2:32 PMAlejo
06/27/2021, 2:45 PMmbonnin
06/27/2021, 2:46 PMmbonnin
06/27/2021, 2:47 PMmbonnin
06/27/2021, 2:48 PMAlejo
06/27/2021, 2:58 PMmbonnin
06/27/2021, 3:07 PMAlejo
06/27/2021, 3:15 PMmbonnin
06/27/2021, 3:16 PMcollectLatest
to cancel the previous actions...mbonnin
06/27/2021, 3:17 PMAlejo
06/27/2021, 3:21 PMCLOVIS
06/27/2021, 3:59 PMdelay
will die)Alejo
06/27/2021, 4:39 PMFirst attemp
2021-06-27 13:27:25.901 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811245901 received
2021-06-27 13:27:26.477 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811246477 received
2021-06-27 13:27:27.011 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811247010 received
2021-06-27 13:27:27.539 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811247538 received
2021-06-27 13:27:28.072 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811248071 received
2021-06-27 13:27:28.596 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811248595 received
2021-06-27 13:27:29.090 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811249089 received
2021-06-27 13:27:29.603 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811249603 received
2021-06-27 13:27:30.133 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811250133 received
2021-06-27 13:27:30.645 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811250644 received
2021-06-27 13:27:31.149 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811251148 received
2021-06-27 13:27:31.674 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811251673 received
2021-06-27 13:27:32.197 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811252196 received
2021-06-27 13:27:32.736 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811252736 received
2021-06-27 13:27:33.272 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811253271 received
2021-06-27 13:27:33.803 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811253803 received
2021-06-27 13:27:34.350 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811254349 received
2021-06-27 13:27:34.946 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811254946 received
2021-06-27 13:27:39.947 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811254946 processed
Second attemp
2021-06-27 13:29:06.886 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811346886 received
2021-06-27 13:29:07.368 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811347367 received
2021-06-27 13:29:07.785 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811347784 received
2021-06-27 13:29:08.181 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811348181 received
2021-06-27 13:29:08.647 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811348646 received
2021-06-27 13:29:09.095 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811349095 received
2021-06-27 13:29:09.537 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811349536 received
2021-06-27 13:29:09.913 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811349912 received
2021-06-27 13:29:10.308 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811350307 received
2021-06-27 13:29:10.691 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811350690 received
2021-06-27 13:29:11.887 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811346886 processed
2021-06-27 13:29:15.692 1308-1308/com.example.androiddevchallenge.mock D/pointerInteropFilter: 1624811350690 processed
Alejo
06/27/2021, 4:40 PMvar job:Job? = null
coroutineScope.launch {
userInteracting.collectLatest {
job?.cancel()
job = launch {
Log.d("pointerInteropFilter","$it received")
showSky.value = false
delay(5000)
showSky.value = true
Log.d("pointerInteropFilter","$it processed")
}
}
}
CLOVIS
06/27/2021, 4:43 PMCLOVIS
06/27/2021, 4:43 PMmbonnin
06/27/2021, 4:51 PMasSharedFlow
:
userInteracting.asSharedFlow().collectLatest {
}
Not 100% sure what the behaviour of collecting the MutableSharedFlow
twice is (mbonnin
06/27/2021, 4:54 PMCLOVIS
06/27/2021, 5:38 PMmbonnin
06/27/2021, 5:41 PMasSharedFlow
to expose a read-only version but looks like collecting the MutableSharedFlow
is the sameAlejo
06/27/2021, 5:52 PMAlejo
07/03/2021, 4:22 PM