in health-platform-v1/HealthPlatformSample/app/src/main/java/com/example/healthplatformsample/presentation/navigation/HealthPlatformNavigation.kt [35:81]
fun HealthPlatformNavigation(
navController: NavHostController = rememberNavController(),
healthPlatformManager: HealthPlatformManager,
scaffoldState: ScaffoldState
) {
val scope = rememberCoroutineScope()
NavHost(navController = navController, startDestination = Screen.SessionList.route) {
composable(Screen.SessionList.route) {
ListSessionsScreen(
healthPlatformManager = healthPlatformManager,
onDetailsClick = { uid ->
val route = Screen.SessionDetail.route + "/" + uid
navController.navigate(route)
},
onError = { context, exception ->
showExceptionSnackbar(scaffoldState, scope, exception)
context.tryHealthDataResolution(exception)
}
)
}
composable(
route = Screen.SessionDetail.route + "/{$UID_NAV_ARGUMENT}",
arguments = listOf(
navArgument(UID_NAV_ARGUMENT) { type = NavType.StringType }
)
) {
val uid = it.arguments?.getString(UID_NAV_ARGUMENT)!!
SessionDetailScreen(
healthPlatformManager = healthPlatformManager,
uid = uid,
onError = { context, exception ->
showExceptionSnackbar(scaffoldState, scope, exception)
context.tryHealthDataResolution(exception)
}
)
}
composable(Screen.TotalSteps.route) {
TotalStepsScreen(
healthPlatformManager = healthPlatformManager,
onError = { context, exception ->
showExceptionSnackbar(scaffoldState, scope, exception)
context.tryHealthDataResolution(exception)
}
)
}
}
}