From 32608fb22504b7d79ded3bdf593342d8b682a3a9 Mon Sep 17 00:00:00 2001 From: Han Yin Date: Fri, 11 Apr 2025 14:36:49 -0700 Subject: [PATCH] UI: app navigation --- .../revamp/navigation/AppDestinations.kt | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 examples/llama.android/app/src/main/java/com/example/llama/revamp/navigation/AppDestinations.kt diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/navigation/AppDestinations.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/navigation/AppDestinations.kt new file mode 100644 index 0000000000..9b26514db4 --- /dev/null +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/navigation/AppDestinations.kt @@ -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() + } +}