From e826f43aedfe299f76ab7d11ab3e75293de1758b Mon Sep 17 00:00:00 2001 From: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com> Date: Sat, 24 May 2025 04:38:54 +0800 Subject: [PATCH] Optimize KPM checking logic - Simplify code and ensure KPM information is displayed under supported versions --- .../java/com/sukisu/ultra/ui/MainActivity.kt | 2 +- .../java/com/sukisu/ultra/ui/screen/Home.kt | 16 +++-------- .../sukisu/ultra/ui/screen/MoreSettings.kt | 27 ++++++++++--------- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/MainActivity.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/MainActivity.kt index f362988a..f6e1feb5 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/MainActivity.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/MainActivity.kt @@ -257,7 +257,7 @@ private fun BottomBar(navController: NavHostController) { ) { BottomBarDestination.entries.forEach { destination -> if (destination == BottomBarDestination.Kpm) { - if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error") && showKpmInfo) { + if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error") && showKpmInfo && Natives.version >= Natives.MINIMAL_SUPPORTED_KPM) { if (!fullFeatured && destination.rootRequired) return@forEach val isCurrentDestOnBackStack by navController.isRouteOnBackStackAsState(destination.direction) NavigationBarItem( diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Home.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Home.kt index ac5afbc2..764c2728 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Home.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Home.kt @@ -35,7 +35,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Android import androidx.compose.material.icons.filled.Archive -import androidx.compose.material.icons.filled.Code import androidx.compose.material.icons.filled.Info import androidx.compose.material.icons.filled.Memory import androidx.compose.material.icons.filled.PhoneAndroid @@ -43,10 +42,8 @@ import androidx.compose.material.icons.filled.Refresh import androidx.compose.material.icons.filled.Security import androidx.compose.material.icons.filled.Settings import androidx.compose.material.icons.filled.Storage -import androidx.compose.material.icons.filled.Warning import androidx.compose.material.icons.outlined.Block import androidx.compose.material.icons.outlined.CheckCircle -import androidx.compose.material.icons.outlined.Info import androidx.compose.material.icons.outlined.Warning import androidx.compose.material3.CardDefaults import androidx.compose.material3.DropdownMenu @@ -122,9 +119,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.flow.debounce import kotlinx.coroutines.withContext -import java.io.BufferedReader -import java.io.InputStreamReader -import java.util.zip.GZIPInputStream import kotlin.random.Random @OptIn(ExperimentalMaterial3Api::class, FlowPreview::class) @@ -559,7 +553,7 @@ private fun StatusCard( ) val kpmVersion = getKpmVersion() - if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error") && showKpmInfo) { + if (kpmVersion.isNotEmpty() && !kpmVersion.startsWith("Error") && showKpmInfo && Natives.version >= Natives.MINIMAL_SUPPORTED_KPM) { Spacer(Modifier.height(4.dp)) Text( text = stringResource(R.string.home_kpm_module, getKpmModuleCount()), @@ -899,7 +893,7 @@ private fun InfoCard() { val isKpmConfigured = checkKPMEnabled() // 根据showKpmInfo决定是否显示KPM信息 - if (showKpmInfo) { + if (showKpmInfo && Natives.version >= Natives.MINIMAL_SUPPORTED_KPM) { val displayVersion = if (kpmVersion.isEmpty() || kpmVersion.startsWith("Error")) { val statusText = if (isKpmConfigured) { stringResource(R.string.kernel_patched) @@ -1019,11 +1013,7 @@ private fun getDeviceModel(): String { // 检查KPM是否存在 private fun checkKPMEnabled(): Boolean { - return if (Natives.version >= Natives.MINIMAL_SUPPORTED_KPM) { - isKPMEnabled() - } else { - false - } + return isKPMEnabled() } @SuppressLint("UnnecessaryComposedModifier") diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/MoreSettings.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/MoreSettings.kt index deaabbd8..5c40e563 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/MoreSettings.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/MoreSettings.kt @@ -88,6 +88,7 @@ import androidx.core.content.edit import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.navigation.DestinationsNavigator +import com.sukisu.ultra.Natives import com.sukisu.ultra.R import com.sukisu.ultra.ui.MainActivity import com.sukisu.ultra.ui.component.ImageEditorDialog @@ -1015,19 +1016,21 @@ fun MoreSettingsScreen(navigator: DestinationsNavigator) { onHideSusfsStatusChange(it) } - HorizontalDivider( - modifier = Modifier.padding(horizontal = 16.dp), - color = MaterialTheme.colorScheme.outlineVariant - ) + if (Natives.version >= Natives.MINIMAL_SUPPORTED_KPM) { + HorizontalDivider( + modifier = Modifier.padding(horizontal = 16.dp), + color = MaterialTheme.colorScheme.outlineVariant + ) - // 显示KPM开关 - SwitchItem( - icon = Icons.Filled.VisibilityOff, - title = stringResource(R.string.show_kpm_info), - summary = stringResource(R.string.show_kpm_info_summary), - checked = isShowKpmInfo - ) { - onShowKpmInfoChange(it) + // 显示KPM开关 + SwitchItem( + icon = Icons.Filled.VisibilityOff, + title = stringResource(R.string.show_kpm_info), + summary = stringResource(R.string.show_kpm_info_summary), + checked = isShowKpmInfo + ) { + onShowKpmInfoChange(it) + } } HorizontalDivider(