android: integrate AndroidX Navigation

This commit is contained in:
Harsh Shandilya 2021-10-04 15:12:13 +05:30
parent e053ca2028
commit e85e25aa50
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
3 changed files with 19 additions and 9 deletions

View file

@ -20,6 +20,7 @@ dependencies {
implementation(libs.androidx.appcompat)
implementation(libs.androidx.coreKtx)
implementation(libs.androidx.lifecycle.compose)
implementation(libs.androidx.navigation.compose)
implementation(libs.androidx.paging.compose)
implementation(libs.dagger.hilt.android)
implementation(libs.sqldelight.extensions.coroutines)

View file

@ -20,6 +20,9 @@ import androidx.compose.ui.input.nestedscroll.NestedScrollConnection
import androidx.compose.ui.input.nestedscroll.NestedScrollSource
import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.lifecycle.viewmodel.compose.viewModel
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import androidx.navigation.compose.rememberNavController
import androidx.paging.compose.collectAsLazyPagingItems
import com.google.accompanist.insets.ProvideWindowInsets
import com.google.accompanist.insets.navigationBarsPadding
@ -40,6 +43,7 @@ fun LobstersApp(
val systemUiController = rememberSystemUiController()
val scaffoldState = rememberScaffoldState()
val listState = rememberLazyListState()
val navController = rememberNavController()
var isFabVisible by remember { mutableStateOf(true) }
val nestedScrollConnection = remember {
object : NestedScrollConnection {
@ -79,15 +83,19 @@ fun LobstersApp(
)
},
) {
HottestPosts(
items,
listState,
viewModel::isPostSaved,
viewModel::toggleSave,
viewModel::reloadPosts,
urlLauncher::launch,
Modifier.nestedScroll(nestedScrollConnection),
)
NavHost(navController, startDestination = "hottest") {
composable("hottest") {
HottestPosts(
items,
listState,
viewModel::isPostSaved,
viewModel::toggleSave,
viewModel::reloadPosts,
urlLauncher::launch,
Modifier.nestedScroll(nestedScrollConnection),
)
}
}
}
}
}