manager: fix Markdown table rendering

This commit is contained in:
YuKongA
2025-11-27 14:46:15 +08:00
committed by shirkneko
parent 46cfd936a0
commit 8b06df3468
5 changed files with 24 additions and 9 deletions

View File

@@ -138,12 +138,15 @@ dependencies {
implementation(libs.kotlinx.coroutines.core) implementation(libs.kotlinx.coroutines.core)
implementation(libs.markdown)
implementation(libs.androidx.webkit) implementation(libs.androidx.webkit)
implementation(libs.lsposed.cxx) implementation(libs.lsposed.cxx)
implementation(libs.miuix) implementation(libs.miuix)
implementation(libs.haze) implementation(libs.haze)
implementation(libs.capsule) implementation(libs.capsule)
implementation(libs.twain)
} }

View File

@@ -29,6 +29,7 @@ import androidx.compose.ui.layout.Layout
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import com.colintheshots.twain.MarkdownText
import kotlinx.coroutines.CancellableContinuation import kotlinx.coroutines.CancellableContinuation
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.async import kotlinx.coroutines.async
@@ -417,7 +418,12 @@ private fun ConfirmDialog(
content = { content = {
visuals.content?.let { visuals.content?.let {
if (visuals.isMarkdown) { if (visuals.isMarkdown) {
MarkdownContent(content = visuals.content!!) MarkdownText(
markdown = visuals.content!!,
color = MiuixTheme.colorScheme.onSurface,
modifier = Modifier
.fillMaxWidth()
)
} else { } else {
Text(text = visuals.content!!) Text(text = visuals.content!!)
} }

View File

@@ -49,6 +49,7 @@ import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.lifecycle.viewmodel.compose.viewModel import androidx.lifecycle.viewmodel.compose.viewModel
import com.colintheshots.twain.MarkdownText
import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootGraph import com.ramcosta.composedestinations.annotation.RootGraph
import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination import com.ramcosta.composedestinations.generated.destinations.FlashScreenDestination
@@ -66,7 +67,6 @@ import kotlinx.coroutines.withContext
import kotlinx.parcelize.Parcelize import kotlinx.parcelize.Parcelize
import com.sukisu.ultra.R import com.sukisu.ultra.R
import com.sukisu.ultra.ksuApp 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.SearchBox
import com.sukisu.ultra.ui.component.SearchPager import com.sukisu.ultra.ui.component.SearchPager
import com.sukisu.ultra.ui.component.rememberConfirmDialog 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.Back
import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch import top.yukonga.miuix.kmp.icon.icons.useful.NavigatorSwitch
import top.yukonga.miuix.kmp.icon.icons.useful.Save 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.theme.MiuixTheme.colorScheme
import top.yukonga.miuix.kmp.utils.PressFeedbackType import top.yukonga.miuix.kmp.utils.PressFeedbackType
import top.yukonga.miuix.kmp.utils.getWindowSize import top.yukonga.miuix.kmp.utils.getWindowSize
@@ -621,7 +622,12 @@ fun ModuleRepoDetailScreen(
insideMargin = PaddingValues(16.dp) insideMargin = PaddingValues(16.dp)
) { ) {
Column { Column {
MarkdownContent(content = readmeText!!) MarkdownText(
markdown = readmeText!!,
color = colorScheme.onSurface,
modifier = Modifier
.fillMaxWidth()
)
} }
} }
} }

View File

@@ -116,7 +116,7 @@ fun SuperUserPager(
val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE) val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
if (viewModel.appList.value.isEmpty() || viewModel.isRefreshing) { if (viewModel.appList.value.isEmpty()) {
viewModel.showSystemApps = prefs.getBoolean("show_system_apps", false) viewModel.showSystemApps = prefs.getBoolean("show_system_apps", false)
viewModel.loadAppList() viewModel.loadAppList()
} }

View File

@@ -10,7 +10,7 @@ activity-compose = "1.11.0"
kotlinx-coroutines = "1.10.2" kotlinx-coroutines = "1.10.2"
coil-compose = "2.7.0" coil-compose = "2.7.0"
compose-destination = "2.3.0" compose-destination = "2.3.0"
markdown = "4.6.2" twain = "0.3.2"
webkit = "1.14.0" webkit = "1.14.0"
parcelablelist = "2.0.1" parcelablelist = "2.0.1"
ndk = "29.0.14206865" 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-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" } 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" } lsposed-cxx = { module = "org.lsposed.libcxx:libcxx", version.ref = "ndk" }
miuix = { module = "top.yukonga.miuix.kmp:miuix-android", version.ref = "miuix" } 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" } haze = { module = "dev.chrisbanes.haze:haze-android", version.ref = "haze" }
capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" } capsule = { module = "io.github.kyant0:capsule", version.ref = "capsule" }
twain = { module = "com.colintheshots:twain", version.ref = "twain" }
androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" } androidx-documentfile = { group = "androidx.documentfile", name = "documentfile", version.ref = "documentfile" }