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 50831d2a..13f1a294 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 @@ -5,6 +5,7 @@ import androidx.compose.animation.animateColorAsState import androidx.compose.animation.core.animateFloatAsState import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.pager.HorizontalPager @@ -23,7 +24,10 @@ import ua.acclorite.book_story.presentation.core.components.LocalReaderViewModel import ua.acclorite.book_story.presentation.core.components.custom_bottom_sheet.CustomBottomSheet import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent import ua.acclorite.book_story.presentation.screens.settings.nested.appearance.components.subcategories.ColorsSubcategory -import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.ReaderSettingsCategory +import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.FontSubcategory +import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.PaddingSubcategory +import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.TextSubcategory +import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.TranslatorSubcategory /** * Settings bottom sheet. Has General and Colors categories. @@ -77,23 +81,37 @@ fun ReaderSettingsBottomSheet() { HorizontalPager(state = pagerState) { page -> if (page == 0) { - LazyColumn { - + LazyColumn(Modifier.fillMaxSize()) { + PaddingSubcategory( + titleColor = { MaterialTheme.colorScheme.onSurface }, + topPadding = 22.dp, + bottomPadding = 0.dp + ) } } if (page == 1) { - LazyColumn { - ReaderSettingsCategory( + LazyColumn(Modifier.fillMaxSize()) { + FontSubcategory( titleColor = { MaterialTheme.colorScheme.onSurface }, topPadding = 16.dp, + bottomPadding = 0.dp + ) + TextSubcategory( + titleColor = { MaterialTheme.colorScheme.onSurface }, + topPadding = 22.dp, + bottomPadding = 0.dp + ) + TranslatorSubcategory( + titleColor = { MaterialTheme.colorScheme.onSurface }, + topPadding = 22.dp, bottomPadding = 8.dp + it ) } } if (page == 2) { - LazyColumn { + LazyColumn(Modifier.fillMaxSize()) { ColorsSubcategory( showTitle = false, backgroundColor = { MaterialTheme.colorScheme.surfaceContainer }, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheetTabRow.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheetTabRow.kt index 582824ee..49f52cd3 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheetTabRow.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/settings_bottom_sheet/ReaderSettingsBottomSheetTabRow.kt @@ -20,6 +20,7 @@ fun ReaderSettingsBottomSheetTabRow(pagerState: PagerState) { val tabItems = listOf( stringResource(id = R.string.general_tab), + stringResource(id = R.string.reader_tab), stringResource(id = R.string.color_tab) ) 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 b5a961fb..8bfdf079 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 @@ -10,6 +10,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import ua.acclorite.book_story.presentation.core.components.CategoryTitle import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.FontSubcategory +import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.PaddingSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.TextSubcategory import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.subcategories.TranslatorSubcategory @@ -36,6 +37,11 @@ fun LazyListScope.ReaderSettingsCategory( topPadding = 22.dp, bottomPadding = 0.dp ) + PaddingSubcategory( + titleColor = titleColor, + topPadding = 22.dp, + bottomPadding = 0.dp + ) TranslatorSubcategory( titleColor = titleColor, topPadding = 22.dp, 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 new file mode 100644 index 00000000..07876cc2 --- /dev/null +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/settings/nested/reader/components/subcategories/PaddingSubcategory.kt @@ -0,0 +1,59 @@ +@file:Suppress("FunctionName") + +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.nested.reader.components.settings.SidePaddingSetting + +/** + * Padding subcategory. + * Contains all settings related to padding. + */ +fun LazyListScope.PaddingSubcategory( + titleColor: @Composable () -> Color = { MaterialTheme.colorScheme.primary }, + title: @Composable () -> String = { stringResource(id = R.string.padding_reader_settings) }, + showTitle: 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)) + ) + } + } + + item { + SidePaddingSetting() + } + + 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 dd9d3b85..153db8c5 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 @@ -19,7 +19,6 @@ import ua.acclorite.book_story.presentation.core.components.CategoryTitle 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 -import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.SidePaddingSetting import ua.acclorite.book_story.presentation.screens.settings.nested.reader.components.settings.TextAlignmentSetting /** @@ -55,10 +54,6 @@ fun LazyListScope.TextSubcategory( TextAlignmentSetting() } - item { - SidePaddingSetting() - } - item { LineHeightSetting() } diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index fabc2db5..7397a7b9 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -183,6 +183,7 @@ Кольори Фільтр Сортування + Читач Головні @@ -198,6 +199,7 @@ Шрифт Текст Перекладач + Відступи Налаштування теми Кольори Головні diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a7bcf68f..c57a0672 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -200,6 +200,7 @@ Colors Filter Sort + Reader General @@ -215,6 +216,7 @@ Font Text Translator + Padding Theme preferences Colors General