Просмотр исходного кода

移除了边框设置(因为MIUIX主题暂不生效,在考虑搞个更通用的)

HapeLee 6 месяцев назад
Родитель
Сommit
14ac91246d

+ 0 - 15
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,

+ 0 - 10
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)

+ 4 - 68
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<List<FileDoc>>(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
                 }
             )

+ 1 - 44
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

+ 1 - 14
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 -> {

+ 2 - 26
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()

+ 0 - 15
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,

+ 1 - 14
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