nit: combine temperatureMetrics and useFahrenheit

This commit is contained in:
Han Yin 2025-04-13 15:13:07 -07:00
parent 5e4972e93e
commit af0d68d611
3 changed files with 13 additions and 22 deletions

View File

@ -1,7 +1,6 @@
package com.example.llama.revamp.ui.components package com.example.llama.revamp.ui.components
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.RowScope
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState import androidx.compose.material3.SnackbarHostState
@ -63,7 +62,7 @@ fun PerformanceAppScaffold(
// Collect performance metrics // Collect performance metrics
val memoryUsage by performanceViewModel.memoryUsage.collectAsState() val memoryUsage by performanceViewModel.memoryUsage.collectAsState()
val temperatureInfo by performanceViewModel.temperatureInfo.collectAsState() val temperatureInfo by performanceViewModel.temperatureMetrics.collectAsState()
val useFahrenheit by performanceViewModel.useFahrenheitUnit.collectAsState() val useFahrenheit by performanceViewModel.useFahrenheitUnit.collectAsState()
Scaffold( Scaffold(
@ -71,11 +70,9 @@ fun PerformanceAppScaffold(
PerformanceTopBar( PerformanceTopBar(
title = title, title = title,
memoryMetrics = memoryUsage, memoryMetrics = memoryUsage,
temperatureMetrics = temperatureInfo, temperatureDisplay = if (showTemperature) Pair(temperatureInfo, useFahrenheit) else null,
onNavigateBack = onNavigateBack, onNavigateBack = onNavigateBack,
onMenuOpen = onMenuOpen, onMenuOpen = onMenuOpen,
showTemperature = showTemperature,
useFahrenheit = useFahrenheit,
) )
}, },
snackbarHost = { snackbarHost = {

View File

@ -1,7 +1,6 @@
package com.example.llama.revamp.ui.components package com.example.llama.revamp.ui.components
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.RowScope
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
@ -10,7 +9,6 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Memory import androidx.compose.material.icons.filled.Memory
import androidx.compose.material.icons.filled.Menu import androidx.compose.material.icons.filled.Menu
import androidx.compose.material.icons.filled.SdStorage import androidx.compose.material.icons.filled.SdStorage
import androidx.compose.material.icons.filled.Storage
import androidx.compose.material.icons.filled.Thermostat import androidx.compose.material.icons.filled.Thermostat
import androidx.compose.material.icons.filled.WarningAmber import androidx.compose.material.icons.filled.WarningAmber
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
@ -70,11 +68,9 @@ fun DefaultTopBar(
fun PerformanceTopBar( fun PerformanceTopBar(
title: String, title: String,
memoryMetrics: MemoryMetrics, memoryMetrics: MemoryMetrics,
temperatureMetrics: TemperatureMetrics, temperatureDisplay: Pair<TemperatureMetrics, Boolean>?,
onNavigateBack: (() -> Unit)? = null, onNavigateBack: (() -> Unit)? = null,
onMenuOpen: (() -> Unit)? = null, onMenuOpen: (() -> Unit)? = null,
showTemperature: Boolean = false,
useFahrenheit: Boolean = false,
) { ) {
TopAppBar( TopAppBar(
title = { Text(title) }, title = { Text(title) },
@ -100,9 +96,9 @@ fun PerformanceTopBar(
}, },
actions = { actions = {
// Temperature indicator (optional) // Temperature indicator (optional)
if (showTemperature) { temperatureDisplay?.let { (temperatureMetrics, useFahrenheit) ->
TemperatureIndicator( TemperatureIndicator(
temperature = temperatureMetrics, temperatureMetrics = temperatureMetrics,
useFahrenheit = useFahrenheit useFahrenheit = useFahrenheit
) )
@ -174,15 +170,15 @@ fun MemoryIndicator(memoryUsage: MemoryMetrics) {
} }
@Composable @Composable
fun TemperatureIndicator(temperature: TemperatureMetrics, useFahrenheit: Boolean) { fun TemperatureIndicator(temperatureMetrics: TemperatureMetrics, useFahrenheit: Boolean) {
Row(verticalAlignment = Alignment.CenterVertically) { Row(verticalAlignment = Alignment.CenterVertically) {
Icon( Icon(
imageVector = when (temperature.warningLevel) { imageVector = when (temperatureMetrics.warningLevel) {
TemperatureWarningLevel.HIGH -> Icons.Default.WarningAmber TemperatureWarningLevel.HIGH -> Icons.Default.WarningAmber
else -> Icons.Default.Thermostat else -> Icons.Default.Thermostat
}, },
contentDescription = "Device temperature", contentDescription = "Device temperature",
tint = when (temperature.warningLevel) { tint = when (temperatureMetrics.warningLevel) {
TemperatureWarningLevel.HIGH -> MaterialTheme.colorScheme.error TemperatureWarningLevel.HIGH -> MaterialTheme.colorScheme.error
TemperatureWarningLevel.MEDIUM -> MaterialTheme.colorScheme.tertiary TemperatureWarningLevel.MEDIUM -> MaterialTheme.colorScheme.tertiary
else -> MaterialTheme.colorScheme.onSurface else -> MaterialTheme.colorScheme.onSurface
@ -191,12 +187,10 @@ fun TemperatureIndicator(temperature: TemperatureMetrics, useFahrenheit: Boolean
Spacer(modifier = Modifier.width(2.dp)) Spacer(modifier = Modifier.width(2.dp))
val tempDisplay = if (useFahrenheit) temperature.fahrenheitDisplay else temperature.celsiusDisplay
Text( Text(
text = tempDisplay, text = temperatureMetrics.getDisplay(useFahrenheit),
style = MaterialTheme.typography.bodySmall, style = MaterialTheme.typography.bodySmall,
color = when (temperature.warningLevel) { color = when (temperatureMetrics.warningLevel) {
TemperatureWarningLevel.HIGH -> MaterialTheme.colorScheme.error TemperatureWarningLevel.HIGH -> MaterialTheme.colorScheme.error
TemperatureWarningLevel.MEDIUM -> MaterialTheme.colorScheme.tertiary TemperatureWarningLevel.MEDIUM -> MaterialTheme.colorScheme.tertiary
else -> MaterialTheme.colorScheme.onSurface else -> MaterialTheme.colorScheme.onSurface

View File

@ -32,8 +32,8 @@ class PerformanceViewModel(
val batteryInfo: StateFlow<BatteryMetrics> = _batteryInfo.asStateFlow() val batteryInfo: StateFlow<BatteryMetrics> = _batteryInfo.asStateFlow()
// Temperature information // Temperature information
private val _temperatureInfo = MutableStateFlow(TemperatureMetrics(0f, TemperatureWarningLevel.NORMAL)) private val _temperatureMetrics = MutableStateFlow(TemperatureMetrics(0f, TemperatureWarningLevel.NORMAL))
val temperatureInfo: StateFlow<TemperatureMetrics> = _temperatureInfo.asStateFlow() val temperatureMetrics: StateFlow<TemperatureMetrics> = _temperatureMetrics.asStateFlow()
// User preferences // User preferences
private val _isMonitoringEnabled = MutableStateFlow(true) private val _isMonitoringEnabled = MutableStateFlow(true)
@ -79,7 +79,7 @@ class PerformanceViewModel(
viewModelScope.launch { viewModelScope.launch {
performanceMonitor.monitorTemperature(interval * 2).collect { metrics -> performanceMonitor.monitorTemperature(interval * 2).collect { metrics ->
_temperatureInfo.value = metrics _temperatureMetrics.value = metrics
} }
} }
} }