[优化] 修复一些稳定性和界面问题

This commit is contained in:
HapeLee committed 2026-04-03 12:56:28 +08:00
1 parent 2e7516245e
commit 8b7780374d
11 files changed
+46 -29

No files matched your search

@@ -690,14 +690,14 @@ fun ExploreBookGridItem(
@Composable @Composable
fun TagChip(text: String) { fun TagChip(text: String) {
Surface( Surface(
color = MaterialTheme.colorScheme.primaryContainer.copy(alpha = 0.5f), color = LegadoTheme.colorScheme.cardContainer,
shape = RoundedCornerShape(4.dp) shape = RoundedCornerShape(4.dp)
) { ) {
AppText( AppText(
text = text, text = text,
modifier = Modifier.padding(horizontal = 4.dp, vertical = 2.dp), modifier = Modifier.padding(horizontal = 4.dp, vertical = 2.dp),
style = LegadoTheme.typography.labelSmall, style = LegadoTheme.typography.labelSmall,
color = MaterialTheme.colorScheme.primary color = LegadoTheme.colorScheme.onCardContainer
) )
} }
} }
@@ -85,6 +85,7 @@ import io.legado.app.ui.widget.components.EmptyMessageView
import io.legado.app.ui.widget.components.SelectionActions import io.legado.app.ui.widget.components.SelectionActions
import io.legado.app.ui.widget.components.button.SmallIconButton import io.legado.app.ui.widget.components.button.SmallIconButton
import io.legado.app.ui.widget.components.button.SmallTonalIconButton import io.legado.app.ui.widget.components.button.SmallTonalIconButton
import io.legado.app.ui.widget.components.card.GlassCard
import io.legado.app.ui.widget.components.card.TextCard import io.legado.app.ui.widget.components.card.TextCard
import io.legado.app.ui.widget.components.list.ListScaffold import io.legado.app.ui.widget.components.list.ListScaffold
import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenuItem import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenuItem
@@ -608,12 +609,9 @@ private fun PathNavigationBar(
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.spacedBy(8.dp) horizontalArrangement = Arrangement.spacedBy(8.dp)
) { ) {
GlassCard(
Card(
modifier = Modifier.weight(1f), modifier = Modifier.weight(1f),
colors = CardDefaults.cardColors( containerColor = LegadoTheme.colorScheme.surfaceContainer,
containerColor = MaterialTheme.colorScheme.surfaceContainer
),
shape = MaterialTheme.shapes.medium shape = MaterialTheme.shapes.medium
) { ) {
LazyRow( LazyRow(
@@ -676,17 +674,17 @@ private fun RemoteBookItem(
onUpdateClick: (RemoteBook) -> Unit onUpdateClick: (RemoteBook) -> Unit
) { ) {
val containerColor = if (isSelected) { val containerColor = if (isSelected) {
MaterialTheme.colorScheme.secondaryContainer LegadoTheme.colorScheme.secondaryContainer
} else { } else {
MaterialTheme.colorScheme.surfaceContainerLow LegadoTheme.colorScheme.surfaceContainerLow
} }
Card( GlassCard(
modifier = modifier modifier = modifier
.fillMaxWidth() .fillMaxWidth()
.padding(horizontal = 16.dp, vertical = 4.dp), .padding(horizontal = 16.dp, vertical = 4.dp),
onClick = onClick, onClick = onClick,
colors = CardDefaults.cardColors(containerColor = containerColor) containerColor = containerColor
) { ) {
Row( Row(
modifier = Modifier modifier = Modifier
@@ -704,9 +702,9 @@ private fun RemoteBookItem(
contentDescription = null, contentDescription = null,
modifier = Modifier.size(20.dp), modifier = Modifier.size(20.dp),
tint = if (book.isDir) { tint = if (book.isDir) {
MaterialTheme.colorScheme.primary LegadoTheme.colorScheme.primary
} else { } else {
MaterialTheme.colorScheme.onSurfaceVariant LegadoTheme.colorScheme.onSurfaceVariant
} }
) )
@@ -737,7 +735,7 @@ private fun RemoteBookItem(
verticalPadding = 2.dp, verticalPadding = 2.dp,
cornerRadius = 4.dp, cornerRadius = 4.dp,
icon = null, icon = null,
backgroundColor = MaterialTheme.colorScheme.surfaceContainerHighest backgroundColor = LegadoTheme.colorScheme.surfaceContainerHighest
) )
Spacer(modifier = Modifier.width(6.dp)) Spacer(modifier = Modifier.width(6.dp))
@@ -748,7 +746,7 @@ private fun RemoteBookItem(
AppConst.dateFormat.format(book.lastModify) AppConst.dateFormat.format(book.lastModify)
}", }",
style = LegadoTheme.typography.labelMedium, style = LegadoTheme.typography.labelMedium,
color = MaterialTheme.colorScheme.onSurfaceVariant color = LegadoTheme.colorScheme.onSurfaceVariant
) )
} }
} }
@@ -594,9 +594,12 @@ fun TocScreen(
} }
} }
val bookmarkForSheet = editingBookmark ?: remember(editingBookmark == null) {
Bookmark()
}
BookmarkEditSheet( BookmarkEditSheet(
show = editingBookmark != null, show = editingBookmark != null,
bookmark = editingBookmark!!, bookmark = bookmarkForSheet,
onDismiss = { editingBookmark = null }, onDismiss = { editingBookmark = null },
onSave = { updatedBookmark -> onSave = { updatedBookmark ->
viewModel.updateBookmark(updatedBookmark) viewModel.updateBookmark(updatedBookmark)
@@ -251,12 +251,14 @@ fun CoverConfigScreen(
onDismissRequest = { showCoverRuleSheet = false } onDismissRequest = { showCoverRuleSheet = false }
) )
CoverManageSheet( manageKey?.let { key ->
show = manageKey != null, CoverManageSheet(
preferenceKey = manageKey!!, show = true,
onDismissRequest = { manageKey = null }, preferenceKey = key,
viewModel = viewModel onDismissRequest = { manageKey = null },
) viewModel = viewModel
)
}
showColorPickerByField?.let { field -> showColorPickerByField?.let { field ->
val initialColor = when (field) { val initialColor = when (field) {
@@ -13,7 +13,6 @@ import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add import androidx.compose.material.icons.filled.Add
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
@@ -29,6 +28,7 @@ import io.legado.app.R
import io.legado.app.data.entities.BookGroup import io.legado.app.data.entities.BookGroup
import io.legado.app.ui.book.group.GroupEditContent import io.legado.app.ui.book.group.GroupEditContent
import io.legado.app.ui.book.group.GroupViewModel import io.legado.app.ui.book.group.GroupViewModel
import io.legado.app.ui.theme.LegadoTheme
import io.legado.app.ui.widget.components.button.SmallIconButton import io.legado.app.ui.widget.components.button.SmallIconButton
import io.legado.app.ui.widget.components.card.ReorderableSelectionItem import io.legado.app.ui.widget.components.card.ReorderableSelectionItem
import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet
@@ -115,7 +115,7 @@ fun GroupManageSheet(
title = group.groupName.ifBlank { manageNameInfo.suffix.orEmpty() }, title = group.groupName.ifBlank { manageNameInfo.suffix.orEmpty() },
subtitle = if (group.groupName.isNotBlank()) manageNameInfo.suffix else null, subtitle = if (group.groupName.isNotBlank()) manageNameInfo.suffix else null,
isEnabled = group.show, isEnabled = group.show,
containerColor = MaterialTheme.colorScheme.surface, containerColor = LegadoTheme.colorScheme.surface,
onEnabledChange = { isChecked -> onEnabledChange = { isChecked ->
viewModel.upGroup(group.copy(show = isChecked)) viewModel.upGroup(group.copy(show = isChecked))
}, },
@@ -538,6 +538,10 @@ private fun KindText(
) { ) {
AppText( AppText(
text = kind.title, text = kind.title,
color = if (kind.url.isNullOrBlank())
LegadoTheme.colorScheme.primary
else
LegadoTheme.colorScheme.onSurface,
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(vertical = 8.dp), .padding(vertical = 8.dp),
@@ -180,7 +180,10 @@ fun AppTheme(
tertiaryFixed = miuixColorScheme.tertiaryContainer, tertiaryFixed = miuixColorScheme.tertiaryContainer,
tertiaryFixedDim = miuixColorScheme.tertiaryContainerVariant, tertiaryFixedDim = miuixColorScheme.tertiaryContainerVariant,
onTertiaryFixed = miuixColorScheme.onTertiaryContainer, onTertiaryFixed = miuixColorScheme.onTertiaryContainer,
onTertiaryFixedVariant = miuixColorScheme.onTertiaryContainer onTertiaryFixedVariant = miuixColorScheme.onTertiaryContainer,
cardContainer = miuixColorScheme.tertiaryContainer,
onCardContainer = miuixColorScheme.primary
) )
} }
@@ -282,7 +285,10 @@ fun AppTheme(
tertiaryFixed = colorScheme.tertiaryFixed, tertiaryFixed = colorScheme.tertiaryFixed,
tertiaryFixedDim = colorScheme.tertiaryFixedDim, tertiaryFixedDim = colorScheme.tertiaryFixedDim,
onTertiaryFixed = colorScheme.onTertiaryFixed, onTertiaryFixed = colorScheme.onTertiaryFixed,
onTertiaryFixedVariant = colorScheme.onTertiaryFixedVariant onTertiaryFixedVariant = colorScheme.onTertiaryFixedVariant,
cardContainer = colorScheme.primaryContainer.copy(alpha = 0.5f),
onCardContainer = colorScheme.primary
) )
} }
@@ -71,6 +71,9 @@ data class LegadoColorScheme(
val tertiaryFixedDim: Color, val tertiaryFixedDim: Color,
val onTertiaryFixed: Color, val onTertiaryFixed: Color,
val onTertiaryFixedVariant: Color, val onTertiaryFixedVariant: Color,
val cardContainer: Color,
val onCardContainer: Color
) )
data class LegadoTypography( data class LegadoTypography(
@@ -35,8 +35,7 @@ private fun BaseCard(
) { ) {
if (ThemeResolver.isMiuixEngine(LegadoTheme.composeEngine)) { if (ThemeResolver.isMiuixEngine(LegadoTheme.composeEngine)) {
val colors = MiuixCardDefaults.defaultColors( val colors = MiuixCardDefaults.defaultColors(
color = (containerColor color = (containerColor ?: MiuixTheme.colorScheme.secondaryContainer.copy(alpha)),
?: MiuixTheme.colorScheme.secondaryContainer).copy(alpha = alpha),
contentColor = contentColor ?: MiuixTheme.colorScheme.onSurface contentColor = contentColor ?: MiuixTheme.colorScheme.onSurface
) )
MiuixCard( MiuixCard(
@@ -41,6 +41,8 @@ fun BookshelfCover(
TextCard( TextCard(
text = badgeText, text = badgeText,
icon = if (showBadgeDot) Icons.Default.Update else null, icon = if (showBadgeDot) Icons.Default.Update else null,
backgroundColor = LegadoTheme.colorScheme.cardContainer,
contentColor = LegadoTheme.colorScheme.onCardContainer,
modifier = Modifier modifier = Modifier
.align(Alignment.TopEnd) .align(Alignment.TopEnd)
.padding(2.dp), .padding(2.dp),
@@ -41,7 +41,7 @@ fun AppModalBottomSheet(
title: String? = null, title: String? = null,
startAction: @Composable (() -> Unit)? = null, startAction: @Composable (() -> Unit)? = null,
endAction: @Composable (() -> Unit)? = null, endAction: @Composable (() -> Unit)? = null,
containerColor: Color = LegadoTheme.colorScheme.surfaceContainerLow, containerColor: Color = LegadoTheme.colorScheme.surfaceContainer,
content: @Composable ColumnScope.() -> Unit content: @Composable ColumnScope.() -> Unit
) { ) {
if (ThemeResolver.isMiuixEngine(LegadoTheme.composeEngine)) { if (ThemeResolver.isMiuixEngine(LegadoTheme.composeEngine)) {