Skip to content

Instantly share code, notes, and snippets.

@igorescodro
Created April 26, 2021 12:21
Show Gist options
  • Save igorescodro/bf67e8dc1cd8d250eeaadae39fcea8c3 to your computer and use it in GitHub Desktop.
Save igorescodro/bf67e8dc1cd8d250eeaadae39fcea8c3 to your computer and use it in GitHub Desktop.
@Composable
fun NavGraph(startDestination: String = "Home") {
val navController = rememberNavController()
val context = LocalContext.current
val actions = remember(navController) { Actions(navController, context) }
NavHost(navController = navController, startDestination = startDestination) {
composable("Home") {
Home(onDynamicClick = actions.onDynamicClick)
}
composable("TaskList") {
TaskList(onUpPress = actions.onUpPress)
}
composable("About") {
About(onUpPress = actions.onUpPress)
}
}
}
internal data class Actions(val navController: NavHostController, val context: Context) {
val onUpPress: () -> Unit = {
navController.navigateUp()
}
val onDynamicClick: () -> Unit = {
SplitInstall(context).loadFeature("dynamic_feature") {
onFeatureReady {
val intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("app://com.example.dynamic")
`package` = context.packageName
}
context.startActivity(intent)
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment