HapeLee 3 месяцев назад
Родитель
Сommit
12b0726845

+ 93 - 45
app/src/main/java/io/legado/app/ui/book/manage/BookshelfManageScreen.kt

@@ -25,6 +25,7 @@ import androidx.compose.foundation.lazy.LazyColumn
 import androidx.compose.foundation.lazy.items
 import androidx.compose.foundation.lazy.itemsIndexed
 import androidx.compose.foundation.lazy.rememberLazyListState
+import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material.icons.Icons
 import androidx.compose.material.icons.filled.Add
 import androidx.compose.material.icons.filled.Bookmarks
@@ -41,6 +42,7 @@ import androidx.compose.material.icons.filled.Stop
 import androidx.compose.material.icons.filled.Upload
 import androidx.compose.material3.Checkbox
 import androidx.compose.material3.RadioButton
+import androidx.compose.material3.VerticalDivider
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -52,6 +54,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
 import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
 import androidx.compose.ui.focus.FocusRequester
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.stringResource
@@ -78,13 +81,12 @@ import io.legado.app.ui.theme.LegadoTheme
 import io.legado.app.ui.theme.LegadoTheme.composeEngine
 import io.legado.app.ui.theme.ThemeResolver
 import io.legado.app.ui.theme.adaptiveContentPadding
-import io.legado.app.ui.theme.adaptiveHorizontalPadding
 import io.legado.app.ui.widget.components.AppFloatingActionButtonMenu
 import io.legado.app.ui.widget.components.AppTextField
 import io.legado.app.ui.widget.components.FabMenuItem
 import io.legado.app.ui.widget.components.alert.AppAlertDialog
-import io.legado.app.ui.widget.components.button.series.SmallTonalButton
 import io.legado.app.ui.widget.components.button.series.MediumTonalButton
+import io.legado.app.ui.widget.components.button.series.SmallTonalButton
 import io.legado.app.ui.widget.components.card.GlassCard
 import io.legado.app.ui.widget.components.card.ReorderableSelectionItem
 import io.legado.app.ui.widget.components.card.SelectionItemCard
@@ -99,10 +101,10 @@ import io.legado.app.ui.widget.components.log.AppLogSheet
 import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenu
 import io.legado.app.ui.widget.components.menuItem.RoundDropdownMenuItem
 import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet
-import io.legado.app.ui.widget.components.reorderAccessibility
 import io.legado.app.ui.widget.components.modalBottomSheet.OptionCard
 import io.legado.app.ui.widget.components.modalBottomSheet.OptionSheet
 import io.legado.app.ui.widget.components.progressIndicator.AppCircularProgressIndicator
+import io.legado.app.ui.widget.components.reorderAccessibility
 import io.legado.app.ui.widget.components.text.AppText
 import io.legado.app.ui.widget.components.topbar.TopBarActionButton
 import io.legado.app.utils.ACache
