🛠️ Fix issues with Paragraph Indentation
* Fixed indent is not even for all paragraphs in Justify text alignment * Disabled indent for END and CENTER text alignments
This commit is contained in:
parent
287e92b0d2
commit
e70848a9cf
3 changed files with 33 additions and 22 deletions
|
|
@ -82,6 +82,7 @@ import ua.acclorite.book_story.presentation.screens.reader.components.app_bar.Re
|
||||||
import ua.acclorite.book_story.presentation.screens.reader.components.readerFastColorPresetChange
|
import ua.acclorite.book_story.presentation.screens.reader.components.readerFastColorPresetChange
|
||||||
import ua.acclorite.book_story.presentation.screens.reader.components.settings_bottom_sheet.ReaderSettingsBottomSheet
|
import ua.acclorite.book_story.presentation.screens.reader.components.settings_bottom_sheet.ReaderSettingsBottomSheet
|
||||||
import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent
|
import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent
|
||||||
|
import ua.acclorite.book_story.presentation.screens.settings.nested.reader.data.ReaderTextAlignment
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ReaderScreenRoot(screen: Screen.Reader) {
|
fun ReaderScreenRoot(screen: Screen.Reader) {
|
||||||
|
|
@ -250,12 +251,17 @@ private fun ReaderScreen(lazyListState: LazyListState) {
|
||||||
false -> FontStyle.Normal
|
false -> FontStyle.Normal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val paragraphIndentation = remember(mainState.value.paragraphIndentation) {
|
val paragraphIndentation = remember(
|
||||||
var indentation = ""
|
mainState.value.paragraphIndentation,
|
||||||
repeat(mainState.value.paragraphIndentation) {
|
mainState.value.textAlignment
|
||||||
indentation += " "
|
) {
|
||||||
|
if (
|
||||||
|
mainState.value.textAlignment == ReaderTextAlignment.CENTER ||
|
||||||
|
mainState.value.textAlignment == ReaderTextAlignment.END
|
||||||
|
) {
|
||||||
|
return@remember 0.sp
|
||||||
}
|
}
|
||||||
indentation
|
(mainState.value.paragraphIndentation * 6).sp
|
||||||
}
|
}
|
||||||
|
|
||||||
val density = LocalDensity.current
|
val density = LocalDensity.current
|
||||||
|
|
|
||||||
|
|
@ -15,10 +15,10 @@ import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.TextStyle
|
import androidx.compose.ui.text.TextStyle
|
||||||
import androidx.compose.ui.text.buildAnnotatedString
|
|
||||||
import androidx.compose.ui.text.font.FontStyle
|
import androidx.compose.ui.text.font.FontStyle
|
||||||
import androidx.compose.ui.text.style.LineBreak
|
import androidx.compose.ui.text.style.LineBreak
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
|
import androidx.compose.ui.text.style.TextIndent
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
import androidx.compose.ui.unit.TextUnit
|
import androidx.compose.ui.unit.TextUnit
|
||||||
import ua.acclorite.book_story.R
|
import ua.acclorite.book_story.R
|
||||||
|
|
@ -59,7 +59,7 @@ fun LazyItemScope.ReaderTextParagraph(
|
||||||
fontSize: TextUnit,
|
fontSize: TextUnit,
|
||||||
letterSpacing: TextUnit,
|
letterSpacing: TextUnit,
|
||||||
sidePadding: Dp,
|
sidePadding: Dp,
|
||||||
paragraphIndentation: String,
|
paragraphIndentation: TextUnit,
|
||||||
fullscreenMode: Boolean,
|
fullscreenMode: Boolean,
|
||||||
doubleClickTranslationEnabled: Boolean,
|
doubleClickTranslationEnabled: Boolean,
|
||||||
toolbarHidden: Boolean
|
toolbarHidden: Boolean
|
||||||
|
|
@ -81,10 +81,7 @@ fun LazyItemScope.ReaderTextParagraph(
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
BasicText(
|
BasicText(
|
||||||
text = buildAnnotatedString {
|
text = line,
|
||||||
append(paragraphIndentation)
|
|
||||||
append(line)
|
|
||||||
},
|
|
||||||
modifier = Modifier.then(
|
modifier = Modifier.then(
|
||||||
if (
|
if (
|
||||||
doubleClickTranslationEnabled &&
|
doubleClickTranslationEnabled &&
|
||||||
|
|
@ -128,6 +125,7 @@ fun LazyItemScope.ReaderTextParagraph(
|
||||||
ReaderTextAlignment.CENTER -> TextAlign.Center
|
ReaderTextAlignment.CENTER -> TextAlign.Center
|
||||||
ReaderTextAlignment.END -> TextAlign.End
|
ReaderTextAlignment.END -> TextAlign.End
|
||||||
},
|
},
|
||||||
|
textIndent = TextIndent(firstLine = paragraphIndentation),
|
||||||
fontStyle = fontStyle,
|
fontStyle = fontStyle,
|
||||||
letterSpacing = letterSpacing,
|
letterSpacing = letterSpacing,
|
||||||
fontSize = fontSize,
|
fontSize = fontSize,
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import ua.acclorite.book_story.R
|
||||||
import ua.acclorite.book_story.presentation.core.components.LocalMainViewModel
|
import ua.acclorite.book_story.presentation.core.components.LocalMainViewModel
|
||||||
import ua.acclorite.book_story.presentation.data.MainEvent
|
import ua.acclorite.book_story.presentation.data.MainEvent
|
||||||
import ua.acclorite.book_story.presentation.screens.settings.components.SliderWithTitle
|
import ua.acclorite.book_story.presentation.screens.settings.components.SliderWithTitle
|
||||||
|
import ua.acclorite.book_story.presentation.screens.settings.nested.reader.data.ReaderTextAlignment
|
||||||
|
import ua.acclorite.book_story.presentation.ui.ExpandingTransition
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Paragraph Indentation setting.
|
* Paragraph Indentation setting.
|
||||||
|
|
@ -16,10 +18,14 @@ fun ParagraphIndentationSetting() {
|
||||||
val state = LocalMainViewModel.current.state
|
val state = LocalMainViewModel.current.state
|
||||||
val onMainEvent = LocalMainViewModel.current.onEvent
|
val onMainEvent = LocalMainViewModel.current.onEvent
|
||||||
|
|
||||||
|
ExpandingTransition(
|
||||||
|
visible = state.value.textAlignment != ReaderTextAlignment.CENTER &&
|
||||||
|
state.value.textAlignment != ReaderTextAlignment.END
|
||||||
|
) {
|
||||||
SliderWithTitle(
|
SliderWithTitle(
|
||||||
value = state.value.paragraphIndentation to "pt",
|
value = state.value.paragraphIndentation to "pt",
|
||||||
fromValue = 0,
|
fromValue = 0,
|
||||||
toValue = 10,
|
toValue = 12,
|
||||||
title = stringResource(id = R.string.paragraph_indentation_option),
|
title = stringResource(id = R.string.paragraph_indentation_option),
|
||||||
onValueChange = {
|
onValueChange = {
|
||||||
onMainEvent(
|
onMainEvent(
|
||||||
|
|
@ -27,4 +33,5 @@ fun ParagraphIndentationSetting() {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue