Merge pull request #1462 from fansangg/fix/share-layout-page-anim

fix: 修复共用布局下翻页动画文案读取错误
This commit is contained in:
Kudomaga
2026-06-16 00:41:40 +08:00
committed by GitHub
2 changed files with 54 additions and 29 deletions
@@ -1542,6 +1542,7 @@ class ReadBookViewModel(
private fun buildStyleConfig(): ReadBookStyleConfig {
val config = ReadBookConfig
val actualConfig = config.config
val dur = config.durConfig
return ReadBookStyleConfig(
styleSelect = config.styleSelect,
@@ -1560,8 +1561,8 @@ class ReadBookViewModel(
textColor = dur.getTextColor(),
textColorNight = dur.getTextColorNight(),
textColorEInk = dur.getTextColorEInk(),
pageAnim = dur.getPageAnim(),
pageAnimEInk = dur.getPageAnimEInk(),
pageAnim = actualConfig.getPageAnim(),
pageAnimEInk = actualConfig.getPageAnimEInk(),
shareLayout = config.shareLayout,
configCount = config.configList.size,
)
@@ -28,9 +28,15 @@ import androidx.compose.material.icons.filled.LightMode
import androidx.compose.material.icons.filled.SpaceBar
import androidx.compose.material.icons.filled.TextFields
import androidx.compose.material3.Icon
import androidx.compose.material3.PlainTooltip
import androidx.compose.material3.TooltipAnchorPosition
import androidx.compose.material3.TooltipBox
import androidx.compose.material3.TooltipDefaults
import androidx.compose.material3.rememberTooltipState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
@@ -174,36 +180,54 @@ fun GlobalThemePage(
.fillMaxWidth()
.padding(start = 12.dp, end = 12.dp, bottom = 12.dp),
) {
NormalCard(
onClick = {
val newShareLayout = !shareLayout
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.ShareLayout(newShareLayout)))
onShareLayoutChange(newShareLayout)
},
modifier = Modifier
.width(40.dp)
.height(56.dp),
cornerRadius = 8.dp,
containerColor = if (shareLayout) {
LegadoTheme.colorScheme.secondaryContainer
} else {
LegadoTheme.colorScheme.surfaceContainerLow
},
border = BorderStroke(
1.dp,
LegadoTheme.colorScheme.secondaryContainer.copy(alpha = 0.5f)
TooltipBox(
positionProvider = TooltipDefaults.rememberTooltipPositionProvider(
TooltipAnchorPosition.Above
),
contentColor = if (shareLayout) LegadoTheme.colorScheme.onSecondaryContainer else null
tooltip = {
PlainTooltip(
containerColor = LegadoTheme.colorScheme.surfaceContainerLow,
contentColor = LegadoTheme.colorScheme.onSurface,
) {
AppText(
text = stringResource(R.string.share_layout),
style = LegadoTheme.typography.bodyMedium,
)
}
},
state = rememberTooltipState(),
) {
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
NormalCard(
onClick = {
val newShareLayout = !shareLayout
onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.ShareLayout(newShareLayout)))
onShareLayoutChange(newShareLayout)
},
modifier = Modifier
.width(40.dp)
.height(56.dp),
cornerRadius = 8.dp,
containerColor = if (shareLayout) {
LegadoTheme.colorScheme.secondaryContainer
} else {
LegadoTheme.colorScheme.surfaceContainerLow
},
border = BorderStroke(
1.dp,
LegadoTheme.colorScheme.secondaryContainer.copy(alpha = 0.5f)
),
contentColor = if (shareLayout) LegadoTheme.colorScheme.onSecondaryContainer else null
) {
Icon(
Icons.Default.GridView,
contentDescription = null,
modifier = Modifier.size(20.dp),
)
Box(
modifier = Modifier.fillMaxSize(),
contentAlignment = Alignment.Center
) {
Icon(
Icons.Default.GridView,
contentDescription = stringResource(R.string.share_layout),
modifier = Modifier.size(20.dp),
)
}
}
}
val styleListState = rememberLazyListState()