From 104da5d312ed00e339a9a8cadcba640b87d5664e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Wed, 24 Dec 2025 16:50:14 +0800 Subject: [PATCH] Trigger managed mode scan when enabling per-app proxy --- .../screen/settings/ProfileOverrideScreen.kt | 35 ++++++++++++++----- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/ProfileOverrideScreen.kt b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/ProfileOverrideScreen.kt index eec317d..4e918f1 100644 --- a/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/ProfileOverrideScreen.kt +++ b/app/src/main/java/io/nekohasekai/sfa/compose/screen/settings/ProfileOverrideScreen.kt @@ -208,15 +208,32 @@ fun ProfileOverrideScreen(navController: NavController) { }, trailingContent = { if (isPerAppProxyAvailable) { - Switch( - checked = perAppProxyEnabled, - onCheckedChange = { checked -> - perAppProxyEnabled = checked - scope.launch(Dispatchers.IO) { - Settings.perAppProxyEnabled = checked - } - }, - ) + if (isScanning) { + CircularProgressIndicator( + modifier = Modifier.size(24.dp), + strokeWidth = 2.dp, + ) + } else { + Switch( + checked = perAppProxyEnabled, + onCheckedChange = { checked -> + perAppProxyEnabled = checked + scope.launch(Dispatchers.IO) { + Settings.perAppProxyEnabled = checked + } + if (checked && managedModeEnabled) { + isScanning = true + scope.launch { + val chinaApps = scanAllChinaApps() + withContext(Dispatchers.IO) { + Settings.perAppProxyManagedList = chinaApps + } + isScanning = false + } + } + }, + ) + } } }, modifier =