|
|
@@ -31,12 +31,9 @@ import androidx.compose.ui.res.stringArrayResource
|
|
|
import androidx.compose.ui.res.stringResource
|
|
|
import androidx.compose.ui.unit.dp
|
|
|
import io.legado.app.R
|
|
|
-import io.legado.app.domain.gateway.BookshelfBooleanSetting
|
|
|
-import io.legado.app.domain.gateway.BookshelfIntSetting
|
|
|
-import io.legado.app.domain.gateway.BookshelfSettingsUpdate
|
|
|
-import io.legado.app.domain.model.settings.BookshelfSettings
|
|
|
import io.legado.app.domain.gateway.ThemeBooleanSetting
|
|
|
import io.legado.app.domain.gateway.ThemeSettingsUpdate
|
|
|
+import io.legado.app.domain.model.settings.BookshelfSettings
|
|
|
import io.legado.app.ui.config.themeConfig.LabelColorManageSheet
|
|
|
import io.legado.app.ui.config.themeConfig.TagColorPair
|
|
|
import io.legado.app.ui.theme.LegadoTheme
|
|
|
@@ -54,7 +51,7 @@ import io.legado.app.ui.widget.components.settingItem.CompactSwitchSettingItem
|
|
|
fun BookshelfConfigSheet(
|
|
|
show: Boolean,
|
|
|
settings: BookshelfSettings,
|
|
|
- onUpdate: (BookshelfSettingsUpdate) -> Unit,
|
|
|
+ onUpdate: ((BookshelfSettings) -> BookshelfSettings) -> Unit,
|
|
|
enableCustomTagColors: Boolean,
|
|
|
customTagColors: List<TagColorPair>,
|
|
|
themeColor: Int,
|
|
|
@@ -87,14 +84,18 @@ fun BookshelfConfigSheet(
|
|
|
selectedValue = settings.bookGroupStyle.toString(),
|
|
|
displayEntries = stringArrayResource(R.array.group_style),
|
|
|
entryValues = Array(stringArrayResource(R.array.group_style).size) { it.toString() },
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.BookGroupStyle, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookGroupStyle = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.hide_empty_groups),
|
|
|
checked = settings.hideEmptyGroups,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.HideEmptyGroups, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(hideEmptyGroups = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
PillHeaderDivider(title = stringResource(R.string.sort))
|
|
|
@@ -104,7 +105,9 @@ fun BookshelfConfigSheet(
|
|
|
selectedValue = settings.bookshelfSort.toString(),
|
|
|
displayEntries = stringArrayResource(R.array.bookshelf_px_array),
|
|
|
entryValues = Array(stringArrayResource(R.array.bookshelf_px_array).size) { it.toString() },
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.Sort, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfSort = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
// Sort Order
|
|
|
@@ -116,7 +119,9 @@ fun BookshelfConfigSheet(
|
|
|
stringResource(R.string.descending_order)
|
|
|
),
|
|
|
entryValues = arrayOf("0", "1"),
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.SortOrder, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfSortOrder = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
PillHeaderDivider(title = stringResource(R.string.bookshelf_section_layout))
|
|
|
@@ -139,14 +144,14 @@ fun BookshelfConfigSheet(
|
|
|
selectedValue = folderLayoutMode.toString(),
|
|
|
displayEntries = arrayOf(stringResource(R.string.layout_mode_list), stringResource(R.string.layout_mode_grid)),
|
|
|
entryValues = arrayOf("0", "1"),
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.FolderLayoutModeLandscape
|
|
|
- else BookshelfIntSetting.FolderLayoutModePortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfFolderLayoutModeLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfFolderLayoutModePortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -159,14 +164,14 @@ fun BookshelfConfigSheet(
|
|
|
value = folderGridCount.toFloat(),
|
|
|
valueRange = 1f..15f,
|
|
|
steps = 14,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.FolderLayoutGridLandscape
|
|
|
- else BookshelfIntSetting.FolderLayoutGridPortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfFolderLayoutGridLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfFolderLayoutGridPortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
@@ -181,14 +186,14 @@ fun BookshelfConfigSheet(
|
|
|
value = folderListCount.toFloat(),
|
|
|
valueRange = 1f..5f,
|
|
|
steps = 4,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.FolderLayoutListLandscape
|
|
|
- else BookshelfIntSetting.FolderLayoutListPortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfFolderLayoutListLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfFolderLayoutListPortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -197,8 +202,8 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfListCoverWidth.toFloat(),
|
|
|
valueRange = 40f..120f,
|
|
|
steps = 80,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.ListCoverWidth, it.toInt()))
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfListCoverWidth = value.toInt()) }
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
@@ -215,8 +220,8 @@ fun BookshelfConfigSheet(
|
|
|
selectedValue = settings.bookshelfGroupListStyle.toString(),
|
|
|
displayEntries = arrayOf(stringResource(R.string.group), stringResource(R.string.compact_list), stringResource(R.string.horizontal_cover_count)),
|
|
|
entryValues = arrayOf("0", "1", "2"),
|
|
|
- onValueChange = {
|
|
|
- onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.GroupListStyle, it.toInt()))
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfGroupListStyle = value.toInt()) }
|
|
|
}
|
|
|
)
|
|
|
AnimatedVisibility(visible = settings.bookshelfGroupListStyle == 2) {
|
|
|
@@ -225,8 +230,8 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfGroupCoverCount.toFloat(),
|
|
|
valueRange = 1f..10f,
|
|
|
steps = 9,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.GroupCoverCount, it.toInt()))
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfGroupCoverCount = value.toInt()) }
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
@@ -246,14 +251,14 @@ fun BookshelfConfigSheet(
|
|
|
stringResource(R.string.layout_mode_grid)
|
|
|
),
|
|
|
entryValues = arrayOf("0", "1"),
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.LayoutModeLandscape
|
|
|
- else BookshelfIntSetting.LayoutModePortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfLayoutModeLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfLayoutModePortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -268,7 +273,9 @@ fun BookshelfConfigSheet(
|
|
|
selectedValue = settings.bookshelfGridLayout.toString(),
|
|
|
displayEntries = stringArrayResource(R.array.bookshelf_grid_layout),
|
|
|
entryValues = Array(stringArrayResource(R.array.bookshelf_grid_layout).size) { it.toString() },
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.GridLayout, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfGridLayout = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
val gridCount =
|
|
|
@@ -278,14 +285,14 @@ fun BookshelfConfigSheet(
|
|
|
value = gridCount.toFloat(),
|
|
|
valueRange = 1f..15f,
|
|
|
steps = 14,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.LayoutGridLandscape
|
|
|
- else BookshelfIntSetting.LayoutGridPortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfLayoutGridLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfLayoutGridPortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -293,14 +300,18 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.compact_title_font),
|
|
|
checked = settings.bookshelfTitleSmallFont,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.TitleSmallFont, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfTitleSmallFont = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.center_aligned_title),
|
|
|
checked = settings.bookshelfTitleCenter,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.TitleCenter, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfTitleCenter = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSliderSettingItem(
|
|
|
@@ -308,7 +319,9 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfGridCoverWidth.toFloat(),
|
|
|
valueRange = 40f..150f,
|
|
|
steps = 110,
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.GridCoverWidth, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfGridCoverWidth = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
}
|
|
|
}
|
|
|
@@ -323,7 +336,9 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_divider_line),
|
|
|
checked = settings.bookshelfShowDivider,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowDivider, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfShowDivider = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactClickableSettingItem(
|
|
|
@@ -372,7 +387,9 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.compact_details),
|
|
|
checked = settings.bookshelfLayoutCompact,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.LayoutCompact, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfLayoutCompact = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
val listColCount =
|
|
|
@@ -382,7 +399,9 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfListCoverWidth.toFloat(),
|
|
|
valueRange = 40f..120f,
|
|
|
steps = 80,
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.ListCoverWidth, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfListCoverWidth = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSliderSettingItem(
|
|
|
@@ -390,14 +409,14 @@ fun BookshelfConfigSheet(
|
|
|
value = listColCount.toFloat(),
|
|
|
valueRange = 1f..5f,
|
|
|
steps = 4,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(
|
|
|
- BookshelfSettingsUpdate.IntValue(
|
|
|
- if (isLandscape) BookshelfIntSetting.LayoutListLandscape
|
|
|
- else BookshelfIntSetting.LayoutListPortrait,
|
|
|
- it.toInt(),
|
|
|
- )
|
|
|
- )
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate {
|
|
|
+ if (isLandscape) {
|
|
|
+ it.copy(bookshelfLayoutListLandscape = value.toInt())
|
|
|
+ } else {
|
|
|
+ it.copy(bookshelfLayoutListPortrait = value.toInt())
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -405,7 +424,9 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_more_info),
|
|
|
checked = settings.showBookIntro,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowBookIntro, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showBookIntro = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
AnimatedVisibility(visible = settings.showBookIntro) {
|
|
|
@@ -416,8 +437,8 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_latest_chapter),
|
|
|
checked = settings.bookshelfShowLatestChapter,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = {
|
|
|
- onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowLatestChapter, it))
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfShowLatestChapter = value) }
|
|
|
}
|
|
|
)
|
|
|
|
|
|
@@ -425,7 +446,9 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_synopsis),
|
|
|
checked = settings.bookshelfShowIntro,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowIntro, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfShowIntro = value) }
|
|
|
+ }
|
|
|
)
|
|
|
AnimatedVisibility(
|
|
|
visible = settings.bookshelfShowIntro
|
|
|
@@ -436,8 +459,8 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfIntroMaxLines.toFloat(),
|
|
|
valueRange = 0f..10f,
|
|
|
steps = 10,
|
|
|
- onValueChange = {
|
|
|
- onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.IntroMaxLines, it.toInt()))
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfIntroMaxLines = value.toInt()) }
|
|
|
}
|
|
|
)
|
|
|
}
|
|
|
@@ -445,7 +468,9 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_tags),
|
|
|
checked = settings.bookshelfShowTag,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowTag, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfShowTag = value) }
|
|
|
+ }
|
|
|
)
|
|
|
AnimatedVisibility(
|
|
|
visible = settings.bookshelfShowTag
|
|
|
@@ -487,14 +512,18 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfTitleMaxLines.toFloat(),
|
|
|
valueRange = 1f..5f,
|
|
|
steps = 4,
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.TitleMaxLines, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfTitleMaxLines = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.cover_shadow),
|
|
|
checked = settings.bookshelfCoverShadow,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.CoverShadow, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfCoverShadow = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
PillHeaderDivider(title = stringResource(R.string.bookshelf_section_badge))
|
|
|
@@ -503,42 +532,54 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.show_unread),
|
|
|
checked = settings.showUnread,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowUnread, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showUnread = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_unread_new),
|
|
|
checked = settings.showUnreadNew,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowUnreadNew, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showUnreadNew = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_wait_up_count),
|
|
|
checked = settings.showWaitUpCount,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowWaitUpCount, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showWaitUpCount = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_book_count),
|
|
|
checked = settings.showBookCount,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowBookCount, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showBookCount = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_last_update_time),
|
|
|
checked = settings.showLastUpdateTime,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowLastUpdateTime, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showLastUpdateTime = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_tip),
|
|
|
checked = settings.showTip,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowTip, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showTip = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
PillHeaderDivider(title = stringResource(R.string.other))
|
|
|
@@ -547,21 +588,27 @@ fun BookshelfConfigSheet(
|
|
|
title = stringResource(R.string.search_filter_first),
|
|
|
checked = settings.bookshelfSearchActionDirectToSearch,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.SearchActionDirectToSearch, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfSearchActionDirectToSearch = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_bookshelf_fast_scroller),
|
|
|
checked = settings.showBookshelfFastScroller,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowFastScroller, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(showBookshelfFastScroller = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSwitchSettingItem(
|
|
|
title = stringResource(R.string.show_bookshelf_tab_menu),
|
|
|
checked = settings.shouldShowExpandButton,
|
|
|
color = LegadoTheme.colorScheme.surface,
|
|
|
- onCheckedChange = { onUpdate(BookshelfSettingsUpdate.BooleanValue(BookshelfBooleanSetting.ShowExpandButton, it)) }
|
|
|
+ onCheckedChange = { value ->
|
|
|
+ onUpdate { it.copy(shouldShowExpandButton = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
CompactSliderSettingItem(
|
|
|
@@ -570,7 +617,9 @@ fun BookshelfConfigSheet(
|
|
|
value = settings.bookshelfRefreshingLimit.toFloat(),
|
|
|
valueRange = 0f..100f,
|
|
|
steps = 100,
|
|
|
- onValueChange = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.RefreshingLimit, it.toInt())) }
|
|
|
+ onValueChange = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfRefreshingLimit = value.toInt()) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
Spacer(modifier = Modifier.height(32.dp))
|
|
|
@@ -589,14 +638,18 @@ fun BookshelfConfigSheet(
|
|
|
show = showColorPicker,
|
|
|
initialColor = if (settings.bookshelfCardColor != 0) settings.bookshelfCardColor else LegadoTheme.colorScheme.surfaceVariant.toArgb(),
|
|
|
onDismissRequest = { showColorPicker = false },
|
|
|
- onColorSelected = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.CardColor, it)) }
|
|
|
+ onColorSelected = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfCardColor = value) }
|
|
|
+ }
|
|
|
)
|
|
|
|
|
|
ColorPickerSheet(
|
|
|
show = showColorPickerDark,
|
|
|
initialColor = if (settings.bookshelfCardColorDark != 0) settings.bookshelfCardColorDark else LegadoTheme.colorScheme.surfaceVariant.toArgb(),
|
|
|
onDismissRequest = { showColorPickerDark = false },
|
|
|
- onColorSelected = { onUpdate(BookshelfSettingsUpdate.IntValue(BookshelfIntSetting.CardColorDark, it)) }
|
|
|
+ onColorSelected = { value ->
|
|
|
+ onUpdate { it.copy(bookshelfCardColorDark = value) }
|
|
|
+ }
|
|
|
)
|
|
|
}
|
|
|
}
|