diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt index 5e933f0..169c91c 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/ScreenNavHost.kt @@ -1,5 +1,6 @@ package com.pixelized.rplexicon.ui.navigation +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.staticCompositionLocalOf @@ -32,6 +33,10 @@ fun ScreenNavHost( navHostController: NavHostController = rememberNavController(), startDestination: String = AUTHENTICATION_ROUTE, ) { + val lexiconLazyListState = rememberLazyListState() + val questsLazyListState = rememberLazyListState() + val locationsLazyListState = rememberLazyListState() + CompositionLocalProvider( LocalScreenNavHost provides navHostController, ) { @@ -46,11 +51,11 @@ fun ScreenNavHost( ) composableLanding() composableSearch() - composableLexicon() + composableLexicon(lazyListState = lexiconLazyListState) composableLexiconDetail() - composableQuests() + composableQuests(lazyListState = questsLazyListState) composableQuestDetail() - composableLocations() + composableLocations(lazyListState = locationsLazyListState) composableLocationDetail() composableCharacterSheet() composableSpellDetail() diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLexicon.kt b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLexicon.kt index 66c2c9c..47710f1 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLexicon.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLexicon.kt @@ -1,5 +1,6 @@ package com.pixelized.rplexicon.ui.navigation.screens +import androidx.compose.foundation.lazy.LazyListState import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.NavOptionsBuilder @@ -11,12 +12,12 @@ private const val ROUTE = "lexicon" const val LEXICON_LIST_ROUTE = ROUTE -fun NavGraphBuilder.composableLexicon() { +fun NavGraphBuilder.composableLexicon(lazyListState: LazyListState) { animatedComposable( route = LEXICON_LIST_ROUTE, animation = NavigationAnimation.Push, ) { - LexiconScreen() + LexiconScreen(lazyListState = lazyListState) } } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLocation.kt b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLocation.kt index 7cd2131..31e796b 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLocation.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableLocation.kt @@ -1,5 +1,6 @@ package com.pixelized.rplexicon.ui.navigation.screens +import androidx.compose.foundation.lazy.LazyListState import androidx.navigation.NavController import androidx.navigation.NavGraphBuilder import androidx.navigation.NavOptionsBuilder @@ -11,12 +12,12 @@ private const val ROUTE = "locations" const val LOCATION_LIST_ROUTE = ROUTE -fun NavGraphBuilder.composableLocations() { +fun NavGraphBuilder.composableLocations(lazyListState: LazyListState) { animatedComposable( route = LOCATION_LIST_ROUTE, animation = NavigationAnimation.Push, ) { - LocationScreen() + LocationScreen(lazyListState = lazyListState) } } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableQuestList.kt b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableQuestList.kt index 8e1ad9d..fcb9df2 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableQuestList.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/navigation/screens/ComposableQuestList.kt @@ -1,5 +1,6 @@ package com.pixelized.rplexicon.ui.navigation.screens +import androidx.compose.foundation.lazy.LazyListState import androidx.navigation.NavGraphBuilder import androidx.navigation.NavHostController import androidx.navigation.NavOptionsBuilder @@ -11,12 +12,12 @@ private const val ROUTE = "quests" const val QUEST_LIST_ROUTE = ROUTE -fun NavGraphBuilder.composableQuests() { +fun NavGraphBuilder.composableQuests(lazyListState: LazyListState) { animatedComposable( route = QUEST_LIST_ROUTE, animation = NavigationAnimation.Push, ) { - QuestListScreen() + QuestListScreen(lazyListState = lazyListState) } } diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconScreen.kt index 19ae3f6..7eda265 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/lexicon/list/LexiconScreen.kt @@ -61,10 +61,10 @@ import kotlinx.coroutines.launch @Composable fun LexiconScreen( viewModel: LexiconViewModel = hiltViewModel(), + lazyListState: LazyListState = rememberLazyListState(), ) { val screen = LocalScreenNavHost.current val scope = rememberCoroutineScope() - val lazyListState = rememberLazyListState() val refresh = rememberPullRefreshState( refreshing = false, onRefresh = { diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationScreen.kt index 82fc943..77f337e 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/location/list/LocationScreen.kt @@ -58,10 +58,10 @@ import kotlinx.coroutines.launch @Composable fun LocationScreen( viewModel: LocationViewModel = hiltViewModel(), + lazyListState: LazyListState = rememberLazyListState(), ) { val screen = LocalScreenNavHost.current val scope = rememberCoroutineScope() - val lazyListState = rememberLazyListState() val refresh = rememberPullRefreshState( refreshing = false, diff --git a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestListScreen.kt b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestListScreen.kt index c65247c..57c4210 100644 --- a/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestListScreen.kt +++ b/app/src/main/java/com/pixelized/rplexicon/ui/screens/quest/list/QuestListScreen.kt @@ -58,11 +58,10 @@ import kotlinx.coroutines.launch @Composable fun QuestListScreen( viewModel: QuestListViewModel = hiltViewModel(), + lazyListState: LazyListState = rememberLazyListState(), ) { val screen = LocalScreenNavHost.current val scope = rememberCoroutineScope() - val lazyListState = rememberLazyListState() - val refresh = rememberPullRefreshState( refreshing = false, onRefresh = {