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

fix: 首页模块相同名称时冲突问题

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

+ 5 - 5
app/src/main/java/io/legado/app/ui/book/read/TextActionSelectionMenu.kt

@@ -148,7 +148,7 @@ fun TextActionSelectionMenu(
                     NormalCard(
                         modifier = Modifier.widthIn(max = menuCardMaxWidth),
                         containerColor = LegadoTheme.colorScheme.surfaceBright,
-                        elevation = 6.dp,
+                        elevation = 12.dp,
                         cornerRadius = 12.dp,
                     ) {
                         MultiLineMenuView(
@@ -186,7 +186,7 @@ fun TextActionSelectionMenu(
                     NormalCard(
                         modifier = Modifier.widthIn(max = menuCardMaxWidth),
                         containerColor = LegadoTheme.colorScheme.surfaceBright,
-                        elevation = 6.dp,
+                        elevation = 12.dp,
                         cornerRadius = 12.dp,
                     ) {
                         QuickMenuView(
@@ -250,7 +250,7 @@ fun TextActionSelectionMenu(
                     NormalCard(
                         modifier = Modifier.widthIn(max = menuCardMaxWidth),
                         containerColor = LegadoTheme.colorScheme.surfaceBright,
-                        elevation = 8.dp,
+                        elevation = 12.dp,
                         cornerRadius = 12.dp,
                     ) {
                         MoreMenuView(
@@ -335,8 +335,8 @@ private fun QuickMenuView(
                 QuickMenuItem(
                     item = item,
                     onClick = { onItemClick(item) },
-                    startPadding = if (index == 0) 16.dp else 12.dp,
-                    endPadding = 12.dp,
+                    startPadding = if (index == 0) 16.dp else 10.dp,
+                    endPadding = 8.dp,
                 )
             }
         }

+ 2 - 1
app/src/main/java/io/legado/app/ui/main/homepage/HomepageModuleManageSheet.kt

@@ -280,7 +280,8 @@ fun <T> HomepageModuleManageSheet(
                                     .find {
                                         it.customSetId == HomepageViewModel.customSetIdFromUrl(
                                             selectingSetUrl!!
-                                        ) && it.moduleKey == module.moduleKey
+                                        ) && it.sourceUrl == module.sourceUrl &&
+                                                it.moduleKey == module.moduleKey
                                     }?.id
                                 if (instanceId != null) {
                                     actions.onDeleteModule(instanceId)

+ 5 - 4
app/src/main/java/io/legado/app/ui/main/homepage/manage/CustomSetAddModulesPage.kt

@@ -31,7 +31,7 @@ fun CustomSetAddModulesPage(
     val setId = HomepageViewModel.customSetIdFromUrl(setUrl)
     val initialJoined = allJoinedModules
         .filter { it.customSetId == setId }
-        .associateBy({ it.moduleKey }, { it.id })
+        .associateBy({ it.sourceUrl to it.moduleKey }, { it.id })
     var joinedInCurrent by remember(initialJoined) { mutableStateOf(initialJoined) }
 
     val hasInfiniteInCurrentSet = remember(allJoinedModules) {
@@ -62,7 +62,8 @@ fun CustomSetAddModulesPage(
                 )
             }
             items(modules, key = { it.id }) { module ->
-                val instanceIdInCurrentSet = joinedInCurrent[module.moduleKey]
+                val moduleKey = module.sourceUrl to module.moduleKey
+                val instanceIdInCurrentSet = joinedInCurrent[moduleKey]
                 val inCurrentSet = instanceIdInCurrentSet != null
                 val isInfinite = HomepageViewModel.isInfinite(module.type, module.layoutConfig)
                 val isBlocked = !inCurrentSet && isInfinite && hasInfiniteInCurrentSet
@@ -77,10 +78,10 @@ fun CustomSetAddModulesPage(
                     onToggleSelection = {
                         onToggleModuleToSet(module, inCurrentSet, isBlocked)
                         if (inCurrentSet) {
-                            joinedInCurrent = joinedInCurrent - module.moduleKey
+                            joinedInCurrent = joinedInCurrent - moduleKey
                         } else if (!isBlocked) {
                             joinedInCurrent =
-                                joinedInCurrent + (module.moduleKey to "temp_${module.id}")
+                                joinedInCurrent + (moduleKey to "temp_${module.id}")
                         }
                     }
                 )

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

@@ -251,7 +251,7 @@ internal fun squareSize(size: Dp) = DpSize(size, size)
 private fun containerColor(style: SeriesIconButtonStyle): Color {
     return when (style) {
         SeriesIconButtonStyle.Plain -> Color.Transparent
-        SeriesIconButtonStyle.Tonal -> LegadoTheme.colorScheme.surface
+        SeriesIconButtonStyle.Tonal -> LegadoTheme.colorScheme.surfaceContainerLow
         SeriesIconButtonStyle.Outlined -> LegadoTheme.colorScheme.surface.copy(alpha = 0f)
     }
 }