From 8c8f3441616bb2a4d3baaf5bd7fb4b95e9b64460 Mon Sep 17 00:00:00 2001 From: ShirkNeko <109797057+ShirkNeko@users.noreply.github.com> Date: Mon, 25 Aug 2025 17:28:51 +0800 Subject: [PATCH] manager: Clean code & bump AGP version --- manager/app/build.gradle.kts | 4 +- manager/app/proguard-rules.pro | 1 - manager/app/src/main/cpp/ksu.h | 1 - .../ui/component/profile/RootProfileConfig.kt | 5 +- .../com/sukisu/ultra/ui/screen/AppProfile.kt | 1 - .../ultra/ui/screen/ExecuteModuleAction.kt | 3 - .../com/sukisu/ultra/ui/screen/Install.kt | 8 +- .../java/com/sukisu/ultra/ui/screen/Module.kt | 2 +- .../com/sukisu/ultra/ui/screen/Template.kt | 11 +- .../com/sukisu/ultra/ui/util/HyperlinkText.kt | 6 +- .../com/sukisu/ultra/ui/util/ModuleModify.kt | 4 - .../sukisu/ultra/ui/webui/KsuLibSuProvider.kt | 2 +- .../ultra/ui/webui/SuFilePathHandler.java | 7 +- .../sukisu/ultra/ui/webui/WebUIActivity.kt | 2 +- .../io/sukisu/ultra/UltraShellHelper.java | 5 +- .../zako/zako/zakoui/activity/util/AppData.kt | 10 +- .../zakoui/activity/util/NavigationUtils.kt | 19 --- .../zako/zako/zakoui/flash/KernelFlash.kt | 130 +----------------- .../zako/zako/zakoui/screen/KernelFlash.kt | 5 +- .../app/src/main/res/values-ar/strings.xml | 2 - .../app/src/main/res/values-az/strings.xml | 2 - .../app/src/main/res/values-bs/strings.xml | 2 - .../app/src/main/res/values-da/strings.xml | 2 - .../app/src/main/res/values-de/strings.xml | 2 - .../app/src/main/res/values-es/strings.xml | 2 - .../app/src/main/res/values-et/strings.xml | 2 - .../app/src/main/res/values-fa/strings.xml | 2 - .../app/src/main/res/values-fil/strings.xml | 2 - .../app/src/main/res/values-fr/strings.xml | 2 - .../app/src/main/res/values-hi/strings.xml | 2 - .../app/src/main/res/values-hr/strings.xml | 2 - .../app/src/main/res/values-hu/strings.xml | 2 - .../app/src/main/res/values-in/strings.xml | 2 - .../app/src/main/res/values-it/strings.xml | 2 - .../app/src/main/res/values-ja/strings.xml | 2 - .../app/src/main/res/values-kn/strings.xml | 2 - .../app/src/main/res/values-ko/strings.xml | 2 - .../app/src/main/res/values-lt/strings.xml | 2 - .../app/src/main/res/values-lv/strings.xml | 2 - .../app/src/main/res/values-mr/strings.xml | 2 - .../app/src/main/res/values-ms/strings.xml | 2 - .../app/src/main/res/values-nl/strings.xml | 2 - .../app/src/main/res/values-pl/strings.xml | 2 - .../app/src/main/res/values-pt/strings.xml | 2 - .../app/src/main/res/values-ro/strings.xml | 2 - .../app/src/main/res/values-ru/strings.xml | 2 - .../app/src/main/res/values-sl/strings.xml | 2 - .../app/src/main/res/values-th/strings.xml | 2 - .../app/src/main/res/values-tr/strings.xml | 2 - .../app/src/main/res/values-uk/strings.xml | 2 - .../app/src/main/res/values-vi/strings.xml | 2 - .../src/main/res/values-zh-rCN/strings.xml | 2 - .../src/main/res/values-zh-rHK/strings.xml | 2 - .../src/main/res/values-zh-rTW/strings.xml | 2 - manager/app/src/main/res/values/strings.xml | 2 - manager/gradle/libs.versions.toml | 8 +- 56 files changed, 27 insertions(+), 279 deletions(-) delete mode 100644 manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/NavigationUtils.kt diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index d12c52b9..fe0f0a85 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -54,8 +54,8 @@ android { prefab = true } - kotlinOptions { - jvmTarget = "21" + kotlin { + jvmToolchain(21) } packaging { diff --git a/manager/app/proguard-rules.pro b/manager/app/proguard-rules.pro index c44bba64..85638057 100644 --- a/manager/app/proguard-rules.pro +++ b/manager/app/proguard-rules.pro @@ -40,7 +40,6 @@ # MMRL:webui reflection --keep class com.dergoogler.mmrl.webui.model.ModId { *; } -keep class com.dergoogler.mmrl.webui.interfaces.** { *; } -keep class com.sukisu.ultra.ui.webui.WebViewInterface { *; } diff --git a/manager/app/src/main/cpp/ksu.h b/manager/app/src/main/cpp/ksu.h index b12b4d2d..8df709dc 100644 --- a/manager/app/src/main/cpp/ksu.h +++ b/manager/app/src/main/cpp/ksu.h @@ -54,7 +54,6 @@ struct susfs_feature_status { bool status_spoof_cmdline; bool status_open_redirect; bool status_magic_mount; - bool status_overlayfs_auto_kstat; bool status_sus_su; }; diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/component/profile/RootProfileConfig.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/component/profile/RootProfileConfig.kt index c507e25c..704dbc3e 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/component/profile/RootProfileConfig.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/component/profile/RootProfileConfig.kt @@ -24,7 +24,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction @@ -48,8 +47,6 @@ import com.sukisu.ultra.R import com.sukisu.ultra.profile.Capabilities import com.sukisu.ultra.profile.Groups import com.sukisu.ultra.ui.component.rememberCustomDialog -import com.sukisu.ultra.ui.theme.CardConfig -import com.sukisu.ultra.ui.theme.CardConfig.cardAlpha import com.sukisu.ultra.ui.util.isSepolicyValid @OptIn(ExperimentalMaterial3Api::class) @@ -501,5 +498,5 @@ private fun RootProfileConfigPreview() { } private fun isTextValidUid(text: String): Boolean { - return text.isNotEmpty() && text.isDigitsOnly() && text.toInt() >= 0 && text.toInt() <= Int.MAX_VALUE + return text.isNotEmpty() && text.isDigitsOnly() && text.toInt() >= 0 } diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/AppProfile.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/AppProfile.kt index edc9b44b..48cb22ef 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/AppProfile.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/AppProfile.kt @@ -84,7 +84,6 @@ import com.sukisu.ultra.ui.component.profile.AppProfileConfig import com.sukisu.ultra.ui.component.profile.RootProfileConfig import com.sukisu.ultra.ui.component.profile.TemplateConfig import com.sukisu.ultra.ui.theme.CardConfig -import com.sukisu.ultra.ui.theme.CardConfig.cardAlpha import com.sukisu.ultra.ui.theme.getCardColors import com.sukisu.ultra.ui.theme.getCardElevation import com.sukisu.ultra.ui.util.LocalSnackbarHost diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ExecuteModuleAction.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ExecuteModuleAction.kt index 32576dfb..326c0010 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ExecuteModuleAction.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ExecuteModuleAction.kt @@ -8,10 +8,7 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.WindowInsetsSides -import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.safeDrawing -import androidx.compose.foundation.layout.only import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close import androidx.compose.material.icons.filled.Save diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Install.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Install.kt index c55c71bc..cc54ae3b 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Install.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Install.kt @@ -338,7 +338,7 @@ private fun RebootDialog( sealed class InstallMethod { data class SelectFile( val uri: Uri? = null, - @StringRes override val label: Int = R.string.select_file, + @param:StringRes override val label: Int = R.string.select_file, override val summary: String? ) : InstallMethod() @@ -355,7 +355,7 @@ sealed class InstallMethod { data class HorizonKernel( val uri: Uri? = null, val slot: String? = null, - @StringRes override val label: Int = R.string.horizon_kernel, + @param:StringRes override val label: Int = R.string.horizon_kernel, override val summary: String? = null ) : InstallMethod() @@ -413,7 +413,7 @@ private fun SelectInstallMethod( else -> null } - option?.let { + option?.let { it -> selectedOption = it onSelected(it) } @@ -682,7 +682,7 @@ private fun SelectInstallMethod( @Composable fun rememberSelectKmiDialog(onSelected: (String?) -> Unit): DialogHandle { return rememberCustomDialog { dismiss -> - val supportedKmi by produceState(initialValue = emptyList()) { + val supportedKmi by produceState(initialValue = emptyList()) { value = getSupportedKmis() } val options = supportedKmi.map { value -> diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Module.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Module.kt index 1322db66..8aa1f0a8 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Module.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Module.kt @@ -221,7 +221,7 @@ fun ModuleScreen(navigator: DestinationsNavigator) { } // 所有模块签名验证通过,直接安装 - if (verificationResults.all { it.value }) { + if (verificationResults.all { it -> it.value }) { try { navigator.navigate(FlashScreenDestination(FlashIt.FlashModules(selectedModules))) viewModel.markNeedRefresh() diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Template.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Template.kt index 535e7d33..ac07fc6c 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Template.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/Template.kt @@ -33,7 +33,6 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar -import androidx.compose.material3.TopAppBarColors import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior import androidx.compose.material3.pulltorefresh.PullToRefreshBox @@ -94,9 +93,6 @@ fun AppProfileTemplateScreen( } } - val cardColorUse = MaterialTheme.colorScheme.surfaceVariant - val cardAlpha = CardConfig.cardAlpha - Scaffold( topBar = { val context = LocalContext.current @@ -108,10 +104,6 @@ fun AppProfileTemplateScreen( } TopBar( onBack = dropUnlessResumed { navigator.popBackStack() }, - colors = TopAppBarDefaults.topAppBarColors( - containerColor = cardColorUse.copy(alpha = cardAlpha), - scrolledContainerColor = cardColorUse.copy(alpha = cardAlpha) - ), onSync = { scope.launch { viewModel.fetchTemplates(true) } }, @@ -209,7 +201,7 @@ private fun TemplateItem( FlowRow { LabelText(label = "UID: ${template.uid}") LabelText(label = "GID: ${template.gid}") - LabelText(label = template.context,) + LabelText(label = template.context) if (template.local) { LabelText(label = "local") } else { @@ -228,7 +220,6 @@ private fun TopBar( onSync: () -> Unit = {}, onImport: () -> Unit = {}, onExport: () -> Unit = {}, - colors: TopAppBarColors, scrollBehavior: TopAppBarScrollBehavior? = null ) { val colorScheme = MaterialTheme.colorScheme diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/util/HyperlinkText.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/util/HyperlinkText.kt index 299975ea..bdd9b6fb 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/util/HyperlinkText.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/util/HyperlinkText.kt @@ -64,9 +64,9 @@ fun LinkifyText( } private val urlPattern: Pattern = Pattern.compile( - "(?:^|[\\W])((ht|f)tp(s?):\\/\\/|www\\.)" - + "(([\\w\\-]+\\.){1,}?([\\w\\-.~]+\\/?)*" - + "[\\p{Alnum}.,%_=?&#\\-+()\\[\\]\\*$~@!:/{};']*)", + "(?:^|\\W)((ht|f)tp(s?)://|www\\.)" + + "(([\\w\\-]+\\.)+([\\w\\-.~]+/?)*" + + "[\\p{Alnum}.,%_=?&#\\-+()\\[\\]*$~@!:/{};']*)", Pattern.CASE_INSENSITIVE or Pattern.MULTILINE or Pattern.DOTALL ) diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/util/ModuleModify.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/util/ModuleModify.kt index 1a30a4cf..120939a3 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/util/ModuleModify.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/util/ModuleModify.kt @@ -314,7 +314,6 @@ object ModuleModify { ): androidx.activity.result.ActivityResultLauncher { var showRestoreDialog by remember { mutableStateOf(false) } var restoreConfirmResult by remember { mutableStateOf?>(null) } - var pendingUri by remember { mutableStateOf(null) } // 显示恢复确认对话框 RestoreConfirmationDialog( @@ -334,7 +333,6 @@ object ModuleModify { ) { result -> if (result.resultCode == android.app.Activity.RESULT_OK) { result.data?.data?.let { uri -> - pendingUri = uri scope.launch { val confirmResult = CompletableDeferred() restoreConfirmResult = confirmResult @@ -377,7 +375,6 @@ object ModuleModify { ): androidx.activity.result.ActivityResultLauncher { var showAllowlistRestoreDialog by remember { mutableStateOf(false) } var allowlistRestoreConfirmResult by remember { mutableStateOf?>(null) } - var pendingUri by remember { mutableStateOf(null) } // 显示允许列表恢复确认对话框 AllowlistRestoreConfirmationDialog( @@ -397,7 +394,6 @@ object ModuleModify { ) { result -> if (result.resultCode == android.app.Activity.RESULT_OK) { result.data?.data?.let { uri -> - pendingUri = uri scope.launch { val confirmResult = CompletableDeferred() allowlistRestoreConfirmResult = confirmResult diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/KsuLibSuProvider.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/KsuLibSuProvider.kt index 17984b20..0b4e76b2 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/KsuLibSuProvider.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/KsuLibSuProvider.kt @@ -49,7 +49,7 @@ suspend fun initPlatform() = withContext(Dispatchers.IO) { delay(1000) } - return@withContext active + return@withContext true } catch (e: Exception) { Log.e("KsuLibSu", "Failed to initialize platform", e) return@withContext false diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/SuFilePathHandler.java b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/SuFilePathHandler.java index 7d76f6df..699c3706 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/SuFilePathHandler.java +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/SuFilePathHandler.java @@ -76,15 +76,14 @@ public final class SuFilePathHandler implements WebViewAssetLoader.PathHandler { * The application should typically use a dedicated subdirectory for the files it intends to * expose and keep them separate from other files. * - * @param context {@link Context} that is used to access app's internal storage. * @param directory the absolute path of the exposed app internal storage directory from * which files can be loaded. * @throws IllegalArgumentException if the directory is not allowed. */ - public SuFilePathHandler(@NonNull Context context, @NonNull File directory, Shell rootShell) { + public SuFilePathHandler(@NonNull File directory, Shell rootShell) { try { mDirectory = new File(getCanonicalDirPath(directory)); - if (!isAllowedInternalStorageDir(context)) { + if (!isAllowedInternalStorageDir()) { throw new IllegalArgumentException("The given directory \"" + directory + "\" doesn't exist under an allowed app internal storage directory"); } @@ -96,7 +95,7 @@ public final class SuFilePathHandler implements WebViewAssetLoader.PathHandler { } } - private boolean isAllowedInternalStorageDir(@NonNull Context context) throws IOException { + private boolean isAllowedInternalStorageDir() throws IOException { String dir = getCanonicalDirPath(mDirectory); for (String forbiddenPath : FORBIDDEN_DATA_DIRS) { diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/WebUIActivity.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/WebUIActivity.kt index fefea532..2aa03a0f 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/webui/WebUIActivity.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/webui/WebUIActivity.kt @@ -58,7 +58,7 @@ class WebUIActivity : ComponentActivity() { .setDomain("mui.kernelsu.org") .addPathHandler( "/", - SuFilePathHandler(this, webRoot, rootShell) + SuFilePathHandler(webRoot, rootShell) ) .build() diff --git a/manager/app/src/main/java/io/sukisu/ultra/UltraShellHelper.java b/manager/app/src/main/java/io/sukisu/ultra/UltraShellHelper.java index 643a382d..f829f614 100644 --- a/manager/app/src/main/java/io/sukisu/ultra/UltraShellHelper.java +++ b/manager/app/src/main/java/io/sukisu/ultra/UltraShellHelper.java @@ -23,8 +23,7 @@ public class UltraShellHelper { return result.contains("exists"); } - public static boolean CopyFileTo(String path, String target) { - String result = runCmd("cp -f '" + path + "' '" + target + "' 2>&1"); - return !result.contains("cp: "); + public static void CopyFileTo(String path, String target) { + runCmd("cp -f '" + path + "' '" + target + "' 2>&1"); } } diff --git a/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/AppData.kt b/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/AppData.kt index 1ec67f81..54fea9d1 100644 --- a/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/AppData.kt +++ b/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/AppData.kt @@ -6,11 +6,9 @@ import com.sukisu.ultra.ui.util.getKpmVersion import com.sukisu.ultra.ui.util.getModuleCount import com.sukisu.ultra.ui.util.getSuperuserCount import com.sukisu.ultra.ui.util.rootAvailable -import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow -import kotlinx.coroutines.withContext object AppData { object DataRefreshManager { @@ -33,12 +31,6 @@ object AppData { _kpmModuleCount.value = getKpmModuleCountUse() } - /** - * 异步刷新所有数据 - */ - suspend fun refreshDataAsync() = withContext(Dispatchers.IO) { - refreshData() - } } /** @@ -86,7 +78,7 @@ object AppData { return try { if (!rootAvailable()) return "" val version = getKpmVersion() - if (version.isEmpty()) "" else version + version.ifEmpty { "" } } catch (e: Exception) { "Error: ${e.message}" } diff --git a/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/NavigationUtils.kt b/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/NavigationUtils.kt deleted file mode 100644 index 31112416..00000000 --- a/manager/app/src/main/java/zako/zako/zako/zakoui/activity/util/NavigationUtils.kt +++ /dev/null @@ -1,19 +0,0 @@ -package zako.zako.zako.zakoui.activity.util - -import androidx.compose.animation.AnimatedContentTransitionScope -import androidx.compose.animation.EnterTransition -import androidx.compose.animation.ExitTransition -import androidx.compose.animation.core.tween -import androidx.compose.animation.fadeIn -import androidx.compose.animation.fadeOut -import androidx.navigation.NavBackStackEntry -import com.ramcosta.composedestinations.animations.NavHostAnimatedDestinationStyle - -object NavigationUtils { - fun defaultTransitions() = object : NavHostAnimatedDestinationStyle() { - override val enterTransition: AnimatedContentTransitionScope.() -> EnterTransition - get() = { fadeIn(animationSpec = tween(340)) } - override val exitTransition: AnimatedContentTransitionScope.() -> ExitTransition - get() = { fadeOut(animationSpec = tween(340)) } - } -} \ No newline at end of file diff --git a/manager/app/src/main/java/zako/zako/zako/zakoui/flash/KernelFlash.kt b/manager/app/src/main/java/zako/zako/zako/zakoui/flash/KernelFlash.kt index 8ed0838b..4faff202 100644 --- a/manager/app/src/main/java/zako/zako/zako/zakoui/flash/KernelFlash.kt +++ b/manager/app/src/main/java/zako/zako/zako/zakoui/flash/KernelFlash.kt @@ -1,21 +1,9 @@ package zako.zako.zako.zakoui.flash +import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.net.Uri -import androidx.compose.foundation.layout.* -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.CheckCircle -import androidx.compose.material.icons.filled.Error -import androidx.compose.material3.* -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextOverflow -import androidx.compose.ui.unit.dp import androidx.documentfile.provider.DocumentFile import com.sukisu.ultra.R import com.sukisu.ultra.utils.AssetsUtil @@ -207,6 +195,7 @@ class HorizonKernelWorker( } } + @SuppressLint("StringFormatInvalid") private fun patch() { val kernelVersion = runCommandGetOutput(true, "cat /proc/version") val versionRegex = """\d+\.\d+\.\d+""".toRegex() @@ -322,118 +311,3 @@ class HorizonKernelWorker( } } } - -@Composable -fun HorizonKernelFlashProgress(state: FlashState) { - Card( - modifier = Modifier - .fillMaxWidth() - .padding(16.dp), - colors = CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceVariant - ) - ) { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text( - text = stringResource(id = R.string.horizon_flash_title), - style = MaterialTheme.typography.titleMedium, - modifier = Modifier.padding(bottom = 8.dp) - ) - - LinearProgressIndicator( - modifier = Modifier - .fillMaxWidth() - .padding(vertical = 8.dp), - progress = { state.progress }, - ) - - Text( - text = state.currentStep, - style = MaterialTheme.typography.bodyMedium, - modifier = Modifier.padding(vertical = 4.dp) - ) - - if (state.logs.isNotEmpty()) { - Text( - text = stringResource(id = R.string.horizon_logs_label), - style = MaterialTheme.typography.labelMedium, - modifier = Modifier - .align(Alignment.Start) - .padding(top = 8.dp, bottom = 4.dp) - ) - - Surface( - modifier = Modifier - .fillMaxWidth() - .heightIn(max = 230.dp) - .padding(vertical = 4.dp), - color = MaterialTheme.colorScheme.surface, - tonalElevation = 1.dp, - shape = MaterialTheme.shapes.small - ) { - Column( - modifier = Modifier - .fillMaxWidth() - .padding(8.dp) - .verticalScroll(rememberScrollState()) - ) { - state.logs.forEach { log -> - Text( - text = log, - style = MaterialTheme.typography.bodySmall, - modifier = Modifier.padding(vertical = 2.dp), - overflow = TextOverflow.Ellipsis, - maxLines = 1 - ) - } - } - } - } - - if (state.error.isNotEmpty()) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .fillMaxWidth() - .padding(top = 8.dp) - ) { - Icon( - imageVector = Icons.Default.Error, - contentDescription = null, - tint = MaterialTheme.colorScheme.error, - modifier = Modifier.padding(end = 8.dp) - ) - Text( - text = state.error, - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.error - ) - } - } else if (state.isCompleted) { - Row( - verticalAlignment = Alignment.CenterVertically, - modifier = Modifier - .fillMaxWidth() - .padding(top = 8.dp) - ) { - Icon( - imageVector = Icons.Default.CheckCircle, - contentDescription = null, - tint = MaterialTheme.colorScheme.primary, - modifier = Modifier.padding(end = 8.dp) - ) - Text( - text = stringResource(id = R.string.horizon_flash_complete), - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.primary - ) - } - } - } - } -} \ No newline at end of file diff --git a/manager/app/src/main/java/zako/zako/zako/zakoui/screen/KernelFlash.kt b/manager/app/src/main/java/zako/zako/zako/zakoui/screen/KernelFlash.kt index d695199a..0c125c1d 100644 --- a/manager/app/src/main/java/zako/zako/zako/zakoui/screen/KernelFlash.kt +++ b/manager/app/src/main/java/zako/zako/zako/zakoui/screen/KernelFlash.kt @@ -113,7 +113,7 @@ fun KernelFlashScreen( worker.start() // 监听日志更新 - while (!flashState.isCompleted && flashState.error.isEmpty()) { + while (flashState.error.isEmpty()) { if (flashState.logs.isNotEmpty()) { logText = flashState.logs.joinToString("\n") logContent.clear() @@ -126,9 +126,6 @@ fun KernelFlashScreen( logText += "\n${flashState.error}\n" logContent.append("\n${flashState.error}\n") KernelFlashStateHolder.isFlashing = false - } else if (flashState.isCompleted) { - logText += "\n${context.getString(R.string.horizon_flash_complete)}\n\n\n" - logContent.append("\n${context.getString(R.string.horizon_flash_complete)}\n\n\n") } } } else { diff --git a/manager/app/src/main/res/values-ar/strings.xml b/manager/app/src/main/res/values-ar/strings.xml index 1da2b497..9f3ce806 100644 --- a/manager/app/src/main/res/values-ar/strings.xml +++ b/manager/app/src/main/res/values-ar/strings.xml @@ -239,8 +239,6 @@ استخدم إصبعين لتكبير الصورة، وأصبع واحد لسحبها لضبط الموضع إعادة - ضرب النواة - السجلات: الفلاش اكتمل جار التحضير diff --git a/manager/app/src/main/res/values-az/strings.xml b/manager/app/src/main/res/values-az/strings.xml index e36c1011..66a45483 100644 --- a/manager/app/src/main/res/values-az/strings.xml +++ b/manager/app/src/main/res/values-az/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-bs/strings.xml b/manager/app/src/main/res/values-bs/strings.xml index 4ef47470..18808f7f 100644 --- a/manager/app/src/main/res/values-bs/strings.xml +++ b/manager/app/src/main/res/values-bs/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-da/strings.xml b/manager/app/src/main/res/values-da/strings.xml index f88cdb14..2c2d8b0a 100644 --- a/manager/app/src/main/res/values-da/strings.xml +++ b/manager/app/src/main/res/values-da/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-de/strings.xml b/manager/app/src/main/res/values-de/strings.xml index a462acc7..b27aea4c 100644 --- a/manager/app/src/main/res/values-de/strings.xml +++ b/manager/app/src/main/res/values-de/strings.xml @@ -239,8 +239,6 @@ Verwende zwei Finger um das Bild zu vergrößern und einen Finger um die Position anzupassen Rückzahlung - Kernel-Flashen - Logs: Blitz abgeschlossen Vorbereiten… diff --git a/manager/app/src/main/res/values-es/strings.xml b/manager/app/src/main/res/values-es/strings.xml index f381bfd8..967e6fcf 100644 --- a/manager/app/src/main/res/values-es/strings.xml +++ b/manager/app/src/main/res/values-es/strings.xml @@ -237,8 +237,6 @@ Usa dos dedos para acercar la imagen, y un dedo para arrastrarla para ajustar la posición Reaprovisionamiento - Parpadeo Kernel - Registros: Flashear completo Preparando… diff --git a/manager/app/src/main/res/values-et/strings.xml b/manager/app/src/main/res/values-et/strings.xml index 03decba6..f3bc289a 100644 --- a/manager/app/src/main/res/values-et/strings.xml +++ b/manager/app/src/main/res/values-et/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-fa/strings.xml b/manager/app/src/main/res/values-fa/strings.xml index ff76a429..760f4b95 100644 --- a/manager/app/src/main/res/values-fa/strings.xml +++ b/manager/app/src/main/res/values-fa/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-fil/strings.xml b/manager/app/src/main/res/values-fil/strings.xml index f5929400..a762616f 100644 --- a/manager/app/src/main/res/values-fil/strings.xml +++ b/manager/app/src/main/res/values-fil/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-fr/strings.xml b/manager/app/src/main/res/values-fr/strings.xml index c2f4fbe3..fb87a32f 100644 --- a/manager/app/src/main/res/values-fr/strings.xml +++ b/manager/app/src/main/res/values-fr/strings.xml @@ -239,8 +239,6 @@ Utilisez deux doigts pour zoomer l\'image, et un doigt pour le faire glisser pour ajuster la position Remise à disposition - Clignotement du noyau - Journaux: Flash terminé Préparation de… diff --git a/manager/app/src/main/res/values-hi/strings.xml b/manager/app/src/main/res/values-hi/strings.xml index 3f96d5e6..8803d039 100644 --- a/manager/app/src/main/res/values-hi/strings.xml +++ b/manager/app/src/main/res/values-hi/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-hr/strings.xml b/manager/app/src/main/res/values-hr/strings.xml index 56dd484a..779dda8d 100644 --- a/manager/app/src/main/res/values-hr/strings.xml +++ b/manager/app/src/main/res/values-hr/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-hu/strings.xml b/manager/app/src/main/res/values-hu/strings.xml index 578df62e..ba073b04 100644 --- a/manager/app/src/main/res/values-hu/strings.xml +++ b/manager/app/src/main/res/values-hu/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-in/strings.xml b/manager/app/src/main/res/values-in/strings.xml index 073eb041..87b07b07 100644 --- a/manager/app/src/main/res/values-in/strings.xml +++ b/manager/app/src/main/res/values-in/strings.xml @@ -244,8 +244,6 @@ Gunakan dua jari untuk memperbesar gambar, dan satu jari untuk menggeser mengatur posisi Reprovisi - Memasang Kernel - Log: Flash Selesai Mempersiapkan… diff --git a/manager/app/src/main/res/values-it/strings.xml b/manager/app/src/main/res/values-it/strings.xml index 87737fcb..d9a9d6f7 100644 --- a/manager/app/src/main/res/values-it/strings.xml +++ b/manager/app/src/main/res/values-it/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-ja/strings.xml b/manager/app/src/main/res/values-ja/strings.xml index 6776cbd6..5c5b1797 100644 --- a/manager/app/src/main/res/values-ja/strings.xml +++ b/manager/app/src/main/res/values-ja/strings.xml @@ -244,8 +244,6 @@ 2 本の指で画像を拡大、1 本の指でドラッグで位置を調整します。 再プロビジョニング - カーネルをフラッシュ - ログ: フラッシュが完了しました 準備中… diff --git a/manager/app/src/main/res/values-kn/strings.xml b/manager/app/src/main/res/values-kn/strings.xml index e551534f..6bbee86a 100644 --- a/manager/app/src/main/res/values-kn/strings.xml +++ b/manager/app/src/main/res/values-kn/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-ko/strings.xml b/manager/app/src/main/res/values-ko/strings.xml index e42cb42a..38e0ee15 100644 --- a/manager/app/src/main/res/values-ko/strings.xml +++ b/manager/app/src/main/res/values-ko/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-lt/strings.xml b/manager/app/src/main/res/values-lt/strings.xml index 547f7960..6987bed2 100644 --- a/manager/app/src/main/res/values-lt/strings.xml +++ b/manager/app/src/main/res/values-lt/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-lv/strings.xml b/manager/app/src/main/res/values-lv/strings.xml index 501fdcb1..3e70c165 100644 --- a/manager/app/src/main/res/values-lv/strings.xml +++ b/manager/app/src/main/res/values-lv/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-mr/strings.xml b/manager/app/src/main/res/values-mr/strings.xml index f7e6af8a..97473dce 100644 --- a/manager/app/src/main/res/values-mr/strings.xml +++ b/manager/app/src/main/res/values-mr/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-ms/strings.xml b/manager/app/src/main/res/values-ms/strings.xml index e2798d76..314575c0 100644 --- a/manager/app/src/main/res/values-ms/strings.xml +++ b/manager/app/src/main/res/values-ms/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-nl/strings.xml b/manager/app/src/main/res/values-nl/strings.xml index 062cf527..14dd8957 100644 --- a/manager/app/src/main/res/values-nl/strings.xml +++ b/manager/app/src/main/res/values-nl/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-pl/strings.xml b/manager/app/src/main/res/values-pl/strings.xml index 962d5891..9346f91e 100644 --- a/manager/app/src/main/res/values-pl/strings.xml +++ b/manager/app/src/main/res/values-pl/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-pt/strings.xml b/manager/app/src/main/res/values-pt/strings.xml index 4b5b3d5b..9a8406d2 100644 --- a/manager/app/src/main/res/values-pt/strings.xml +++ b/manager/app/src/main/res/values-pt/strings.xml @@ -237,8 +237,6 @@ Use dois dedos para ampliar a imagem e um dedo para arrastá-la para ajustar a posição Restituição - Kernel Flashing - Logs: Flash concluído Preparando… diff --git a/manager/app/src/main/res/values-ro/strings.xml b/manager/app/src/main/res/values-ro/strings.xml index 4503ee49..8e6affd2 100644 --- a/manager/app/src/main/res/values-ro/strings.xml +++ b/manager/app/src/main/res/values-ro/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-ru/strings.xml b/manager/app/src/main/res/values-ru/strings.xml index 5dedb4e1..5fc11044 100644 --- a/manager/app/src/main/res/values-ru/strings.xml +++ b/manager/app/src/main/res/values-ru/strings.xml @@ -244,8 +244,6 @@ Используйте два пальца для увеличения изображения, и один палец для изменения положения Реализация - Мигание ядра - Логи: Прошивка завершена Подготовка… diff --git a/manager/app/src/main/res/values-sl/strings.xml b/manager/app/src/main/res/values-sl/strings.xml index aae76354..85d14e86 100644 --- a/manager/app/src/main/res/values-sl/strings.xml +++ b/manager/app/src/main/res/values-sl/strings.xml @@ -237,8 +237,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-th/strings.xml b/manager/app/src/main/res/values-th/strings.xml index 42267acc..dafa5827 100644 --- a/manager/app/src/main/res/values-th/strings.xml +++ b/manager/app/src/main/res/values-th/strings.xml @@ -239,8 +239,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/app/src/main/res/values-tr/strings.xml b/manager/app/src/main/res/values-tr/strings.xml index 7f26c87e..4f36cc18 100644 --- a/manager/app/src/main/res/values-tr/strings.xml +++ b/manager/app/src/main/res/values-tr/strings.xml @@ -242,8 +242,6 @@ Görüntüyü yaklaştırmak için iki parmağınızı kullanın ve bir parmağınızla sürükleyerek konumu ayarlayın Yeniden sağla - Çekirdek Flash\'lama - Günlükler: Flash\'lama Tamamlandı Hazırlanıyor… diff --git a/manager/app/src/main/res/values-uk/strings.xml b/manager/app/src/main/res/values-uk/strings.xml index 2badcf97..39216a21 100644 --- a/manager/app/src/main/res/values-uk/strings.xml +++ b/manager/app/src/main/res/values-uk/strings.xml @@ -242,8 +242,6 @@ Використовуйте два пальці для масштабування зображення та один палець для перетягування, щоб налаштувати положення Переналаштувати - Прошивка ядра - Логи: Прошивка завершена Підготовка… diff --git a/manager/app/src/main/res/values-vi/strings.xml b/manager/app/src/main/res/values-vi/strings.xml index 44110c3d..40f4d086 100644 --- a/manager/app/src/main/res/values-vi/strings.xml +++ b/manager/app/src/main/res/values-vi/strings.xml @@ -242,8 +242,6 @@ Sử dụng hai ngón tay để phóng to hình ảnh và một ngón tay kéo thả để điều chỉnh vị trí Chọn lại - Kernel Flashing - Logs: Flash hoàn tất Chuẩn bị… 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 c5968f52..c5df4fad 100644 --- a/manager/app/src/main/res/values-zh-rCN/strings.xml +++ b/manager/app/src/main/res/values-zh-rCN/strings.xml @@ -242,8 +242,6 @@ 使用双指缩放图片,单指拖动调整位置 重置 - 刷写 Kernel - 日志: 刷写完成 准备中… diff --git a/manager/app/src/main/res/values-zh-rHK/strings.xml b/manager/app/src/main/res/values-zh-rHK/strings.xml index 0590f09e..9101fc76 100644 --- a/manager/app/src/main/res/values-zh-rHK/strings.xml +++ b/manager/app/src/main/res/values-zh-rHK/strings.xml @@ -239,8 +239,6 @@ 使用雙指縮放圖片,單指拖動調整位置 重置 - 刷寫 Kernel - 日誌: 刷寫完成 準備中… diff --git a/manager/app/src/main/res/values-zh-rTW/strings.xml b/manager/app/src/main/res/values-zh-rTW/strings.xml index 007d951f..6ce132f3 100644 --- a/manager/app/src/main/res/values-zh-rTW/strings.xml +++ b/manager/app/src/main/res/values-zh-rTW/strings.xml @@ -242,8 +242,6 @@ 使用雙指縮放圖片,單指拖曳調整位置 重置 - 刷寫內核 - 日誌: 刷寫完成 準備中… diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml index be898722..15faf5f0 100644 --- a/manager/app/src/main/res/values/strings.xml +++ b/manager/app/src/main/res/values/strings.xml @@ -244,8 +244,6 @@ Use two fingers to zoom the image, and one finger to drag it to adjust the position Reprovision - Kernel Flashing - Logs: Flash Complete Preparing… diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 25308e56..5e9f4188 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -1,10 +1,10 @@ [versions] accompanist-drawablepainter = "0.37.3" -agp = "8.12.0" +agp = "8.12.1" gson = "2.13.1" kotlin = "2.1.21" ksp = "2.1.21-2.0.1" -compose-bom = "2025.07.00" +compose-bom = "2025.08.00" lifecycle = "2.9.2" navigation = "2.9.3" activity-compose = "1.10.1" @@ -19,9 +19,9 @@ parcelablelist = "2.0.1" libsu = "6.0.0" apksign = "1.4" cmaker = "1.2" -compose-material = "1.8.3" +compose-material = "1.9.0" compose-material3 = "1.3.2" -compose-ui = "1.8.3" +compose-ui = "1.9.0" documentfile = "1.1.0" mmrl = "2bb00b3c2b"