From 04025f3d3240d774f4b425cf1ad5bc590c3831d8 Mon Sep 17 00:00:00 2001 From: WenHao2130 Date: Fri, 4 Apr 2025 20:04:37 +0800 Subject: [PATCH] manager: allow hide some other information Signed-off-by: WenHao2130 --- .../shirkneko/zako/sukisu/ui/screen/Home.kt | 40 ++++++++++++------- .../zako/sukisu/ui/screen/MoreSettings.kt | 25 ++++++++++++ .../src/main/res/values-zh-rCN/strings.xml | 2 + manager/app/src/main/res/values/strings.xml | 2 + 4 files changed, 55 insertions(+), 14 deletions(-) diff --git a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt index 0e407dd8..5f59e02a 100644 --- a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt +++ b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/Home.kt @@ -64,6 +64,7 @@ fun HomeScreen(navigator: DestinationsNavigator) { val context = LocalContext.current var isSimpleMode by rememberSaveable { mutableStateOf(false) } var isHideVersion by rememberSaveable { mutableStateOf(false) } + var isHideOtherInfo by rememberSaveable { mutableStateOf(false) } // 从 SharedPreferences 加载简洁模式状态 LaunchedEffect(Unit) { @@ -75,6 +76,11 @@ fun HomeScreen(navigator: DestinationsNavigator) { isHideVersion = context.getSharedPreferences("settings", Context.MODE_PRIVATE) .getBoolean("is_hide_version", false) } + // 从 SharedPreferences 加载隐藏模块数量等信息开关状态 + LaunchedEffect(Unit) { + isHideOtherInfo = context.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("is_hide_other_info", false) + } val kernelVersion = getKernelVersion() val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()) @@ -313,6 +319,9 @@ private fun StatusCard( val isHideVersion = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) .getBoolean("is_hide_version", false) + val isHideOtherInfo = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("is_hide_other_info", false) + Icon(Icons.Outlined.CheckCircle, stringResource(R.string.home_working)) Column(Modifier.padding(start = 20.dp)) { Text( @@ -326,25 +335,28 @@ private fun StatusCard( style = MaterialTheme.typography.bodyMedium ) } - Spacer(Modifier.height(4.dp)) - Text( - text = stringResource( - R.string.home_superuser_count, getSuperuserCount() - ), style = MaterialTheme.typography.bodyMedium - ) - Spacer(Modifier.height(4.dp)) - Text( - text = stringResource(R.string.home_module_count, getModuleCount()), - style = MaterialTheme.typography.bodyMedium - ) - val kpmVersion = getKpmVersion() - if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error")) { + if (!isHideOtherInfo) { Spacer(Modifier.height(4.dp)) Text( - text = stringResource(R.string.home_kpm_module, getKpmModuleCount()), + text = stringResource( + R.string.home_superuser_count, getSuperuserCount() + ), style = MaterialTheme.typography.bodyMedium + ) + Spacer(Modifier.height(4.dp)) + Text( + text = stringResource(R.string.home_module_count, getModuleCount()), style = MaterialTheme.typography.bodyMedium ) + val kpmVersion = getKpmVersion() + if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error")) { + Spacer(Modifier.height(4.dp)) + Text( + text = stringResource(R.string.home_kpm_module, getKpmModuleCount()), + style = MaterialTheme.typography.bodyMedium + ) + } } + Spacer(modifier = Modifier.height(4.dp)) val suSFS = getSuSFS() diff --git a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/MoreSettings.kt b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/MoreSettings.kt index 7b36e75b..9f779961 100644 --- a/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/MoreSettings.kt +++ b/manager/app/src/main/java/shirkneko/zako/sukisu/ui/screen/MoreSettings.kt @@ -117,6 +117,17 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) { isHideVersion = newValue } + // 隐藏模块数量等信息开关状态 + var isHideOtherInfo by remember { + mutableStateOf(prefs.getBoolean("is_hide_other_info", false)) + } + + // 隐藏模块数量等信息开关状态 + val onHideOtherInfoChange = { newValue: Boolean -> + prefs.edit { putBoolean("is_hide_other_info", newValue) } + isHideOtherInfo = newValue + } + // SELinux 状态 var selinuxEnabled by remember { mutableStateOf(Shell.cmd("getenforce").exec().out.firstOrNull() == "Enforcing") @@ -249,6 +260,20 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) { onHideVersionChange(it) } } + AnimatedVisibility( + visible = isExpanded, + modifier = Modifier.fillMaxWidth().padding(horizontal = 24.dp) + ) { + // 模块数量等信息 + SwitchItem( + icon = Icons.Filled.VisibilityOff, + title = stringResource(R.string.hide_other_info), + summary = stringResource(R.string.hide_other_info_summary), + checked = isHideOtherInfo + ) { + onHideOtherInfoChange(it) + } + } // region SUSFS 配置(仅在支持时显示) val suSFS = getSuSFS() diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml index 23abeb19..1f4500b5 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -191,6 +191,8 @@ 开启后将隐藏不必要的卡片 隐藏内核版本号 隐藏内核部分的 KernelSU 版本号 + 强迫症开关 + 隐藏主页上的超级用户数、模块数和 KPM 模块数信息 主题模式 跟随系统 浅色 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index d118cbfd..028309ee 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -192,6 +192,8 @@ Hides unnecessary cards when turned on Hide kernel version Hide kernel version + Hide other info + Hides information about the number of super users, modules and KPM modules on the home page Theme Mode follow-up system light color