Преглед изворни кода

fix: 修复探索和RSS页面弹窗字体缩放问题

Wuying Created Local Users пре 3 месеци
родитељ
комит
4086a089e5

+ 36 - 19
app/src/main/java/io/legado/app/ui/book/explore/ExploreShowScreen.kt

@@ -53,6 +53,7 @@ import io.legado.app.R
 import io.legado.app.domain.model.BookShelfState
 import io.legado.app.ui.main.bookCoverSharedElementKey
 import io.legado.app.ui.theme.LegadoTheme
+import io.legado.app.ui.theme.adaptiveHorizontalPadding
 import io.legado.app.ui.theme.responsiveHazeEffect
 import io.legado.app.ui.theme.responsiveHazeSource
 import io.legado.app.ui.widget.components.AppPullToRefresh
@@ -62,6 +63,7 @@ import io.legado.app.ui.widget.components.LoadMoreFooter
 import io.legado.app.ui.widget.components.book.SearchBookGridItem
 import io.legado.app.ui.widget.components.book.SearchBookListItem
 import io.legado.app.ui.widget.components.book.SearchBookPreviewSheet
+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.explore.ExploreKindSelectSheet
 import io.legado.app.ui.widget.components.modalBottomSheet.AppModalBottomSheet
@@ -483,16 +485,25 @@ fun ExploreBookItem(
     animatedVisibilityScope: AnimatedVisibilityScope? = null,
     sharedCoverKey: String? = null,
 ) {
-    SearchBookListItem(
-        book = book,
-        shelfState = shelfState,
-        onClick = onClick,
-        onLongClick = onLongClick,
-        modifier = modifier,
-        sharedTransitionScope = sharedTransitionScope,
-        animatedVisibilityScope = animatedVisibilityScope,
-        sharedCoverKey = sharedCoverKey
-    )
+    GlassCard(
+        modifier = modifier
+            .fillMaxWidth()
+            .adaptiveHorizontalPadding(vertical = 4.dp),
+        containerColor = LegadoTheme.colorScheme.surfaceContainerLow,
+        cornerRadius = 16.dp,
+    ) {
+        SearchBookListItem(
+            book = book,
+            shelfState = shelfState,
+            onClick = onClick,
+            onLongClick = onLongClick,
+            modifier = Modifier.padding(all = 8.dp),
+            showPadding = false,
+            sharedTransitionScope = sharedTransitionScope,
+            animatedVisibilityScope = animatedVisibilityScope,
+            sharedCoverKey = sharedCoverKey
+        )
+    }
 }
 
 @OptIn(ExperimentalSharedTransitionApi::class)
@@ -507,14 +518,20 @@ fun ExploreBookGridItem(
     animatedVisibilityScope: AnimatedVisibilityScope? = null,
     sharedCoverKey: String? = null,
 ) {
-    SearchBookGridItem(
-        book = book,
-        shelfState = shelfState,
-        onClick = onClick,
-        onLongClick = onLongClick,
+    GlassCard(
         modifier = modifier.padding(4.dp),
-        sharedTransitionScope = sharedTransitionScope,
-        animatedVisibilityScope = animatedVisibilityScope,
-        sharedCoverKey = sharedCoverKey
-    )
+        containerColor = LegadoTheme.colorScheme.surfaceContainerLow,
+        cornerRadius = 12.dp,
+    ) {
+        SearchBookGridItem(
+            book = book,
+            shelfState = shelfState,
+            onClick = onClick,
+            onLongClick = onLongClick,
+            modifier = Modifier.padding(4.dp),
+            sharedTransitionScope = sharedTransitionScope,
+            animatedVisibilityScope = animatedVisibilityScope,
+            sharedCoverKey = sharedCoverKey
+        )
+    }
 }

+ 71 - 64
app/src/main/java/io/legado/app/ui/main/rss/RssScreen.kt

