From b1f7e6176fe03ce3353070b94e0468a0b929c33d Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Wed, 8 Jan 2025 13:20:52 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20More=20precise=20contro?= =?UTF-8?q?l=20over=20text=20entry=20visibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/reader/ReaderLayout.kt | 7 +- .../presentation/reader/ReaderLayoutText.kt | 92 ++++++++++--------- 2 files changed, 52 insertions(+), 47 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt index 085c09e4..3fe32731 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayout.kt @@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.displayCutout import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyListState -import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -150,13 +149,11 @@ fun ReaderLayout( .coerceAtLeast(18.dp), ) ) { - itemsIndexed( - text, key = { index, _ -> index } - ) { index, textEntry -> + for (entry in text) { ReaderLayoutText( activity = activity, showMenu = showMenu, - entry = textEntry, + entry = entry, fontFamily = fontFamily, fontColor = fontColor, lineHeight = lineHeight, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayoutText.kt b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayoutText.kt index 3c90430b..7e07a865 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayoutText.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/reader/ReaderLayoutText.kt @@ -1,8 +1,9 @@ +@file:Suppress("FunctionName") + package ua.acclorite.book_story.presentation.reader import androidx.activity.ComponentActivity -import androidx.compose.foundation.lazy.LazyItemScope -import androidx.compose.runtime.Composable +import androidx.compose.foundation.lazy.LazyListScope import androidx.compose.ui.Alignment import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontStyle @@ -14,8 +15,7 @@ import ua.acclorite.book_story.domain.reader.ReaderText import ua.acclorite.book_story.domain.reader.ReaderTextAlignment import ua.acclorite.book_story.ui.reader.ReaderEvent -@Composable -fun LazyItemScope.ReaderLayoutText( +fun LazyListScope.ReaderLayoutText( activity: ComponentActivity, showMenu: Boolean, entry: ReaderText, @@ -40,53 +40,61 @@ fun LazyItemScope.ReaderLayoutText( ) { when (entry) { is ReaderText.Image -> { - ReaderLayoutTextImage( - entry = entry, - sidePadding = sidePadding - ) + item { + ReaderLayoutTextImage( + entry = entry, + sidePadding = sidePadding + ) + } } is ReaderText.Separator -> { - ReaderLayoutTextSeparator( - sidePadding = sidePadding, - fontColor = fontColor - ) + item { + ReaderLayoutTextSeparator( + sidePadding = sidePadding, + fontColor = fontColor + ) + } } is ReaderText.Chapter -> { - ReaderLayoutTextChapter( - chapter = entry, - chapterTitleAlignment = chapterTitleAlignment, - fontColor = fontColor, - sidePadding = sidePadding, - highlightedReading = highlightedReading, - highlightedReadingThickness = highlightedReadingThickness - ) + item { + ReaderLayoutTextChapter( + chapter = entry, + chapterTitleAlignment = chapterTitleAlignment, + fontColor = fontColor, + sidePadding = sidePadding, + highlightedReading = highlightedReading, + highlightedReadingThickness = highlightedReadingThickness + ) + } } is ReaderText.Text -> { - ReaderLayoutTextParagraph( - paragraph = entry, - activity = activity, - showMenu = showMenu, - fontFamily = fontFamily, - fontColor = fontColor, - lineHeight = lineHeight, - fontStyle = fontStyle, - textAlignment = textAlignment, - horizontalAlignment = horizontalAlignment, - fontSize = fontSize, - letterSpacing = letterSpacing, - sidePadding = sidePadding, - paragraphIndentation = paragraphIndentation, - fullscreenMode = fullscreenMode, - doubleClickTranslation = doubleClickTranslation, - highlightedReading = highlightedReading, - highlightedReadingThickness = highlightedReadingThickness, - toolbarHidden = toolbarHidden, - openTranslator = openTranslator, - menuVisibility = menuVisibility - ) + item { + ReaderLayoutTextParagraph( + paragraph = entry, + activity = activity, + showMenu = showMenu, + fontFamily = fontFamily, + fontColor = fontColor, + lineHeight = lineHeight, + fontStyle = fontStyle, + textAlignment = textAlignment, + horizontalAlignment = horizontalAlignment, + fontSize = fontSize, + letterSpacing = letterSpacing, + sidePadding = sidePadding, + paragraphIndentation = paragraphIndentation, + fullscreenMode = fullscreenMode, + doubleClickTranslation = doubleClickTranslation, + highlightedReading = highlightedReading, + highlightedReadingThickness = highlightedReadingThickness, + toolbarHidden = toolbarHidden, + openTranslator = openTranslator, + menuVisibility = menuVisibility + ) + } } } } \ No newline at end of file