@@ -712,11 +714,13 @@ private fun BookshelfManageScreen(
                         Column(
                             modifier = Modifier
                                 .fillMaxWidth()
-                                .adaptiveHorizontalPadding(vertical = 12.dp),
+                                .padding(vertical = 12.dp, horizontal = 4.dp),
                             verticalArrangement = Arrangement.SpaceBetween
                         ) {
                             Row(
-                                modifier = Modifier.fillMaxWidth(),
+                                modifier = Modifier
+                                    .fillMaxWidth()
+                                    .padding(horizontal = 4.dp),
                                 horizontalArrangement = Arrangement.spacedBy(8.dp)
                             ) {
                                 Column(
@@ -725,14 +729,27 @@ private fun BookshelfManageScreen(
                                 ) {
                                     AppText(
                                         text = book.name,
+                                        modifier = Modifier
+                                            .clip(RoundedCornerShape(4.dp))
+                                            .clickable {
+                                                viewModel.dispatch(
+                                                    BookshelfManageScreenIntent.OpenBookInfoPreview(
+                                                        book,
+                                                        true
+                                                    )
+                                                )
+                                            }
+                                            .padding(horizontal = 4.dp),
                                         style = LegadoTheme.typography.titleSmallEmphasized,
                                         maxLines = 1
                                     )
                                     AppText(
+                                        modifier = Modifier.padding(horizontal = 4.dp),
                                         text = book.getRealAuthor(),
                                         style = LegadoTheme.typography.bodySmall
                                     )
                                     AppText(
+                                        modifier = Modifier.padding(horizontal = 4.dp),
                                         text = "${groupNameResolver(book)} | ${book.originName.ifBlank { book.origin }}",
                                         style = LegadoTheme.typography.labelSmallEmphasized.copy(color = LegadoTheme.colorScheme.primary)
                                     )
@@ -752,27 +769,69 @@ private fun BookshelfManageScreen(
                                     }
                                 )
                             }
-                            Row(
+                            Column(
                                 modifier = Modifier
                                     .fillMaxWidth()
-                                    .padding(top = 4.dp),
-                                horizontalArrangement = Arrangement.spacedBy(8.dp),
-                                verticalAlignment = Alignment.CenterVertically
+                                    .padding(top = 12.dp),
+                                verticalArrangement = Arrangement.spacedBy(4.dp)
                             ) {
-                                if (downloadFailureText != null) {
-                                    AppText(
-                                        text = downloadFailureText,
-                                        modifier = Modifier.weight(1f),
-                                        style = LegadoTheme.typography.labelSmall,
-                                        color = LegadoTheme.colorScheme.error,
-                                        maxLines = 1
-                                    )
-                                } else {
-                                    Spacer(modifier = Modifier.weight(1f))
-                                }
                                 Row(
-                                    horizontalArrangement = Arrangement.spacedBy(6.dp)
+                                    modifier = Modifier.fillMaxWidth(),
+                                    verticalAlignment = Alignment.CenterVertically
                                 ) {
+                                    SmallTonalButton(
+                                        onClick = {
+                                            if (!book.isLocal) {
+                                                viewModel.dispatch(BookshelfManageScreenIntent.ToggleBookDownload(book))
+                                            }
+                                        },
+                                        modifier = Modifier.weight(1f),
+                                        icon = if (isDownloading) Icons.Default.Stop else Icons.Default.Download,
+                                        text = if (isDownloading) "停止" else "下载",
+                                        contentColor = LegadoTheme.colorScheme.onSurfaceVariant.copy(
+                                            alpha = 0.8f
+                                        )
+                                    )
+                                    VerticalDivider(
+                                        modifier = Modifier
+                                            .height(16.dp)
+                                            .padding(horizontal = 4.dp),
+                                        color = LegadoTheme.colorScheme.outlineVariant
+                                    )
+                                    SmallTonalButton(
+                                        onClick = { exportBook(book) },
+                                        modifier = Modifier.weight(1f),
+                                        icon = Icons.Default.Upload,
+                                        text = "导出",
+                                        contentColor = LegadoTheme.colorScheme.onSurfaceVariant.copy(
+                                            alpha = 0.8f
+                                        )
+                                    )
+                                    VerticalDivider(
+                                        modifier = Modifier
+                                            .height(16.dp)
+                                            .padding(horizontal = 4.dp),
+                                        color = LegadoTheme.colorScheme.outlineVariant
+                                    )
+                                    SmallTonalButton(
+                                        onClick = {
+                                            pendingMoveGroupBookUrl = book.bookUrl
+                                            groupPickerCurrentGroupId = book.group.coerceAtLeast(0L)
+                                            showGroupSelectSheet = true
+                                        },
+                                        modifier = Modifier.weight(1f),
+                                        icon = Icons.Default.Bookmarks,
+                                        text = "分组",
+                                        contentColor = LegadoTheme.colorScheme.onSurfaceVariant.copy(
+                                            alpha = 0.8f
+                                        )
+                                    )
+                                    VerticalDivider(
+                                        modifier = Modifier
+                                            .height(16.dp)
+                                            .padding(horizontal = 4.dp),
+                                        color = LegadoTheme.colorScheme.outlineVariant
+                                    )
                                     RoundDropdownMenu(
                                         expanded = moreMenuBookUrl == book.bookUrl,
                                         onDismissRequest = { moreMenuBookUrl = null }
@@ -805,33 +864,22 @@ private fun BookshelfManageScreen(
                                             }
                                         )
                                     }
-                                    SmallTonalButton(
-                                        onClick = {
-                                            if (!book.isLocal) {
-                                                viewModel.dispatch(BookshelfManageScreenIntent.ToggleBookDownload(book))
-                                            }
-                                        },
-                                        icon = if (isDownloading) Icons.Default.Stop else Icons.Default.Download,
-                                        contentDescription = stringResource(R.string.action_download)
-                                    )
-                                    SmallTonalButton(
-                                        onClick = { exportBook(book) },
-                                        icon = Icons.Default.Upload,
-                                        contentDescription = stringResource(R.string.upload_to_remote)
-                                    )
-                                    SmallTonalButton(
-                                        onClick = {
-                                            pendingMoveGroupBookUrl = book.bookUrl
-                                            groupPickerCurrentGroupId = book.group.coerceAtLeast(0L)
-                                            showGroupSelectSheet = true
-                                        },
-                                        icon = Icons.Default.Bookmarks,
-                                        contentDescription = stringResource(R.string.group)
-                                    )
                                     SmallTonalButton(
                                         onClick = { moreMenuBookUrl = book.bookUrl },
+                                        modifier = Modifier.weight(1f),
                                         icon = Icons.Default.MoreVert,
-                                        contentDescription = stringResource(R.string.more_menu)
+                                        text = "更多",
+                                        contentColor = LegadoTheme.colorScheme.onSurfaceVariant.copy(
+                                            alpha = 0.8f
+                                        )
+                                    )
+                                }
+                                if (downloadFailureText != null) {
+                                    AppText(
+                                        text = downloadFailureText,
+                                        style = LegadoTheme.typography.labelSmall,
+                                        color = LegadoTheme.colorScheme.error,
+                                        maxLines = 1
                                     )
                                 }
                             }

+ 6 - 4
app/src/main/java/io/legado/app/ui/widget/components/button/series/SeriesIconButton.kt

@@ -16,6 +16,7 @@ import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.RoundedCornerShape
 import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.material3.IconButtonDefaults
 import androidx.compose.material3.minimumInteractiveComponentSize
@@ -30,6 +31,7 @@ import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.draw.clip
 import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.graphics.Shape
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.semantics.Role
 import androidx.compose.ui.semantics.selected
@@ -39,8 +41,6 @@ import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.DpSize
 import androidx.compose.ui.unit.dp
 import io.legado.app.ui.theme.LegadoTheme
-import io.legado.app.ui.theme.LegadoTheme.composeEngine
-import io.legado.app.ui.theme.ThemeResolver
 import io.legado.app.ui.widget.components.icon.AppIcon
 import io.legado.app.ui.widget.components.text.AppText
 
@@ -49,6 +49,7 @@ internal val SeriesIconSize: Dp
     get() = IconButtonDefaults.mediumIconSize
 internal val MediumSeriesIconButtonSize = DpSize(40.dp, 40.dp)
 internal val MediumSeriesIconSize = SeriesIconSize
+internal val SmallButtonShape = RoundedCornerShape(50)
 
 internal enum class SeriesIconButtonStyle {
     Plain,
@@ -65,6 +66,8 @@ internal fun SeriesButton(
     selected: Boolean = false,
     onLongClick: (() -> Unit)? = null,
     size: DpSize? = null,
+    enforceMinimumInteractiveSize: Boolean = true,
+    shape: Shape = IconButtonDefaults.extraSmallRoundShape,
     style: SeriesIconButtonStyle = SeriesIconButtonStyle.Plain,
     contentColor: Color = LegadoTheme.colorScheme.onSurfaceVariant,
     containerColor: Color? = null,
@@ -101,13 +104,12 @@ internal fun SeriesButton(
         animationSpec = animSpec,
         label = "SeriesIconContentColor"
     )
-    val shape = IconButtonDefaults.extraSmallRoundShape
     val border = borderStroke(style, enabled)
     val interactionSource = remember { MutableInteractionSource() }
 
     Box(
         modifier = Modifier
-            .minimumInteractiveComponentSize()
+            .then(if (enforceMinimumInteractiveSize) Modifier.minimumInteractiveComponentSize() else Modifier)
             .then(modifier)
             .then(if (size != null) Modifier.size(size) else Modifier)
             .clip(shape)

+ 2 - 2
app/src/main/java/io/legado/app/ui/widget/components/button/series/SmallAnimatedButton.kt

@@ -2,7 +2,6 @@ package io.legado.app.ui.widget.components.button.series
 
 import androidx.compose.foundation.layout.PaddingValues
 import androidx.compose.foundation.layout.height
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
 import androidx.compose.runtime.getValue
@@ -17,7 +16,6 @@ import io.legado.app.ui.theme.LegadoTheme
 import kotlinx.coroutines.delay
 import kotlin.time.Duration.Companion.milliseconds
 
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
 @Composable
 fun SmallAnimatedButton(
     checked: Boolean,
@@ -54,6 +52,8 @@ fun SmallAnimatedButton(
         selected = checked,
         onLongClick = onLongClick,
         size = if (text == null) smallContainerSize() else null,
+        enforceMinimumInteractiveSize = false,
+        shape = SmallButtonShape,
         style = SeriesIconButtonStyle.Tonal,
         contentColor = contentColor,
         containerColor = containerColor,

+ 2 - 2
app/src/main/java/io/legado/app/ui/widget/components/button/series/SmallOutlinedButton.kt

@@ -1,14 +1,12 @@
 package io.legado.app.ui.widget.components.button.series
 
 import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.unit.dp
 import io.legado.app.ui.theme.LegadoTheme
 
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
 @Composable
 fun SmallOutlinedButton(
     onClick: () -> Unit,
@@ -27,6 +25,8 @@ fun SmallOutlinedButton(
             selected = selected,
             onLongClick = onLongClick,
             size = if (text == null) smallContainerSize() else null,
+        enforceMinimumInteractiveSize = false,
+        shape = SmallButtonShape,
             style = SeriesIconButtonStyle.Outlined
         ) { contentColor ->
             SeriesButtonContent(

+ 5 - 14
app/src/main/java/io/legado/app/ui/widget/components/button/series/SmallPlainButton.kt

@@ -1,8 +1,6 @@
 package io.legado.app.ui.widget.components.button.series
 
 import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
-import androidx.compose.material3.IconButtonDefaults
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.vector.ImageVector
@@ -10,19 +8,10 @@ import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
 import io.legado.app.ui.theme.LegadoTheme
 
-internal val SmallMiuixButtonSize = 32.dp
+internal fun smallContainerSize() = squareSize(SmallButtonSize)
 
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
-internal fun smallContainerSize() = IconButtonDefaults.extraSmallContainerSize(
-    IconButtonDefaults.IconButtonWidthOption.Uniform
-)
-
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
-internal val smallIconSize: Dp
-    get() = IconButtonDefaults.extraSmallIconSize
-
-internal val SmallMiuixIconSize: Dp
-    get() = smallIconSize
+internal val smallIconSize: Dp = 18.dp
+internal val SmallButtonSize = 32.dp
 
 @Composable
 fun SmallPlainButton(
@@ -42,6 +31,8 @@ fun SmallPlainButton(
         selected = selected,
         onLongClick = onLongClick,
         size = if (text == null) smallContainerSize() else null,
+        enforceMinimumInteractiveSize = false,
+        shape = SmallButtonShape,
         contentColor = LegadoTheme.colorScheme.onSurfaceVariant
     ) { contentColor ->
         SeriesButtonContent(

+ 37 - 118
app/src/main/java/io/legado/app/ui/widget/components/button/series/SmallToggleButton.kt

@@ -2,31 +2,16 @@ package io.legado.app.ui.widget.components.button.series
 
 import androidx.compose.animation.animateColorAsState
 import androidx.compose.animation.core.tween
-import androidx.compose.foundation.layout.Arrangement
 import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
-import androidx.compose.material3.Icon
-import androidx.compose.material3.Text
-import androidx.compose.material3.TonalToggleButton
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.getValue
-import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.unit.dp
 import io.legado.app.ui.theme.LegadoTheme
-import io.legado.app.ui.theme.LegadoTheme.composeEngine
-import io.legado.app.ui.theme.ThemeResolver
-import top.yukonga.miuix.kmp.basic.Icon as MiuixIcon
-import top.yukonga.miuix.kmp.basic.IconButton as MiuixIconButton
-import top.yukonga.miuix.kmp.basic.Text as MiuixText
 
 enum class ToggleStyle { Outlined, Tonal }
 
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
 @Composable
 fun SmallToggleButton(
     checked: Boolean,
@@ -40,109 +25,43 @@ fun SmallToggleButton(
     text: String? = null,
     contentDescription: String? = null
 ) {
-    if (ThemeResolver.isMiuixEngine(composeEngine)) {
-        val containerColor by animateColorAsState(
-            targetValue = if (checked) LegadoTheme.colorScheme.primaryContainer else LegadoTheme.colorScheme.surfaceContainer,
-            animationSpec = tween(150),
-            label = "MiuixToggleContainerColor"
+    val containerColor by animateColorAsState(
+        targetValue = if (checked) LegadoTheme.colorScheme.primaryContainer else LegadoTheme.colorScheme.surfaceContainer,
+        animationSpec = tween(150),
+        label = "SmallToggleContainerColor"
+    )
+    val iconTint by animateColorAsState(
+        targetValue = if (checked) LegadoTheme.colorScheme.onPrimaryContainer else LegadoTheme.colorScheme.onSurfaceVariant,
+        animationSpec = tween(150),
+        label = "SmallToggleIconTint"
+    )
+    SeriesButton(
+        onClick = { onCheckedChange(!checked) },
+        modifier = modifier,
+        enabled = enabled,
+        selected = checked,
+        onLongClick = onLongClick,
+        size = if (text == null) smallContainerSize() else null,
+        enforceMinimumInteractiveSize = false,
+        shape = SmallButtonShape,
+        style = when (style) {
+            ToggleStyle.Outlined -> SeriesIconButtonStyle.Outlined
+            ToggleStyle.Tonal -> SeriesIconButtonStyle.Tonal
+        },
+        containerColor = containerColor,
+        selectedContainerColor = containerColor,
+        contentColor = iconTint,
+        selectedContentColor = iconTint
+    ) { contentColor ->
+        SeriesButtonContent(
+            icon = if (checked) (iconChecked ?: icon)!! else icon!!,
+            text = text,
+            contentDescription = contentDescription,
+            iconSize = smallIconSize,
+            textStyle = LegadoTheme.typography.labelSmall,
+            contentColor = contentColor,
+            padding = PaddingValues(horizontal = 8.dp, vertical = 6.dp),
+            spacing = 6.dp
         )
-
-        val iconTint by animateColorAsState(
-            targetValue = if (checked) LegadoTheme.colorScheme.onPrimaryContainer else LegadoTheme.colorScheme.onSurfaceVariant,
-            animationSpec = tween(150),
-            label = "MiuixToggleIconTint"
-        )
-
-        if (text != null) {
-            MiuixIconButton(
-                onClick = { onCheckedChange(!checked) },
-                modifier = modifier,
-                enabled = enabled,
-                backgroundColor = containerColor
-            ) {
-                Row(
-                    verticalAlignment = Alignment.CenterVertically,
-                    horizontalArrangement = Arrangement.Center,
-                    modifier = Modifier.padding(horizontal = 8.dp, vertical = 6.dp)
-                ) {
-                    MiuixIcon(
-                        imageVector = if (checked) (iconChecked ?: icon)!! else icon!!,
-                        contentDescription = null,
-                        modifier = Modifier.size(16.dp),
-                        tint = iconTint
-                    )
-                    MiuixText(
-                        text = text,
-                        style = LegadoTheme.typography.labelSmall,
-                        color = iconTint,
-                        modifier = Modifier.padding(start = 6.dp),
-                        maxLines = 1,
-                        softWrap = false
-                    )
-                }
-            }
-        } else {
-            SeriesIconButton(
-                icon = if (checked) (iconChecked ?: icon)!! else icon!!,
-                contentDescription = contentDescription,
-                onClick = { onCheckedChange(!checked) },
-                modifier = modifier,
-                enabled = enabled,
-                selected = checked,
-                onLongClick = onLongClick,
-                size = squareSize(SmallMiuixButtonSize),
-                iconSize = SmallMiuixIconSize,
-                style = when (style) {
-                    ToggleStyle.Outlined -> SeriesIconButtonStyle.Outlined
-                    ToggleStyle.Tonal -> SeriesIconButtonStyle.Tonal
-                },
-                selectedContainerColor = containerColor,
-                selectedContentColor = iconTint
-            )
-        }
-    } else {
-        if (text != null) {
-            TonalToggleButton(
-                checked = checked,
-                onCheckedChange = onCheckedChange,
-                modifier = modifier,
-                enabled = enabled,
-                contentPadding = PaddingValues(horizontal = 8.dp)
-            ) {
-                Row(
-                    verticalAlignment = Alignment.CenterVertically,
-                    horizontalArrangement = Arrangement.Center
-                ) {
-                    Icon(
-                        imageVector = if (checked) (iconChecked ?: icon)!! else icon!!,
-                        contentDescription = null,
-                        modifier = Modifier.size(16.dp)
-                    )
-                    Text(
-                        text = text,
-                        style = LegadoTheme.typography.labelSmall,
-                        modifier = Modifier.padding(start = 6.dp),
-                        maxLines = 1,
-                        softWrap = false
-                    )
-                }
-            }
-        } else {
-            SeriesIconButton(
-                icon = if (checked) (iconChecked ?: icon)!! else icon!!,
-                contentDescription = contentDescription,
-                onClick = { onCheckedChange(!checked) },
-                modifier = modifier,
-                enabled = enabled,
-                selected = checked,
-                onLongClick = onLongClick,
-                size = smallContainerSize(),
-                iconSize = smallIconSize,
-                style = when (style) {
-                    ToggleStyle.Outlined -> SeriesIconButtonStyle.Outlined
-                    ToggleStyle.Tonal -> SeriesIconButtonStyle.Tonal
-                }
-            )
-        }
     }
 }

+ 2 - 2
app/src/main/java/io/legado/app/ui/widget/components/button/series/SmallTonalButton.kt

@@ -1,7 +1,6 @@
 package io.legado.app.ui.widget.components.button.series
 
 import androidx.compose.foundation.layout.PaddingValues
-import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
@@ -9,7 +8,6 @@ import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.unit.dp
 import io.legado.app.ui.theme.LegadoTheme
 
-@OptIn(ExperimentalMaterial3ExpressiveApi::class)
 @Composable
 fun SmallTonalButton(
     onClick: () -> Unit,
@@ -32,6 +30,8 @@ fun SmallTonalButton(
         selected = selected,
         onLongClick = onLongClick,
         size = if (text == null) smallContainerSize() else null,
+        enforceMinimumInteractiveSize = false,
+        shape = SmallButtonShape,
         style = SeriesIconButtonStyle.Tonal,
         contentColor = contentColor,
         containerColor = containerColor,