@@ -318,7 +318,7 @@ fun RssSourceGridItem(
     val openLabel = stringResource(R.string.open)
     val moreMenuLabel = stringResource(R.string.more_menu)
 
-    Column(
+    GlassCard(
         modifier = modifier
             .clip(RoundedCornerShape(16.dp))
             .combinedClickable(
@@ -331,79 +331,86 @@ fun RssSourceGridItem(
             .semantics(mergeDescendants = true) {
                 contentDescription = source.sourceName
                 role = Role.Button
-            }
-            .padding(8.dp),
-        horizontalAlignment = Alignment.CenterHorizontally
+            },
+        containerColor = LegadoTheme.colorScheme.surfaceContainerLow,
+        cornerRadius = 16.dp,
     ) {
-        Box {
-            SourceIcon(
-                path = source.sourceIcon,
-                sourceOrigin = source.sourceUrl,
-                modifier = Modifier.size(48.dp)
-            )
-            RoundDropdownMenu(
-                expanded = showMenu,
-                onDismissRequest = { showMenu = false }
-            ) {
-                PillHeaderDivider(title = source.sourceName)
-                RoundDropdownMenuItem(
-                    leadingIcon = { MenuItemIcon(Icons.Default.VerticalAlignTop) },
-                    text = stringResource(R.string.to_top),
-                    onClick = {
-                        onTop()
-                        showMenu = false
-                    }
+        Column(
+            modifier = Modifier
+                .fillMaxWidth()
+                .padding(8.dp),
+            horizontalAlignment = Alignment.CenterHorizontally
+        ) {
+            Box {
+                SourceIcon(
+                    path = source.sourceIcon,
+                    sourceOrigin = source.sourceUrl,
+                    modifier = Modifier.size(48.dp)
                 )
-                RoundDropdownMenuItem(
-                    leadingIcon = { MenuItemIcon(Icons.Default.Edit) },
-                    text = stringResource(R.string.edit),
-                    onClick = {
-                        onEdit()
-                        showMenu = false
-                    }
-                )
-                if (!source.loginUrl.isNullOrBlank()) {
+                RoundDropdownMenu(
+                    expanded = showMenu,
+                    onDismissRequest = { showMenu = false }
+                ) {
+                    PillHeaderDivider(title = source.sourceName)
                     RoundDropdownMenuItem(
-                        leadingIcon = { MenuItemIcon(Icons.AutoMirrored.Filled.Login) },
-                        text = stringResource(R.string.login),
+                        leadingIcon = { MenuItemIcon(Icons.Default.VerticalAlignTop) },
+                        text = stringResource(R.string.to_top),
                         onClick = {
-                            onLogin()
+                            onTop()
                             showMenu = false
                         }
                     )
-                }
-                RoundDropdownMenuItem(
-                    leadingIcon = { MenuItemIcon(Icons.Default.Close) },
-                    text = stringResource(R.string.disable_source),
-                    onClick = {
-                        onDisable()
-                        showMenu = false
-                    }
-                )
-                RoundDropdownMenuItem(
-                    leadingIcon = {
-                        MenuItemIcon(
-                            Icons.Default.Delete,
-                            tint = LegadoTheme.colorScheme.error
+                    RoundDropdownMenuItem(
+                        leadingIcon = { MenuItemIcon(Icons.Default.Edit) },
+                        text = stringResource(R.string.edit),
+                        onClick = {
+                            onEdit()
+                            showMenu = false
+                        }
+                    )
+                    if (!source.loginUrl.isNullOrBlank()) {
+                        RoundDropdownMenuItem(
+                            leadingIcon = { MenuItemIcon(Icons.AutoMirrored.Filled.Login) },
+                            text = stringResource(R.string.login),
+                            onClick = {
+                                onLogin()
+                                showMenu = false
+                            }
                         )
-                    },
-                    text = stringResource(R.string.delete),
-                    color = LegadoTheme.colorScheme.error,
-                    onClick = {
-                        onDelete()
-                        showMenu = false
                     }
-                )
+                    RoundDropdownMenuItem(
+                        leadingIcon = { MenuItemIcon(Icons.Default.Close) },
+                        text = stringResource(R.string.disable_source),
+                        onClick = {
+                            onDisable()
+                            showMenu = false
+                        }
+                    )
+                    RoundDropdownMenuItem(
+                        leadingIcon = {
+                            MenuItemIcon(
+                                Icons.Default.Delete,
+                                tint = LegadoTheme.colorScheme.error
+                            )
+                        },
+                        text = stringResource(R.string.delete),
+                        color = LegadoTheme.colorScheme.error,
+                        onClick = {
+                            onDelete()
+                            showMenu = false
+                        }
+                    )
+                }
             }
+            Spacer(modifier = Modifier.height(8.dp))
+            AppText(
+                text = source.sourceName,
+                style = LegadoTheme.typography.labelMedium,
+                maxLines = 2,
+                overflow = TextOverflow.Ellipsis,
+                textAlign = TextAlign.Center,
+                modifier = Modifier.fillMaxWidth()
+            )
         }
-        Spacer(modifier = Modifier.height(8.dp))
-        AppText(
-            text = source.sourceName,
-            style = LegadoTheme.typography.labelMedium,
-            maxLines = 2,
-            overflow = TextOverflow.Ellipsis,
-            textAlign = TextAlign.Center,
-            modifier = Modifier.fillMaxWidth()
-        )
     }
 }