UI: better usage of tertiary colors to highlight model cards but not for warnings
This commit is contained in:
parent
ad85bca98b
commit
930e707608
|
|
@ -35,6 +35,7 @@ import androidx.compose.runtime.CompositionLocalProvider
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.text.font.FontStyle
|
import androidx.compose.ui.text.font.FontStyle
|
||||||
import androidx.compose.ui.text.font.FontWeight
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.unit.Dp
|
import androidx.compose.ui.unit.Dp
|
||||||
|
|
@ -56,9 +57,15 @@ import java.util.Locale
|
||||||
@Composable
|
@Composable
|
||||||
fun ModelCardCoreExpandable(
|
fun ModelCardCoreExpandable(
|
||||||
model: ModelInfo,
|
model: ModelInfo,
|
||||||
|
containerColor: Color = MaterialTheme.colorScheme.primaryContainer,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onExpanded: ((Boolean) -> Unit)? = null
|
onExpanded: ((Boolean) -> Unit)? = null
|
||||||
) = ModelCardCoreExpandable(model, isExpanded, onExpanded) {
|
) = ModelCardCoreExpandable(
|
||||||
|
model = model,
|
||||||
|
containerColor = containerColor,
|
||||||
|
isExpanded = isExpanded,
|
||||||
|
onExpanded = onExpanded
|
||||||
|
) {
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
// Row 2: Context length, size label
|
// Row 2: Context length, size label
|
||||||
|
|
@ -80,6 +87,7 @@ fun ModelCardCoreExpandable(
|
||||||
@Composable
|
@Composable
|
||||||
fun ModelCardCoreExpandable(
|
fun ModelCardCoreExpandable(
|
||||||
model: ModelInfo,
|
model: ModelInfo,
|
||||||
|
containerColor: Color = MaterialTheme.colorScheme.primaryContainer,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onExpanded: ((Boolean) -> Unit)? = null,
|
onExpanded: ((Boolean) -> Unit)? = null,
|
||||||
expandableSection: @Composable () -> Unit
|
expandableSection: @Composable () -> Unit
|
||||||
|
|
@ -89,9 +97,7 @@ fun ModelCardCoreExpandable(
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.clickable { onExpanded?.invoke(!isExpanded) },
|
.clickable { onExpanded?.invoke(!isExpanded) },
|
||||||
colors = when (isExpanded) {
|
colors = when (isExpanded) {
|
||||||
true -> CardDefaults.cardColors(
|
true -> CardDefaults.cardColors(containerColor = containerColor)
|
||||||
containerColor = MaterialTheme.colorScheme.primaryContainer
|
|
||||||
)
|
|
||||||
false -> CardDefaults.cardColors()
|
false -> CardDefaults.cardColors()
|
||||||
},
|
},
|
||||||
elevation = CardDefaults.cardElevation(defaultElevation = 12.dp)
|
elevation = CardDefaults.cardElevation(defaultElevation = 12.dp)
|
||||||
|
|
@ -151,6 +157,7 @@ fun ModelCardCoreExpandable(
|
||||||
@Composable
|
@Composable
|
||||||
fun ModelCardFullExpandable(
|
fun ModelCardFullExpandable(
|
||||||
model: ModelInfo,
|
model: ModelInfo,
|
||||||
|
containerColor: Color = MaterialTheme.colorScheme.primaryContainer,
|
||||||
isSelected: Boolean? = null,
|
isSelected: Boolean? = null,
|
||||||
onSelected: ((Boolean) -> Unit)? = null,
|
onSelected: ((Boolean) -> Unit)? = null,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
|
|
@ -162,9 +169,7 @@ fun ModelCardFullExpandable(
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.clickable { onExpanded?.invoke(!isExpanded) },
|
.clickable { onExpanded?.invoke(!isExpanded) },
|
||||||
colors = when (isSelected) {
|
colors = when (isSelected) {
|
||||||
true -> CardDefaults.cardColors(
|
true -> CardDefaults.cardColors(containerColor = containerColor)
|
||||||
containerColor = MaterialTheme.colorScheme.primaryContainer
|
|
||||||
)
|
|
||||||
false -> CardDefaults.cardColors()
|
false -> CardDefaults.cardColors()
|
||||||
else -> CardDefaults.cardColors()
|
else -> CardDefaults.cardColors()
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ private fun StorageIndicator(
|
||||||
contentDescription = "Storage",
|
contentDescription = "Storage",
|
||||||
tint = when {
|
tint = when {
|
||||||
storageMetrics.availableGB < 5.0f -> MaterialTheme.colorScheme.error
|
storageMetrics.availableGB < 5.0f -> MaterialTheme.colorScheme.error
|
||||||
storageMetrics.availableGB < 10.0f -> MaterialTheme.colorScheme.tertiary
|
storageMetrics.availableGB < 10.0f -> MaterialTheme.colorScheme.error.copy(alpha = 0.7f)
|
||||||
else -> MaterialTheme.colorScheme.onSurface
|
else -> MaterialTheme.colorScheme.onSurface
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,12 @@ private fun ModelCardWithLoadingMetrics(
|
||||||
loadingMetrics: ModelLoadingMetrics,
|
loadingMetrics: ModelLoadingMetrics,
|
||||||
isExpanded: Boolean = false,
|
isExpanded: Boolean = false,
|
||||||
onExpanded: ((Boolean) -> Unit)? = null,
|
onExpanded: ((Boolean) -> Unit)? = null,
|
||||||
) = ModelCardCoreExpandable(model, isExpanded, onExpanded) {
|
) = ModelCardCoreExpandable(
|
||||||
|
model = model,
|
||||||
|
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
|
isExpanded = isExpanded,
|
||||||
|
onExpanded = onExpanded
|
||||||
|
) {
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
// Row 2: Context length, size label
|
// Row 2: Context length, size label
|
||||||
|
|
|
||||||
|
|
@ -237,7 +237,12 @@ fun ModelCardWithSystemPrompt(
|
||||||
systemPrompt: String?,
|
systemPrompt: String?,
|
||||||
isExpanded: Boolean = true,
|
isExpanded: Boolean = true,
|
||||||
onExpanded: ((Boolean) -> Unit)? = null,
|
onExpanded: ((Boolean) -> Unit)? = null,
|
||||||
) = ModelCardCoreExpandable(model, isExpanded, onExpanded) {
|
) = ModelCardCoreExpandable(
|
||||||
|
model = model,
|
||||||
|
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
|
isExpanded = isExpanded,
|
||||||
|
onExpanded = onExpanded
|
||||||
|
) {
|
||||||
Spacer(modifier = Modifier.height(8.dp))
|
Spacer(modifier = Modifier.height(8.dp))
|
||||||
|
|
||||||
// Row 2: Context length, size label
|
// Row 2: Context length, size label
|
||||||
|
|
|
||||||
|
|
@ -137,6 +137,7 @@ fun ModelLoadingScreen(
|
||||||
selectedModel?.let { model ->
|
selectedModel?.let { model ->
|
||||||
ModelCardCoreExpandable(
|
ModelCardCoreExpandable(
|
||||||
model = model,
|
model = model,
|
||||||
|
containerColor = MaterialTheme.colorScheme.tertiaryContainer,
|
||||||
isExpanded = isModelCardExpanded,
|
isExpanded = isModelCardExpanded,
|
||||||
onExpanded = { isModelCardExpanded = !isModelCardExpanded },
|
onExpanded = { isModelCardExpanded = !isModelCardExpanded },
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,8 @@ class ConversationViewModel @Inject constructor(
|
||||||
// Add placeholder for assistant response
|
// Add placeholder for assistant response
|
||||||
val assistantMessage = Message.Assistant.Ongoing(
|
val assistantMessage = Message.Assistant.Ongoing(
|
||||||
content = "",
|
content = "",
|
||||||
timestamp = System.currentTimeMillis()
|
timestamp = System.currentTimeMillis(),
|
||||||
|
tokensCount = 0,
|
||||||
)
|
)
|
||||||
_messages.value += assistantMessage
|
_messages.value += assistantMessage
|
||||||
|
|
||||||
|
|
@ -139,7 +140,8 @@ class ConversationViewModel @Inject constructor(
|
||||||
// Ongoing message update
|
// Ongoing message update
|
||||||
add(Message.Assistant.Ongoing(
|
add(Message.Assistant.Ongoing(
|
||||||
content = update.text,
|
content = update.text,
|
||||||
timestamp = it.timestamp
|
timestamp = it.timestamp,
|
||||||
|
tokensCount = it.tokensCount + 1,
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
_messages.value = toList()
|
_messages.value = toList()
|
||||||
|
|
@ -187,6 +189,7 @@ sealed class Message {
|
||||||
data class Ongoing(
|
data class Ongoing(
|
||||||
override val timestamp: Long,
|
override val timestamp: Long,
|
||||||
override val content: String,
|
override val content: String,
|
||||||
|
val tokensCount: Int,
|
||||||
) : Assistant()
|
) : Assistant()
|
||||||
|
|
||||||
data class Stopped(
|
data class Stopped(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue