From defb9f76ce59a4882f64f603a126ca74e5c2fe15 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Sun, 26 Jan 2025 23:49:05 -0600 Subject: [PATCH] Don't update drawer unless its open --- .../com/todoroo/astrid/activity/MainActivityViewModel.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/com/todoroo/astrid/activity/MainActivityViewModel.kt b/app/src/main/java/com/todoroo/astrid/activity/MainActivityViewModel.kt index 5882f438d..1a8fd7ec4 100644 --- a/app/src/main/java/com/todoroo/astrid/activity/MainActivityViewModel.kt +++ b/app/src/main/java/com/todoroo/astrid/activity/MainActivityViewModel.kt @@ -16,8 +16,11 @@ import kotlinx.collections.immutable.toPersistentList import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow +import kotlinx.coroutines.flow.combine +import kotlinx.coroutines.flow.filterNotNull import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking @@ -122,7 +125,13 @@ class MainActivityViewModel @Inject constructor( init { localBroadcastManager.registerRefreshListReceiver(refreshReceiver) + _updateFilters + .onStart { updateFilters() } + .combine(_drawerOpen) { timestamp, drawerOpen -> + if (drawerOpen) timestamp else null + } + .filterNotNull() .throttleLatest(1000) .onEach { updateFilters() } .launchIn(viewModelScope)