From d9d1c874abe3d619866c5b1b590cc214e5321878 Mon Sep 17 00:00:00 2001 From: rifsxd Date: Fri, 30 May 2025 02:09:13 +0600 Subject: [PATCH] manager: improved module update detection and pre-load applist and modulelist --- .../java/com/rifsxd/ksunext/ui/screen/Home.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt index 54ce3986..a766cc28 100644 --- a/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt +++ b/manager/app/src/main/java/com/rifsxd/ksunext/ui/screen/Home.kt @@ -51,6 +51,7 @@ import com.rifsxd.ksunext.ui.component.rememberConfirmDialog import com.rifsxd.ksunext.ui.util.* import com.rifsxd.ksunext.ui.util.module.LatestVersionInfo import com.rifsxd.ksunext.ui.viewmodel.ModuleViewModel +import com.rifsxd.ksunext.ui.viewmodel.SuperUserViewModel import java.util.* @OptIn(ExperimentalMaterial3Api::class) @@ -87,10 +88,22 @@ fun HomeScreen(navigator: DestinationsNavigator) { val lkmMode = ksuVersion?.let { if (it >= Natives.MINIMAL_SUPPORTED_KERNEL_LKM && kernelVersion.isGKI()) Natives.isLkmMode else null } - + + val superUserViewModel: SuperUserViewModel = viewModel() + val moduleViewModel: ModuleViewModel = viewModel() + + LaunchedEffect(Unit) { + if (superUserViewModel.appList.isEmpty()) { + superUserViewModel.fetchAppList() + } + + if (moduleViewModel.moduleList.isEmpty()) { + moduleViewModel.fetchModuleList() + } + } + val moduleUpdateCount = moduleViewModel.moduleList.count { - // Only count modules when update available (updateUrl is not empty) moduleViewModel.checkUpdate(it).first.isNotEmpty() }