Don't update drawer unless its open

pull/3306/head
Alex Baker 10 months ago
parent 69a5376dde
commit defb9f76ce

@ -16,8 +16,11 @@ import kotlinx.collections.immutable.toPersistentList
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.filterNotNull
import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.flow.update import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
@ -122,7 +125,13 @@ class MainActivityViewModel @Inject constructor(
init { init {
localBroadcastManager.registerRefreshListReceiver(refreshReceiver) localBroadcastManager.registerRefreshListReceiver(refreshReceiver)
_updateFilters _updateFilters
.onStart { updateFilters() }
.combine(_drawerOpen) { timestamp, drawerOpen ->
if (drawerOpen) timestamp else null
}
.filterNotNull()
.throttleLatest(1000) .throttleLatest(1000)
.onEach { updateFilters() } .onEach { updateFilters() }
.launchIn(viewModelScope) .launchIn(viewModelScope)

Loading…
Cancel
Save