diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/filter_bottom_sheet/BrowseFilterBottomSheet.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/filter_bottom_sheet/BrowseFilterBottomSheet.kt index c5f1711d..1a981ce4 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/filter_bottom_sheet/BrowseFilterBottomSheet.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/browse/components/filter_bottom_sheet/BrowseFilterBottomSheet.kt @@ -58,6 +58,7 @@ fun BrowseFilterBottomSheet() { LazyColumn(Modifier.fillMaxSize()) { BrowseGeneralSubcategory( showTitle = false, + showDivider = false, topPadding = 16.dp, bottomPadding = 8.dp + it ) @@ -68,6 +69,7 @@ fun BrowseFilterBottomSheet() { LazyColumn(Modifier.fillMaxSize()) { BrowseFilterSubcategory( showTitle = false, + showDivider = false, topPadding = 16.dp, bottomPadding = 8.dp + it ) @@ -78,6 +80,7 @@ fun BrowseFilterBottomSheet() { LazyColumn(Modifier.fillMaxSize()) { BrowseSortSubcategory( showTitle = false, + showDivider = false, topPadding = 16.dp, bottomPadding = 8.dp + it ) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheet.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheet.kt index 4077ad29..a4b5b35a 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheet.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheet.kt @@ -93,6 +93,7 @@ fun ReaderSettingsBottomSheet() { ) MiscSubcategory( titleColor = { MaterialTheme.colorScheme.onSurface }, + showDivider = false, topPadding = 22.dp, bottomPadding = 8.dp + it ) @@ -113,6 +114,7 @@ fun ReaderSettingsBottomSheet() { ) TranslatorSubcategory( titleColor = { MaterialTheme.colorScheme.onSurface }, + showDivider = false, topPadding = 22.dp, bottomPadding = 8.dp + it ) @@ -123,6 +125,7 @@ fun ReaderSettingsBottomSheet() { LazyColumn(Modifier.fillMaxSize()) { ColorsSubcategory( showTitle = false, + showDivider = false, backgroundColor = { MaterialTheme.colorScheme.surfaceContainer }, topPadding = 16.dp, bottomPadding = 8.dp + it diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/components/SettingsSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/components/SettingsSubcategory.kt new file mode 100644 index 00000000..aa99096f --- /dev/null +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/components/SettingsSubcategory.kt @@ -0,0 +1,67 @@ +@file:Suppress("FunctionName") + +package ua.acclorite.book_story.presentation.screens.settings.components + +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyListScope +import androidx.compose.material3.HorizontalDivider +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.coerceAtLeast +import androidx.compose.ui.unit.dp +import ua.acclorite.book_story.presentation.core.components.CategoryTitle + +/** + * Settings Subcategory. + * Root for all Subcategories. + * + * @param titleColor The color of the title. + * @param title The title. + * @param showTitle Whether title should be shown. + * @param showDivider Whether divider at the end of the category should be shown. + * @param topPadding Top padding. + * @param bottomPadding Bottom padding. + * @param content Settings to be placed inside this subcategory. + */ +fun LazyListScope.SettingsSubcategory( + titleColor: @Composable () -> Color, + title: @Composable () -> String, + showTitle: Boolean, + showDivider: Boolean, + topPadding: Dp, + bottomPadding: Dp, + content: LazyListScope.() -> Unit +) { + item { + if (showTitle) { + CategoryTitle( + title = title.invoke(), + color = titleColor.invoke(), + modifier = Modifier + .padding( + top = topPadding, + bottom = 8.dp + ) + ) + } else { + Spacer( + modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) + ) + } + } + + content() + + item { + if (showDivider) { + Spacer(modifier = Modifier.height(10.dp)) + HorizontalDivider() + } + + Spacer(modifier = Modifier.height(bottomPadding)) + } +} \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/AppearanceSettingsCategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/AppearanceSettingsCategory.kt index ea8cce2c..74f32fbc 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/AppearanceSettingsCategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/AppearanceSettingsCategory.kt @@ -31,6 +31,7 @@ fun LazyListScope.AppearanceSettingsCategory( ) ColorsSubcategory( titleColor = titleColor, + showDivider = false, topPadding = 22.dp, bottomPadding = bottomPadding ) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ColorsSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ColorsSubcategory.kt index 47ca5603..01c1be8f 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ColorsSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ColorsSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.settings.ColorPresetSetting import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.settings.FastColorPresetChangeSetting @@ -28,38 +22,24 @@ fun LazyListScope.ColorsSubcategory( title: @Composable () -> String = { stringResource(id = R.string.colors_appearance_settings) }, backgroundColor: @Composable () -> Color = { MaterialTheme.colorScheme.surfaceContainerLow }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + ColorPresetSetting(backgroundColor = backgroundColor.invoke()) + } + + item { + FastColorPresetChangeSetting() } } - - item { - ColorPresetSetting(backgroundColor = backgroundColor.invoke()) - } - - item { - FastColorPresetChangeSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ThemePreferencesSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ThemePreferencesSubcategory.kt index c8ced355..661b5a64 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ThemePreferencesSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/appearance/components/subcategories/ThemePreferencesSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.settings.AbsoluteDarkSetting import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.settings.DarkThemeSetting import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.settings.PureDarkSetting @@ -30,50 +24,36 @@ fun LazyListScope.ThemePreferencesSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.theme_appearance_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + DarkThemeSetting() + } + + item { + ThemeSetting() + } + + item { + ThemeContrastSetting() + } + + item { + PureDarkSetting() + } + + item { + AbsoluteDarkSetting() } } - - item { - DarkThemeSetting() - } - - item { - ThemeSetting() - } - - item { - ThemeContrastSetting() - } - - item { - PureDarkSetting() - } - - item { - AbsoluteDarkSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/BrowseSettingsCategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/BrowseSettingsCategory.kt index b121b9c7..3d8b6aca 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/BrowseSettingsCategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/BrowseSettingsCategory.kt @@ -29,6 +29,7 @@ fun LazyListScope.BrowseSettingsCategory( bottomPadding = 0.dp ) BrowseSortSubcategory( + showDivider = false, topPadding = 22.dp, bottomPadding = bottomPadding ) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseFilterSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseFilterSubcategory.kt index 4437fa32..4621bd84 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseFilterSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseFilterSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.settings.BrowseFilterSetting /** @@ -26,32 +20,18 @@ fun LazyListScope.BrowseFilterSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.filter_browse_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) - } - } - - BrowseFilterSetting() - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + BrowseFilterSetting() } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseGeneralSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseGeneralSubcategory.kt index 69febacf..98499d73 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseGeneralSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseGeneralSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.settings.BrowseFilesStructureSetting import ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.settings.BrowseGridSizeSetting import ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.settings.BrowseLayoutSetting @@ -29,46 +23,32 @@ fun LazyListScope.BrowseGeneralSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.general_browse_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + BrowseFilesStructureSetting() + } + + item { + BrowsePinFavoriteDirectoriesSetting() + } + + item { + BrowseLayoutSetting() + } + + item { + BrowseGridSizeSetting() } } - - item { - BrowseFilesStructureSetting() - } - - item { - BrowsePinFavoriteDirectoriesSetting() - } - - item { - BrowseLayoutSetting() - } - - item { - BrowseGridSizeSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseSortSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseSortSubcategory.kt index f5d92085..f3a4191d 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseSortSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/browse/components/subcategories/BrowseSortSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.browse.components.settings.BrowseSortOrderSetting /** @@ -26,32 +20,18 @@ fun LazyListScope.BrowseSortSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.sort_browse_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) - } - } - - BrowseSortOrderSetting() - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + BrowseSortOrderSetting() } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/general/components/GeneralSettingsCategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/general/components/GeneralSettingsCategory.kt index 37141667..82bfa681 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/general/components/GeneralSettingsCategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/general/components/GeneralSettingsCategory.kt @@ -25,9 +25,7 @@ fun LazyListScope.GeneralSettingsCategory( bottomPadding: Dp = 48.dp ) { item { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + Spacer(modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp))) } item { @@ -43,8 +41,6 @@ fun LazyListScope.GeneralSettingsCategory( } item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) + Spacer(modifier = Modifier.height(bottomPadding)) } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/ReaderSettingsCategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/ReaderSettingsCategory.kt index 11e4bf58..8de258e7 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/ReaderSettingsCategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/ReaderSettingsCategory.kt @@ -50,6 +50,7 @@ fun LazyListScope.ReaderSettingsCategory( ) MiscSubcategory( titleColor = titleColor, + showDivider = false, topPadding = 22.dp, bottomPadding = bottomPadding ) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/FontSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/FontSubcategory.kt index b559e052..1fc31274 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/FontSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/FontSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.FontFamilySetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.FontSizeSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.FontStyleSetting @@ -29,46 +23,32 @@ fun LazyListScope.FontSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.font_reader_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + FontFamilySetting() + } + + item { + FontStyleSetting() + } + + item { + FontSizeSetting() + } + + item { + LetterSpacingSetting() } } - - item { - FontFamilySetting() - } - - item { - FontStyleSetting() - } - - item { - FontSizeSetting() - } - - item { - LetterSpacingSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/MiscSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/MiscSubcategory.kt index bf560633..8e5fb3ae 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/MiscSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/MiscSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.FullscreenSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.KeepScreenOnSetting @@ -27,38 +21,24 @@ fun LazyListScope.MiscSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.misc_reader_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + FullscreenSetting() + } + + item { + KeepScreenOnSetting() } } - - item { - FullscreenSetting() - } - - item { - KeepScreenOnSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/PaddingSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/PaddingSubcategory.kt index 9307c81d..934cebcb 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/PaddingSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/PaddingSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.CutoutPaddingSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.SidePaddingSetting @@ -27,38 +21,24 @@ fun LazyListScope.PaddingSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.padding_reader_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + SidePaddingSetting() + } + + item { + CutoutPaddingSetting() } } - - item { - SidePaddingSetting() - } - - item { - CutoutPaddingSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TextSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TextSubcategory.kt index 153db8c5..fe9ca883 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TextSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TextSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.LineHeightSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.ParagraphHeightSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.ParagraphIndentationSetting @@ -29,46 +23,32 @@ fun LazyListScope.TextSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.text_reader_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + TextAlignmentSetting() + } + + item { + LineHeightSetting() + } + + item { + ParagraphHeightSetting() + } + + item { + ParagraphIndentationSetting() } } - - item { - TextAlignmentSetting() - } - - item { - LineHeightSetting() - } - - item { - ParagraphHeightSetting() - } - - item { - ParagraphIndentationSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TranslatorSubcategory.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TranslatorSubcategory.kt index de194a3a..1402d570 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TranslatorSubcategory.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/TranslatorSubcategory.kt @@ -2,20 +2,14 @@ package ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.coerceAtLeast -import androidx.compose.ui.unit.dp import ua.acclorite.book_story.R -import ua.acclorite.book_story.presentation.core.components.CategoryTitle +import ua.acclorite.book_story.presentation.screens.settings.components.SettingsSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.DoubleClickTranslationSetting /** @@ -26,34 +20,20 @@ fun LazyListScope.TranslatorSubcategory( titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, title: @Composable () -> String = { stringResource(id = R.string.translator_reader_settings) }, showTitle: Boolean = true, + showDivider: Boolean = true, topPadding: Dp, bottomPadding: Dp ) { - item { - if (showTitle) { - CategoryTitle( - title = title.invoke(), - color = titleColor.invoke(), - modifier = Modifier - .padding( - top = topPadding, - bottom = 8.dp - ) - ) - } else { - Spacer( - modifier = Modifier.height((topPadding - 8.dp).coerceAtLeast(0.dp)) - ) + SettingsSubcategory( + titleColor = titleColor, + title = title, + showTitle = showTitle, + showDivider = showDivider, + topPadding = topPadding, + bottomPadding = bottomPadding + ) { + item { + DoubleClickTranslationSetting() } } - - item { - DoubleClickTranslationSetting() - } - - item { - Spacer( - modifier = Modifier.height(bottomPadding) - ) - } } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/start/components/StartAppearanceScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/start/components/StartAppearanceScreen.kt index b46e7eba..89146139 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/start/components/StartAppearanceScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/start/components/StartAppearanceScreen.kt @@ -12,6 +12,7 @@ import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.c fun LazyListScope.startAppearanceScreen() { ThemePreferencesSubcategory( title = { stringResource(id = R.string.start_theme_preferences) }, + showDivider = false, topPadding = 16.dp, bottomPadding = 8.dp )