From 8120fb255f16dae348f6be8bc0ace81d3de25d4b Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 31 Mar 2026 17:17:10 -0300 Subject: [PATCH] Don't recreate database flows on each recomposition this speeds up initial loading of data for main screen --- .../main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt index 99cf073ab..22b7e58e3 100644 --- a/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt +++ b/app/src/main/kotlin/org/fdroid/ui/discover/DiscoverViewModel.kt @@ -53,6 +53,8 @@ constructor( CoroutineScope(viewModelScope.coroutineContext + AndroidUiDispatcher.Main) private val collator = Collator.getInstance(Locale.getDefault()) + private val newAppsFlow = db.getAppDao().getNewAppsFlow() + private val recentlyUpdatedAppsFlow = db.getAppDao().getRecentlyUpdatedAppsFlow() private val mostDownloadedApps = flow { val packageNames = @@ -87,8 +89,8 @@ constructor( @SuppressLint("StateFlowValueCalledInComposition") // see comment below moleculeScope.launchMolecule(mode = ContextClock) { DiscoverPresenter( - newAppsFlow = db.getAppDao().getNewAppsFlow(), - recentlyUpdatedAppsFlow = db.getAppDao().getRecentlyUpdatedAppsFlow(), + newAppsFlow = newAppsFlow, + recentlyUpdatedAppsFlow = recentlyUpdatedAppsFlow, mostDownloadedAppsFlow = mostDownloadedApps, categoriesFlow = categories, installedAppsFlow = installedAppsCache.installedApps,