From 2a20ab29fae362fbbab1d889ea901e1a848555ee Mon Sep 17 00:00:00 2001 From: acclorite Date: Sun, 9 Jun 2024 20:33:34 +0300 Subject: [PATCH] =?UTF-8?q?Moved=20ReaderScreen=20top=20and=20bottom=20bar?= =?UTF-8?q?s=20color=20to=20Theme.kt=20=E2=86=92=20Colors.readerSystemBars?= =?UTF-8?q?Color=20+=20Longer=20delay=20for=20progress=20to=20update(may?= =?UTF-8?q?=20result=20in=20a=20little=20performance=20improvement).=20(v1?= =?UTF-8?q?.0.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/screens/reader/ReaderScreen.kt | 7 ++----- .../screens/reader/components/app_bar/ReaderBottomBar.kt | 8 +++----- .../screens/reader/components/app_bar/ReaderTopBar.kt | 8 +++----- .../presentation/screens/reader/data/ReaderViewModel.kt | 2 +- .../java/ua/acclorite/book_story/presentation/ui/Theme.kt | 6 ++++++ 5 files changed, 15 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt index 2a9bd067..e412c5a0 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/ReaderScreen.kt @@ -165,7 +165,6 @@ private fun ReaderScreen( ) { val context = LocalContext.current as ComponentActivity val density = LocalDensity.current - val systemBarsColor = MaterialTheme.colorScheme.surfaceContainerHighest.copy(0.94f) val nestedScrollConnection = remember(state) { object : NestedScrollConnection { @@ -284,8 +283,7 @@ private fun ReaderScreen( state = state, onEvent = onEvent, onLibraryUpdateEvent = onLibraryEvent, - onHistoryUpdateEvent = onHistoryEvent, - containerColor = systemBarsColor + onHistoryUpdateEvent = onHistoryEvent ) } }, @@ -300,8 +298,7 @@ private fun ReaderScreen( state = state, onEvent = onEvent, onLibraryUpdateEvent = onLibraryEvent, - onHistoryUpdateEvent = onHistoryEvent, - containerColor = systemBarsColor + onHistoryUpdateEvent = onHistoryEvent ) } } diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt index 9cd839a9..952d1ac7 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderBottomBar.kt @@ -20,7 +20,6 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import ua.acclorite.book_story.presentation.data.LocalNavigator import ua.acclorite.book_story.presentation.data.removeDigits @@ -29,6 +28,7 @@ import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderState +import ua.acclorite.book_story.presentation.ui.Colors /** * Reader bottom bar. Has a slider to change progress. @@ -37,15 +37,13 @@ import ua.acclorite.book_story.presentation.screens.reader.data.ReaderState * @param onEvent [ReaderEvent] callback. * @param onLibraryUpdateEvent [LibraryEvent] callback. * @param onHistoryUpdateEvent [HistoryEvent] callback. - * @param containerColor Container color. */ @Composable fun ReaderBottomBar( state: State, onEvent: (ReaderEvent) -> Unit, onLibraryUpdateEvent: (LibraryEvent.OnUpdateBook) -> Unit, - onHistoryUpdateEvent: (HistoryEvent.OnUpdateBook) -> Unit, - containerColor: Color + onHistoryUpdateEvent: (HistoryEvent.OnUpdateBook) -> Unit ) { val navigator = LocalNavigator.current val progress by remember(state.value.book.progress) { @@ -61,7 +59,7 @@ fun ReaderBottomBar( Column( Modifier .fillMaxWidth() - .background(containerColor) + .background(Colors.readerSystemBarsColor) .clickable( interactionSource = null, indication = null, diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt index 28f98f45..58274490 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/components/app_bar/ReaderTopBar.kt @@ -21,7 +21,6 @@ import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontFamily @@ -37,6 +36,7 @@ import ua.acclorite.book_story.presentation.screens.history.data.HistoryEvent import ua.acclorite.book_story.presentation.screens.library.data.LibraryEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderEvent import ua.acclorite.book_story.presentation.screens.reader.data.ReaderState +import ua.acclorite.book_story.presentation.ui.Colors /** * Reader top bar. Displays title of the book. @@ -45,7 +45,6 @@ import ua.acclorite.book_story.presentation.screens.reader.data.ReaderState * @param onEvent [ReaderEvent] callback. * @param onLibraryUpdateEvent [LibraryEvent] callback. * @param onHistoryUpdateEvent [HistoryEvent] callback. - * @param containerColor Container color. */ @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -53,8 +52,7 @@ fun ReaderTopBar( state: State, onEvent: (ReaderEvent) -> Unit, onLibraryUpdateEvent: (LibraryEvent.OnUpdateBook) -> Unit, - onHistoryUpdateEvent: (HistoryEvent.OnUpdateBook) -> Unit, - containerColor: Color + onHistoryUpdateEvent: (HistoryEvent.OnUpdateBook) -> Unit ) { val navigator = LocalNavigator.current val context = LocalContext.current as ComponentActivity @@ -161,7 +159,7 @@ fun ReaderTopBar( } }, colors = TopAppBarDefaults.topAppBarColors( - containerColor = containerColor + containerColor = Colors.readerSystemBarsColor ) ) } \ No newline at end of file diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt index 1248bd0f..63d86b0b 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/reader/data/ReaderViewModel.kt @@ -1279,7 +1279,7 @@ class ReaderViewModel @Inject constructor( snapshotFlow { firstVisibleItemIndex to firstVisibleItemOffset } - .debounce(200) + .debounce(300) .collectLatest { items -> val listState = _state.value.listState if ( diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Theme.kt b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Theme.kt index a07f4a2a..e15ec35e 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/ui/Theme.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/ui/Theme.kt @@ -115,6 +115,12 @@ fun BookStoryTheme( ) } +object Colors { + val readerSystemBarsColor: Color + @Composable + get() = MaterialTheme.colorScheme.surfaceContainerHighest.copy(0.94f) +} + @Composable private fun animateColor(targetColor: Color): Color { return animateColorAsState(