UI: app navigation
This commit is contained in:
parent
3f913ce440
commit
32608fb225
|
|
@ -0,0 +1,47 @@
|
|||
package com.example.llama.revamp.navigation
|
||||
|
||||
import androidx.navigation.NavController
|
||||
|
||||
/**
|
||||
* Navigation destinations for the app
|
||||
*/
|
||||
object AppDestinations {
|
||||
const val MODEL_SELECTION_ROUTE = "model_selection"
|
||||
const val MODE_SELECTION_ROUTE = "mode_selection"
|
||||
const val CONVERSATION_ROUTE = "conversation"
|
||||
const val BENCHMARK_ROUTE = "benchmark"
|
||||
const val SETTINGS_ROUTE = "settings"
|
||||
}
|
||||
|
||||
/**
|
||||
* Navigation actions to be performed in the app
|
||||
*/
|
||||
class NavigationActions(private val navController: NavController) {
|
||||
|
||||
fun navigateToModelSelection() {
|
||||
navController.navigate(AppDestinations.MODEL_SELECTION_ROUTE) {
|
||||
// Clear back stack to start fresh
|
||||
popUpTo(AppDestinations.MODEL_SELECTION_ROUTE) { inclusive = true }
|
||||
}
|
||||
}
|
||||
|
||||
fun navigateToModeSelection() {
|
||||
navController.navigate(AppDestinations.MODE_SELECTION_ROUTE)
|
||||
}
|
||||
|
||||
fun navigateToConversation() {
|
||||
navController.navigate(AppDestinations.CONVERSATION_ROUTE)
|
||||
}
|
||||
|
||||
fun navigateToBenchmark() {
|
||||
navController.navigate(AppDestinations.BENCHMARK_ROUTE)
|
||||
}
|
||||
|
||||
fun navigateToSettings(tab: String = "GENERAL") {
|
||||
navController.navigate("${AppDestinations.SETTINGS_ROUTE}/$tab")
|
||||
}
|
||||
|
||||
fun navigateUp() {
|
||||
navController.navigateUp()
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue