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 5f59e02a..b274f28a 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 @@ -65,6 +65,7 @@ fun HomeScreen(navigator: DestinationsNavigator) { var isSimpleMode by rememberSaveable { mutableStateOf(false) } var isHideVersion by rememberSaveable { mutableStateOf(false) } var isHideOtherInfo by rememberSaveable { mutableStateOf(false) } + var isHideSusfsStatus by rememberSaveable { mutableStateOf(false) } // 从 SharedPreferences 加载简洁模式状态 LaunchedEffect(Unit) { @@ -81,6 +82,11 @@ fun HomeScreen(navigator: DestinationsNavigator) { isHideOtherInfo = context.getSharedPreferences("settings", Context.MODE_PRIVATE) .getBoolean("is_hide_other_info", false) } + // 从 SharedPreferences 加载隐藏 SuSFS 状态开关状态 + LaunchedEffect(Unit) { + isHideSusfsStatus = context.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("is_hide_susfs_status", false) + } val kernelVersion = getKernelVersion() val scrollBehavior = TopAppBarDefaults.pinnedScrollBehavior(rememberTopAppBarState()) @@ -322,6 +328,9 @@ private fun StatusCard( val isHideOtherInfo = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) .getBoolean("is_hide_other_info", false) + val isHideSusfsStatus = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("is_hide_susfs_status", false) + Icon(Icons.Outlined.CheckCircle, stringResource(R.string.home_working)) Column(Modifier.padding(start = 20.dp)) { Text( @@ -356,21 +365,22 @@ private fun StatusCard( ) } } + if (!isHideSusfsStatus) { + Spacer(modifier = Modifier.height(4.dp)) - Spacer(modifier = Modifier.height(4.dp)) - - val suSFS = getSuSFS() - if (lkmMode != true) { - val translatedStatus = when (suSFS) { - "Supported" -> stringResource(R.string.status_supported) - "Not Supported" -> stringResource(R.string.status_not_supported) - else -> stringResource(R.string.status_unknown) - } - - Text( - text = stringResource(R.string.home_susfs, translatedStatus), - style = MaterialTheme.typography.bodyMedium - ) + val suSFS = getSuSFS() + if (lkmMode != true) { + val translatedStatus = when (suSFS) { + "Supported" -> stringResource(R.string.status_supported) + "Not Supported" -> stringResource(R.string.status_not_supported) + else -> stringResource(R.string.status_unknown) + } + + Text( + text = stringResource(R.string.home_susfs, translatedStatus), + style = MaterialTheme.typography.bodyMedium + ) + } } } } @@ -599,9 +609,10 @@ private fun InfoCard() { InfoCardItem(stringResource(R.string.home_kpm_version), displayVersion) } + val isHideSusfsStatus = LocalContext.current.getSharedPreferences("settings", Context.MODE_PRIVATE) + .getBoolean("is_hide_susfs_status", false) - - if (!isSimpleMode) { + if ((!isSimpleMode) && (!isHideSusfsStatus)) { Spacer(modifier = Modifier.height(16.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 9f779961..41a30eb3 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 @@ -128,6 +128,17 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) { isHideOtherInfo = newValue } + // 隐藏 SuSFS 状态开关状态 + var isHideSusfsStatus by remember { + mutableStateOf(prefs.getBoolean("is_hide_susfs_status", false)) + } + + // 隐藏 SuSFS 状态开关状态 + val onHideSusfsStatusChange = { newValue: Boolean -> + prefs.edit { putBoolean("is_hide_susfs_status", newValue) } + isHideSusfsStatus = newValue + } + // SELinux 状态 var selinuxEnabled by remember { mutableStateOf(Shell.cmd("getenforce").exec().out.firstOrNull() == "Enforcing") @@ -274,6 +285,20 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) { onHideOtherInfoChange(it) } } + AnimatedVisibility( + visible = isExpanded, + modifier = Modifier.fillMaxWidth().padding(horizontal = 24.dp) + ) { + // SuSFS 状态信息 + SwitchItem( + icon = Icons.Filled.VisibilityOff, + title = stringResource(R.string.hide_susfs_status), + summary = stringResource(R.string.hide_susfs_status_summary), + checked = isHideSusfsStatus + ) { + onHideSusfsStatusChange(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 1f4500b5..a7a15c90 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -193,6 +193,8 @@ 隐藏内核部分的 KernelSU 版本号 强迫症开关 隐藏主页上的超级用户数、模块数和 KPM 模块数信息 + 隐藏 SuSFS 状态信息 + 隐藏主页上的 SuSFS 状态信息 主题模式 跟随系统 浅色 diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index 028309ee..53590cc0 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -194,6 +194,8 @@ Hide kernel version Hide other info Hides information about the number of super users, modules and KPM modules on the home page + Hide SuSFS status + Hide SuSFS status information on the home page Theme Mode follow-up system light color