manager: redesign/rearrange home infocard

This commit is contained in:
rifsxd
2025-05-21 23:42:05 +06:00
parent b40f2af0f0
commit 540ce1d2c3

View File

@@ -409,110 +409,127 @@ private fun InfoCard() {
.fillMaxWidth()
.padding(start = 24.dp, top = 24.dp, end = 24.dp, bottom = 16.dp)
) {
val contents = StringBuilder()
val uname = Os.uname()
var expanded by rememberSaveable { mutableStateOf(false) }
@Composable
fun InfoCardItem(label: String, content: String, icon: Any? = null) {
Row(verticalAlignment = Alignment.CenterVertically) {
if (icon != null) {
when (icon) {
is ImageVector -> Icon(
imageVector = icon,
contentDescription = null,
modifier = Modifier.padding(end = 20.dp)
)
Row(verticalAlignment = Alignment.CenterVertically) {
if (icon != null) {
when (icon) {
is ImageVector -> Icon(
imageVector = icon,
contentDescription = null,
modifier = Modifier.padding(end = 20.dp)
)
is Painter -> Icon(
painter = icon,
contentDescription = null,
modifier = Modifier.padding(end = 20.dp)
)
}
}
Column {
Text(
text = label,
style = MaterialTheme.typography.bodyLarge
)
Text(
text = content,
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.padding(top = 4.dp)
)
}
}
}
is Painter -> Icon(
painter = icon,
contentDescription = null,
modifier = Modifier.padding(end = 20.dp)
)
}
}
Column {
Text(
text = label,
style = MaterialTheme.typography.bodyLarge
)
Text(
text = content,
style = MaterialTheme.typography.bodyMedium,
modifier = Modifier.padding(top = 4.dp)
)
}
Column {
val managerVersion = getManagerVersion(context)
InfoCardItem(
label = stringResource(R.string.home_manager_version),
content = "${managerVersion.first} (${managerVersion.second})",
icon = painterResource(R.drawable.ic_ksu_next),
)
if (Natives.version >= Natives.MINIMAL_SUPPORTED_HOOK_MODE) {
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.hook_mode),
content = Natives.getHookMode() ?: stringResource(R.string.unavailable),
icon = Icons.Filled.Phishing,
)
}
}
InfoCardItem(
label = stringResource(R.string.home_kernel),
content = "${uname.release} (${uname.machine})",
icon = painterResource(R.drawable.ic_linux),
)
if (Natives.version >= Natives.MINIMAL_SUPPORTED_HOOK_MODE) {
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.hook_mode),
content = Natives.getHookMode() ?: stringResource(R.string.unavailable),
icon = Icons.Filled.Phishing,
label = stringResource(R.string.home_mount_system),
content = currentMountSystem().ifEmpty { stringResource(R.string.unavailable) },
icon = Icons.Filled.SettingsSuggest,
)
val suSFS = getSuSFS()
if (suSFS == "Supported") {
val isSUS_SU = getSuSFSFeatures() == "CONFIG_KSU_SUSFS_SUS_SU"
val susSUMode = if (isSUS_SU) {
val mode = susfsSUS_SU_Mode()
val modeString =
if (mode == "2") stringResource(R.string.enabled) else stringResource(R.string.disabled)
"| SuS SU: $modeString"
} else ""
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_susfs_version),
content = "${getSuSFSVersion()} (${getSuSFSVariant()}) $susSUMode",
icon = painterResource(R.drawable.ic_sus),
)
}
}
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_android),
content = "${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})",
icon = Icons.Filled.Android,
if (!expanded) {
Spacer(Modifier.height(12.dp))
Row(
modifier = Modifier
.fillMaxWidth()
.clickable { expanded = true },
horizontalArrangement = Arrangement.Center
) {
Icon(
imageVector = Icons.Filled.KeyboardArrowDown,
contentDescription = "Show more"
)
}
}
)
AnimatedVisibility(visible = expanded) {
val uname = Os.uname()
Column {
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_kernel),
content = "${uname.release} (${uname.machine})",
icon = painterResource(R.drawable.ic_linux),
)
Spacer(Modifier.height(16.dp))
val managerVersion = getManagerVersion(context)
InfoCardItem(
label = stringResource(R.string.home_manager_version),
content = "${managerVersion.first} (${managerVersion.second})",
icon = painterResource(R.drawable.ic_ksu_next),
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_android),
content = "${Build.VERSION.RELEASE} (${Build.VERSION.SDK_INT})",
icon = Icons.Filled.Android,
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_abi),
content = Build.SUPPORTED_ABIS.joinToString(", "),
icon = Icons.Filled.Memory,
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_abi),
content = Build.SUPPORTED_ABIS.joinToString(", "),
icon = Icons.Filled.Memory,
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_selinux_status),
content = getSELinuxStatus(),
icon = Icons.Filled.Security,
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_mount_system),
content = currentMountSystem().ifEmpty { stringResource(R.string.unavailable) },
icon = Icons.Filled.SettingsSuggest,
)
val suSFS = getSuSFS()
if (suSFS == "Supported") {
val isSUS_SU = getSuSFSFeatures() == "CONFIG_KSU_SUSFS_SUS_SU"
val susSUMode = if (isSUS_SU) {
val mode = susfsSUS_SU_Mode()
val modeString =
if (mode == "2") stringResource(R.string.enabled) else stringResource(R.string.disabled)
"| SuS SU: $modeString"
} else ""
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_susfs_version),
content = "${getSuSFSVersion()} (${getSuSFSVariant()}) $susSUMode",
icon = painterResource(R.drawable.ic_sus),
)
Spacer(Modifier.height(16.dp))
InfoCardItem(
label = stringResource(R.string.home_selinux_status),
content = getSELinuxStatus(),
icon = Icons.Filled.Security,
)
}
}
}
}