Sfoglia il codice sorgente

fix:修复标题设置刷新问题

HapeLee 4 mesi fa
parent
commit
1bc7e69462

+ 26 - 14
app/src/main/java/io/legado/app/ui/book/read/sheet/TextTitleSheet.kt

@@ -360,8 +360,14 @@ internal fun TextEffectsPage(
 internal fun TitleSettingsPage(
 internal fun TitleSettingsPage(
     onIntent: (ReadBookIntent) -> Unit,
     onIntent: (ReadBookIntent) -> Unit,
 ) {
 ) {
-    var titleMode by remember { mutableIntStateOf(ReadBookConfig.titleMode) }
-    var titleBold by remember { mutableIntStateOf(ReadBookConfig.titleBold) }
+    var titleMode by remember(ReadBookConfig.titleMode) { mutableIntStateOf(ReadBookConfig.titleMode) }
+    var titleBold by remember(ReadBookConfig.titleBold) { mutableIntStateOf(ReadBookConfig.titleBold) }
+    var titleSegScaling by remember(ReadBookConfig.titleSegScaling) { mutableFloatStateOf(ReadBookConfig.titleSegScaling) }
+    var titleLineSpacingExtra by remember(ReadBookConfig.titleLineSpacingExtra) { mutableIntStateOf(ReadBookConfig.titleLineSpacingExtra) }
+    var titleLineSpacingSub by remember(ReadBookConfig.titleLineSpacingSub) { mutableIntStateOf(ReadBookConfig.titleLineSpacingSub) }
+    var titleSize by remember(ReadBookConfig.titleSize) { mutableIntStateOf(ReadBookConfig.titleSize) }
+    var titleTopSpacing by remember(ReadBookConfig.titleTopSpacing) { mutableIntStateOf(ReadBookConfig.titleTopSpacing) }
+    var titleBottomSpacing by remember(ReadBookConfig.titleBottomSpacing) { mutableIntStateOf(ReadBookConfig.titleBottomSpacing) }
 
 
     var showColorPicker by remember { mutableStateOf(false) }
     var showColorPicker by remember { mutableStateOf(false) }
     var colorPickerId by remember { mutableIntStateOf(0) }
     var colorPickerId by remember { mutableIntStateOf(0) }
@@ -429,50 +435,56 @@ internal fun TitleSettingsPage(
         // Title spacing sliders
         // Title spacing sliders
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.subtitle_scale),
             title = stringResource(R.string.subtitle_scale),
-            value = ReadBookConfig.titleSegScaling * 10,
+            value = titleSegScaling * 10,
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSegScaling(value / 10f)))
+                titleSegScaling = value / 10f
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSegScaling(titleSegScaling)))
             },
             },
         )
         )
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.heading_spacing),
             title = stringResource(R.string.heading_spacing),
-            value = ReadBookConfig.titleLineSpacingExtra.toFloat(),
+            value = titleLineSpacingExtra.toFloat(),
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingExtra(value.toInt())))
+                titleLineSpacingExtra = value.toInt()
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingExtra(titleLineSpacingExtra)))
             },
             },
         )
         )
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.subtitle_margin),
             title = stringResource(R.string.subtitle_margin),
-            value = ReadBookConfig.titleLineSpacingSub.toFloat(),
+            value = titleLineSpacingSub.toFloat(),
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingSub(value.toInt())))
+                titleLineSpacingSub = value.toInt()
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleLineSpacingSub(titleLineSpacingSub)))
             },
             },
         )
         )
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.title_font_size),
             title = stringResource(R.string.title_font_size),
-            value = ReadBookConfig.titleSize.toFloat(),
+            value = titleSize.toFloat(),
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSize(value.toInt())))
+                titleSize = value.toInt()
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleSize(titleSize)))
             },
             },
         )
         )
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.title_margin_top),
             title = stringResource(R.string.title_margin_top),
-            value = ReadBookConfig.titleTopSpacing.toFloat(),
+            value = titleTopSpacing.toFloat(),
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleTopSpacing(value.toInt())))
+                titleTopSpacing = value.toInt()
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleTopSpacing(titleTopSpacing)))
             },
             },
         )
         )
         TinySliderSettingItem(
         TinySliderSettingItem(
             title = stringResource(R.string.title_margin_bottom),
             title = stringResource(R.string.title_margin_bottom),
-            value = ReadBookConfig.titleBottomSpacing.toFloat(),
+            value = titleBottomSpacing.toFloat(),
             valueRange = 0f..100f,
             valueRange = 0f..100f,
             onValueChange = { value ->
             onValueChange = { value ->
-                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleBottomSpacing(value.toInt())))
+                titleBottomSpacing = value.toInt()
+                onIntent(ReadBookIntent.UpdateConfig(ConfigUpdate.TitleBottomSpacing(titleBottomSpacing)))
             },
             },
         )
         )