diff --git a/app/src/main/java/io/legado/app/help/config/ThemeImportExport.kt b/app/src/main/java/io/legado/app/help/config/ThemeImportExport.kt index 42ff2d072..6473737d3 100644 --- a/app/src/main/java/io/legado/app/help/config/ThemeImportExport.kt +++ b/app/src/main/java/io/legado/app/help/config/ThemeImportExport.kt @@ -150,11 +150,6 @@ object ThemeImportExport { // 容器设置 containerOpacity = ThemeConfig.containerOpacity, - enableContainerBorder = ThemeConfig.enableContainerBorder, - containerBorderWidth = ThemeConfig.containerBorderWidth, - containerBorderStyle = ThemeConfig.containerBorderStyle, - containerBorderColor = ThemeConfig.containerBorderColor, - containerBorderDashWidth = ThemeConfig.containerBorderDashWidth, // 分割线设置 enableItemDivider = ThemeConfig.enableItemDivider, @@ -238,11 +233,6 @@ object ThemeImportExport { // 容器设置 ThemeConfig.containerOpacity = data.containerOpacity - ThemeConfig.enableContainerBorder = data.enableContainerBorder - ThemeConfig.containerBorderWidth = data.containerBorderWidth - ThemeConfig.containerBorderStyle = data.containerBorderStyle - ThemeConfig.containerBorderColor = data.containerBorderColor - ThemeConfig.containerBorderDashWidth = data.containerBorderDashWidth // 分割线设置 ThemeConfig.enableItemDivider = data.enableItemDivider @@ -379,11 +369,6 @@ data class ThemeExportData( // 容器设置 val containerOpacity: Int = 100, - val enableContainerBorder: Boolean = false, - val containerBorderWidth: Float = 1f, - val containerBorderStyle: String = "solid", - val containerBorderColor: Int = 0, - val containerBorderDashWidth: Float = 4f, // 分割线设置 val enableItemDivider: Boolean = false, diff --git a/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfig.kt b/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfig.kt index a7b9f240f..a1213281f 100644 --- a/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfig.kt +++ b/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfig.kt @@ -98,16 +98,6 @@ object ThemeConfig { var labelContainerColor by prefDelegate(PreferKey.labelContainerColor, 0) - var enableContainerBorder by prefDelegate(PreferKey.enableContainerBorder, false) - - var containerBorderWidth by prefDelegate(PreferKey.containerBorderWidth, 1f) - - var containerBorderStyle by prefDelegate(PreferKey.containerBorderStyle, "solid") - - var containerBorderColor by prefDelegate(PreferKey.containerBorderColor, 0) - - var containerBorderDashWidth by prefDelegate(PreferKey.containerBorderDashWidth, 4f) - var enableItemDivider by prefDelegate(PreferKey.enableItemDivider, false) var itemDividerWidth by prefDelegate(PreferKey.itemDividerWidth, 1f) diff --git a/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt b/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt index d207d2822..989d01199 100644 --- a/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt +++ b/app/src/main/java/io/legado/app/ui/config/themeConfig/ThemeConfigScreen.kt @@ -136,7 +136,6 @@ fun ThemeConfigScreen( var showRestartDialog by remember { mutableStateOf(false) } var showLauncherIconPicker by remember { mutableStateOf(false) } var showBorderColorPicker by remember { mutableStateOf(false) } - var currentBorderColorKey by remember { mutableStateOf("containerBorderColor") } var showNavIconSheet by remember { mutableStateOf(false) } var showFontSheet by remember { mutableStateOf(false) } var fontItems by remember { mutableStateOf>(emptyList()) } @@ -609,62 +608,9 @@ fun ThemeConfigScreen( } } - // Border settings + // Container settings item { SplicedColumnGroup(title = "容器设置") { - SwitchSettingItem( - title = "显示容器边框", - checked = ThemeConfig.enableContainerBorder, - onCheckedChange = { ThemeConfig.enableContainerBorder = it } - ) - if (ThemeConfig.enableContainerBorder) { - SliderSettingItem( - title = "边框粗细", - description = "${ThemeConfig.containerBorderWidth}dp", - value = ThemeConfig.containerBorderWidth, - defaultValue = 1f, - valueRange = 0f..5f, - steps = 49, - onValueChange = { ThemeConfig.containerBorderWidth = it } - ) - DropdownListSettingItem( - title = "边框样式", - selectedValue = ThemeConfig.containerBorderStyle, - displayEntries = arrayOf("实线", "虚线"), - entryValues = arrayOf("solid", "dashed"), - onValueChange = { ThemeConfig.containerBorderStyle = it } - ) - if (ThemeConfig.containerBorderStyle == "dashed") { - SliderSettingItem( - title = "虚线间隔", - description = "${ThemeConfig.containerBorderDashWidth}dp", - value = ThemeConfig.containerBorderDashWidth, - defaultValue = 4f, - valueRange = 1f..10f, - steps = 89, - onValueChange = { ThemeConfig.containerBorderDashWidth = it } - ) - } - ClickableSettingItem( - title = "边框颜色", - option = if (ThemeConfig.containerBorderColor != 0) "#${Integer.toHexString(ThemeConfig.containerBorderColor).uppercase()}" else stringResource(R.string.click_to_select), - onClick = { - currentBorderColorKey = "containerBorderColor" - showBorderColorPicker = true - }, - trailingContent = { - if (ThemeConfig.containerBorderColor != 0) { - Box( - modifier = Modifier - .size(28.dp) - .clip(CircleShape) - .background(Color(ThemeConfig.containerBorderColor)) - .border(1.dp, MaterialTheme.colorScheme.outlineVariant, CircleShape) - ) - } - } - ) - } SwitchSettingItem( title = "显示分割线", checked = ThemeConfig.enableItemDivider, @@ -693,7 +639,6 @@ fun ThemeConfigScreen( title = "分割线颜色", option = if (ThemeConfig.itemDividerColor != 0) "#${Integer.toHexString(ThemeConfig.itemDividerColor).uppercase()}" else stringResource(R.string.click_to_select), onClick = { - currentBorderColorKey = "itemDividerColor" showBorderColorPicker = true }, trailingContent = { @@ -790,17 +735,11 @@ fun ThemeConfigScreen( ColorPickerSheet( show = showBorderColorPicker, - initialColor = when (currentBorderColorKey) { - "containerBorderColor" -> ThemeConfig.containerBorderColor - "itemDividerColor" -> ThemeConfig.itemDividerColor - else -> 0 - }, + initialColor = ThemeConfig.itemDividerColor, onDismissRequest = { showBorderColorPicker = false }, onColorSelected = { - when (currentBorderColorKey) { - "containerBorderColor" -> ThemeConfig.containerBorderColor = it - "itemDividerColor" -> ThemeConfig.itemDividerColor = it - } + ThemeConfig.itemDividerColor = it + showBorderColorPicker = false } ) @@ -813,10 +752,7 @@ fun ThemeConfigScreen( imageVector = Icons.Default.Delete, contentDescription = "清除", onClick = { - fontFolderUri = null - context.putPrefString(PreferKey.fontFolder, "") ThemeConfig.appFontPath = null - fontItems = emptyList() showFontSheet = false } ) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt index af7899eb6..0d5f1359a 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BookItem.kt @@ -5,7 +5,6 @@ import androidx.compose.animation.ExperimentalSharedTransitionApi import androidx.compose.animation.SharedTransitionScope import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.background -import androidx.compose.foundation.border import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -29,16 +28,10 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip -import androidx.compose.ui.draw.drawWithContent import androidx.compose.ui.draw.shadow -import androidx.compose.ui.geometry.CornerRadius -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.geometry.Size import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.PathEffect import androidx.compose.ui.graphics.Shadow -import androidx.compose.ui.graphics.drawscope.Stroke import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -101,41 +94,6 @@ fun BookshelfItem( LegadoTheme.colorScheme.cardContainer } - val borderWidth = ThemeConfig.containerBorderWidth.dp - val borderColor = if (ThemeConfig.containerBorderColor != 0) { - Color(ThemeConfig.containerBorderColor) - } else { - LegadoTheme.colorScheme.outline - } - val borderStyle = ThemeConfig.containerBorderStyle - val enableBorder = ThemeConfig.enableDeepPersonalization && ThemeConfig.enableContainerBorder - - val borderModifier = if (enableBorder && borderStyle == "solid") { - Modifier.border(borderWidth, borderColor, MaterialTheme.shapes.small) - } else if (enableBorder) { - val dashWidth = ThemeConfig.containerBorderDashWidth - val pathEffect = when (borderStyle) { - "dashed" -> PathEffect.dashPathEffect(floatArrayOf(dashWidth, dashWidth)) - "dotted" -> PathEffect.dashPathEffect(floatArrayOf(dashWidth / 2, dashWidth)) - else -> null - } - Modifier.drawWithContent { - drawContent() - val cornerRadius = CornerRadius(8.dp.toPx(), 8.dp.toPx()) - val halfStroke = borderWidth.toPx() / 2 - drawRoundRect( - color = borderColor, - topLeft = Offset(halfStroke, halfStroke), - size = Size(size.width - borderWidth.toPx(), size.height - borderWidth.toPx()), - cornerRadius = cornerRadius, - style = Stroke(width = borderWidth.toPx(), pathEffect = pathEffect) - ) - } - } else { - LegadoTheme.colorScheme.surface.copy(alpha = 0f) - Modifier - } - if (isGrid) { Box( modifier = modifier @@ -209,8 +167,7 @@ fun BookshelfItem( NormalCard( modifier = modifier .fillMaxWidth() - .padding(all = 4.dp) - .then(borderModifier), + .padding(all = 4.dp), cornerRadius = 8.dp, containerColor = if (isSelected) { LegadoTheme.colorScheme.secondaryContainer diff --git a/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt b/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt index 3cecfb9a2..7ce8fc8a5 100644 --- a/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt +++ b/app/src/main/java/io/legado/app/ui/rss/article/RssArticlesCompose.kt @@ -1,7 +1,6 @@ package io.legado.app.ui.rss.article import androidx.compose.foundation.background -import androidx.compose.foundation.border import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -67,7 +66,6 @@ import io.legado.app.ui.widget.components.cover.buildCoverImageRequest import io.legado.app.utils.toastOnUi import io.legado.app.ui.config.themeConfig.ThemeConfig import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.Dp import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.flow.catch import kotlinx.coroutines.flow.flowOn @@ -356,22 +354,11 @@ private fun RssArticleItem( RssArticleLayout.Waterfall -> 3 } - // 边框设置 - val borderModifier = if (ThemeConfig.enableContainerBorder) { - Modifier.border( - width = Dp(ThemeConfig.containerBorderWidth), - color = Color(ThemeConfig.containerBorderColor), - shape = RoundedCornerShape(12.dp) - ) - } else { - Modifier - } - GlassCard( onClick = { onClick(article) }, cornerRadius = 12.dp, containerColor = containerColor, - modifier = Modifier.fillMaxWidth().then(borderModifier) + modifier = Modifier.fillMaxWidth() ) { when (layout) { RssArticleLayout.List -> { diff --git a/app/src/main/java/io/legado/app/ui/widget/components/SplicedColumnGroup.kt b/app/src/main/java/io/legado/app/ui/widget/components/SplicedColumnGroup.kt index 4e6f64d26..b3c8d088a 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/SplicedColumnGroup.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/SplicedColumnGroup.kt @@ -1,14 +1,12 @@ package io.legado.app.ui.widget.components import androidx.compose.animation.animateContentSize -import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.ColumnScope import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.compositionLocalOf @@ -44,13 +42,6 @@ fun SplicedColumnGroup( items: @Composable ColumnScope.() -> Unit, ) { val composeEngine = LegadoTheme.composeEngine - val enableBorder = ThemeConfig.enableContainerBorder - val borderWidth = ThemeConfig.containerBorderWidth.dp - val borderColor = if (ThemeConfig.containerBorderColor != 0) { - Color(ThemeConfig.containerBorderColor) - } else { - MaterialTheme.colorScheme.outline - } val enableItemDivider = ThemeConfig.enableItemDivider val currentIndex = remember { mutableIntStateOf(0) } @@ -88,23 +79,8 @@ fun SplicedColumnGroup( modifier = Modifier .fillMaxWidth() .animateContentSize() - .clip(RoundedCornerShape(16.dp)) - .then( - if (enableBorder) { - Modifier.border( - width = borderWidth, - color = borderColor, - shape = RoundedCornerShape(16.dp) - ) - } else { - Modifier - } - ), - verticalArrangement = if (enableBorder) { - Arrangement.spacedBy(0.dp) - } else { - Arrangement.spacedBy(2.dp) - } + .clip(RoundedCornerShape(16.dp)), + verticalArrangement = Arrangement.spacedBy(2.dp) ) { currentIndex.intValue = 0 items() diff --git a/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindItem.kt b/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindItem.kt index 278a643d3..449040ab1 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindItem.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindItem.kt @@ -1,6 +1,5 @@ package io.legado.app.ui.widget.components.explore -import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding @@ -40,14 +39,6 @@ fun ExploreKindItem( val cornerRadius = 12.dp - val enableBorder = ThemeConfig.enableDeepPersonalization && ThemeConfig.enableContainerBorder - val borderWidth = (ThemeConfig.containerBorderWidth - 0.8f).coerceAtLeast(0.1f).dp - val borderColor = if (ThemeConfig.containerBorderColor != 0) { - androidx.compose.ui.graphics.Color(ThemeConfig.containerBorderColor) - } else { - LegadoTheme.colorScheme.outline - } - if (isClickable) { GlassCard( onClick = onClick, @@ -55,9 +46,6 @@ fun ExploreKindItem( containerColor = backgroundColor, contentColor = LegadoTheme.colorScheme.onSurface, modifier = modifier, - border = if (enableBorder) { - BorderStroke(borderWidth, borderColor) - } else null ) { KindText( text = displayText, @@ -71,9 +59,6 @@ fun ExploreKindItem( containerColor = backgroundColor, contentColor = LegadoTheme.colorScheme.primary, modifier = modifier, - border = if (enableBorder) { - BorderStroke(borderWidth, borderColor) - } else BorderStroke(1.dp, LegadoTheme.colorScheme.outlineVariant) ) { KindText( text = displayText, diff --git a/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt b/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt index bb5f9df0e..a0c79d311 100644 --- a/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt +++ b/app/src/main/java/io/legado/app/ui/widget/components/explore/ExploreKindMultiTypeItem.kt @@ -2,9 +2,7 @@ package io.legado.app.ui.widget.components.explore import androidx.appcompat.app.AppCompatActivity import androidx.compose.foundation.background -import androidx.compose.foundation.border import androidx.compose.foundation.interaction.MutableInteractionSource -import androidx.compose.foundation.interaction.collectIsFocusedAsState import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height @@ -320,17 +318,7 @@ private fun ExploreKindCompactTextField( isMiuix: Boolean ) { val interactionSource = remember { MutableInteractionSource() } - val isFocused by interactionSource.collectIsFocusedAsState() val shape = RoundedCornerShape(10.dp) - val enableBorder = ThemeConfig.enableDeepPersonalization && ThemeConfig.enableContainerBorder - val borderWidth = ThemeConfig.containerBorderWidth.dp - val borderColor = if (ThemeConfig.containerBorderColor != 0) { - Color(ThemeConfig.containerBorderColor) - } else if (isFocused) { - LegadoTheme.colorScheme.primary - } else { - Color.Transparent - } BasicTextField( value = value, @@ -342,8 +330,7 @@ private fun ExploreKindCompactTextField( modifier = modifier .height(34.dp) .clip(shape) - .background(backgroundColor) - .border(width = borderWidth, color = borderColor, shape = shape), + .background(backgroundColor), decorationBox = { innerTextField -> Box( modifier = Modifier