From 541aa257f4bd1df87034a5fd326cafa19a2f0b16 Mon Sep 17 00:00:00 2001 From: acclorite Date: Sun, 14 Jul 2024 23:46:34 +0300 Subject: [PATCH] LicensesScreen: Saving list position. --- ...lBehaivor.kt => CollapsibleUntilExitScrollBehavior.kt} | 8 ++++---- .../screens/about/nested/licenses/LicensesScreen.kt | 4 +++- .../screens/about/nested/licenses/data/LicensesState.kt | 4 +++- 3 files changed, 10 insertions(+), 6 deletions(-) rename app/src/main/java/ua/acclorite/book_story/presentation/components/{CollapsibleUntilExitScrollBehaivor.kt => CollapsibleUntilExitScrollBehavior.kt} (86%) diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehaivor.kt b/app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehavior.kt similarity index 86% rename from app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehaivor.kt rename to app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehavior.kt index eebb797e..5e23d57e 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehaivor.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/components/CollapsibleUntilExitScrollBehavior.kt @@ -20,14 +20,14 @@ import kotlinx.coroutines.flow.collectLatest @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState( - + listState: LazyListState? = null ): Pair { - val listState = rememberLazyListState() + val lazyListState = listState ?: rememberLazyListState() var canScroll by remember { mutableStateOf(false) } val scrollBehavior = exitUntilCollapsedScrollBehavior( canScroll = { - listState.canScrollForward || canScroll + lazyListState.canScrollForward || canScroll } ) @@ -39,7 +39,7 @@ fun TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState( } } - return scrollBehavior to listState + return scrollBehavior to lazyListState } diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/LicensesScreen.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/LicensesScreen.kt index c0c936d7..0522dd46 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/LicensesScreen.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/LicensesScreen.kt @@ -63,7 +63,9 @@ private fun LicensesScreen( state: State, onNavigate: OnNavigate ) { - val scrollState = TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState() + val scrollState = TopAppBarDefaults.collapsibleUntilExitScrollBehaviorWithLazyListState( + state.value.listState + ) Scaffold( Modifier diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/data/LicensesState.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/data/LicensesState.kt index 7508a4f3..0265ee26 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/data/LicensesState.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/about/nested/licenses/data/LicensesState.kt @@ -1,9 +1,11 @@ package ua.acclorite.book_story.presentation.screens.about.nested.licenses.data +import androidx.compose.foundation.lazy.LazyListState import androidx.compose.runtime.Immutable import com.mikepenz.aboutlibraries.entity.Library @Immutable data class LicensesState( - val licenses: List = emptyList() + val licenses: List = emptyList(), + val listState: LazyListState = LazyListState() )