From 8b06df3468967cae8cca9636a636b99d7f2a456e Mon Sep 17 00:00:00 2001 From: YuKongA <70465933+YuKongA@users.noreply.github.com> Date: Thu, 27 Nov 2025 14:46:15 +0800 Subject: [PATCH] manager: fix Markdown table rendering --- manager/app/build.gradle.kts | 5 ++++- .../main/java/com/sukisu/ultra/ui/component/Dialog.kt | 8 +++++++- .../main/java/com/sukisu/ultra/ui/screen/ModuleRepo.kt | 10 ++++++++-- .../main/java/com/sukisu/ultra/ui/screen/SuperUser.kt | 2 +- manager/gradle/libs.versions.toml | 8 ++++---- 5 files changed, 24 insertions(+), 9 deletions(-) diff --git a/manager/app/build.gradle.kts b/manager/app/build.gradle.kts index 6ffee22c..0da361dd 100644 --- a/manager/app/build.gradle.kts +++ b/manager/app/build.gradle.kts @@ -138,12 +138,15 @@ dependencies { implementation(libs.kotlinx.coroutines.core) - implementation(libs.markdown) implementation(libs.androidx.webkit) implementation(libs.lsposed.cxx) implementation(libs.miuix) + implementation(libs.haze) + implementation(libs.capsule) + + implementation(libs.twain) } \ No newline at end of file diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/component/Dialog.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/component/Dialog.kt index d32e4ecf..e7c6852c 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/component/Dialog.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/component/Dialog.kt @@ -29,6 +29,7 @@ import androidx.compose.ui.layout.Layout import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp +import com.colintheshots.twain.MarkdownText import kotlinx.coroutines.CancellableContinuation import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.async @@ -417,7 +418,12 @@ private fun ConfirmDialog( content = { visuals.content?.let { if (visuals.isMarkdown) { - MarkdownContent(content = visuals.content!!) + MarkdownText( + markdown = visuals.content!!, + color = MiuixTheme.colorScheme.onSurface, + modifier = Modifier + .fillMaxWidth() + ) } else { Text(text = visuals.content!!) } diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ModuleRepo.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ModuleRepo.kt index 539511c1..1e819daf 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ModuleRepo.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/ModuleRepo.kt @@ -49,6 +49,7 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.lifecycle.viewmodel.compose.viewModel +import com.colintheshots.twain.MarkdownText import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination @@ -66,7 +67,6 @@ import kotlinx.coroutines.withContext import kotlinx.parcelize.Parcelize import com.sukisu.ultra.R import com.sukisu.ultra.ksuApp -import com.sukisu.ultra.ui.component.MarkdownContent import com.sukisu.ultra.ui.component.SearchBox import com.sukisu.ultra.ui.component.SearchPager import com.sukisu.ultra.ui.component.rememberConfirmDialog @@ -92,6 +92,7 @@ import top.yukonga.miuix.kmp.icon.MiuixIcons import top.yukonga.miuix.kmp.icon.icons.useful.Back import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch import top.yukonga.miuix.kmp.icon.icons.useful.Save +import top.yukonga.miuix.kmp.theme.MiuixTheme import top.yukonga.miuix.kmp.theme.MiuixTheme.colorScheme import top.yukonga.miuix.kmp.utils.PressFeedbackType import top.yukonga.miuix.kmp.utils.getWindowSize @@ -621,7 +622,12 @@ fun ModuleRepoDetailScreen( insideMargin = PaddingValues(16.dp) ) { Column { - MarkdownContent(content = readmeText!!) + MarkdownText( + markdown = readmeText!!, + color = colorScheme.onSurface, + modifier = Modifier + .fillMaxWidth() + ) } } } diff --git a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/SuperUser.kt b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/SuperUser.kt index 1d4b2e20..4487ec36 100644 --- a/manager/app/src/main/java/com/sukisu/ultra/ui/screen/SuperUser.kt +++ b/manager/app/src/main/java/com/sukisu/ultra/ui/screen/SuperUser.kt @@ -116,7 +116,7 @@ fun SuperUserPager( val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) LaunchedEffect(Unit) { - if (viewModel.appList.value.isEmpty() || viewModel.isRefreshing) { + if (viewModel.appList.value.isEmpty()) { viewModel.showSystemApps = prefs.getBoolean("show_system_apps", false) viewModel.loadAppList() } diff --git a/manager/gradle/libs.versions.toml b/manager/gradle/libs.versions.toml index 4323032c..5ad6d1ae 100644 --- a/manager/gradle/libs.versions.toml +++ b/manager/gradle/libs.versions.toml @@ -10,7 +10,7 @@ activity-compose = "1.11.0" kotlinx-coroutines = "1.10.2" coil-compose = "2.7.0" compose-destination = "2.3.0" -markdown = "4.6.2" +twain = "0.3.2" webkit = "1.14.0" parcelablelist = "2.0.1" ndk = "29.0.14206865" @@ -66,8 +66,6 @@ kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-c compose-destinations-core = { group = "io.github.raamcosta.compose-destinations", name = "core", version.ref = "compose-destination" } compose-destinations-ksp = { group = "io.github.raamcosta.compose-destinations", name = "ksp", version.ref = "compose-destination" } -markdown = { group = "io.noties.markwon", name = "core", version.ref = "markdown" } - lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version.ref = "ndk" } miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix" } @@ -75,4 +73,6 @@ miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix" haze = { module = "dev.chrisbanes.haze:haze-android", version.ref = "haze" } capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" } -androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" } \ No newline at end of file +twain = { module = "com.colintheshots:twain", version.ref = "twain" } + +androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" }