UI: fix the model unload dialog message; elevate the model card and hide it by default on Conversation screen;

This commit is contained in:
Han Yin 2025-08-29 17:08:35 -07:00
parent b75377676f
commit 7313b41574
6 changed files with 10 additions and 16 deletions

View File

@ -94,7 +94,7 @@ fun ModelCardCoreExpandable(
)
false -> CardDefaults.cardColors()
},
elevation = CardDefaults.cardElevation(defaultElevation = 2.dp)
elevation = CardDefaults.cardElevation(defaultElevation = 12.dp)
) {
Column(
modifier = Modifier.padding(16.dp),

View File

@ -30,6 +30,7 @@ import com.example.llama.viewmodel.UnloadModelState
*/
@Composable
fun ModelUnloadDialogHandler(
message: String,
unloadModelState: UnloadModelState,
onUnloadConfirmed: (onNavigateBack: () -> Unit) -> Unit,
onUnloadDismissed: () -> Unit,
@ -38,15 +39,17 @@ fun ModelUnloadDialogHandler(
when (unloadModelState) {
is UnloadModelState.Confirming -> {
UnloadModelDialog(
message = message,
onConfirm = {
onUnloadConfirmed(onNavigateBack)
},
onDismiss = onUnloadDismissed,
isUnloading = false
isUnloading = false,
)
}
is UnloadModelState.Unloading -> {
UnloadModelDialog(
message = message,
onConfirm = {
onUnloadConfirmed(onNavigateBack)
},
@ -72,6 +75,7 @@ fun ModelUnloadDialogHandler(
@Composable
private fun UnloadModelDialog(
message: String,
onConfirm: () -> Unit,
onDismiss: () -> Unit,
isUnloading: Boolean = false
@ -86,10 +90,7 @@ private fun UnloadModelDialog(
},
text = {
Column {
Text(
"Going back will unload the current model. " +
"Any unsaved conversation will be lost."
)
Text(message)
if (isUnloading) {
Spacer(modifier = Modifier.height(16.dp))

View File

@ -178,6 +178,7 @@ fun BenchmarkScreen(
// Unload confirmation dialog
ModelUnloadDialogHandler(
message = "Going back will unload the current model and clear all the benchmark results.",
unloadModelState = unloadDialogState,
onUnloadConfirmed = { viewModel.onUnloadConfirmed(onNavigateBack) },
onUnloadDismissed = { viewModel.onUnloadDismissed() },

View File

@ -205,6 +205,7 @@ fun ConversationScreen(
// Unload confirmation dialog
ModelUnloadDialogHandler(
message = "Going back will unload the current model and clear the whole conversation.",
unloadModelState = unloadDialogState,
onUnloadConfirmed = { viewModel.onUnloadConfirmed(onNavigateBack) },
onUnloadDismissed = { viewModel.onUnloadDismissed() },

View File

@ -83,7 +83,6 @@ fun ModelLoadingScreen(
val selectedModel by viewModel.selectedModel.collectAsState()
val presetPrompts by viewModel.presetPrompts.collectAsState()
val recentPrompts by viewModel.recentPrompts.collectAsState()
val unloadDialogState by viewModel.unloadModelState.collectAsState()
// UI states
var isModelCardExpanded by remember { mutableStateOf(false) }
@ -385,14 +384,6 @@ fun ModelLoadingScreen(
}
}
}
// Unload confirmation dialog
ModelUnloadDialogHandler(
unloadModelState = unloadDialogState,
onUnloadConfirmed = { viewModel.onUnloadConfirmed(onNavigateBack) },
onUnloadDismissed = { viewModel.onUnloadDismissed() },
onNavigateBack = onNavigateBack,
)
}
@Composable

View File

@ -30,7 +30,7 @@ class ConversationViewModel @Inject constructor(
val systemPrompt = conversationService.systemPrompt
// UI state: Model card
private val _showModelCard = MutableStateFlow(true)
private val _showModelCard = MutableStateFlow(false)
val showModelCard = _showModelCard.asStateFlow()
fun toggleModelCard(show: Boolean) {