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
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.RowScope
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarHost
import androidx.compose.material3.SnackbarHostState
@ -63,7 +62,7 @@ fun PerformanceAppScaffold(
// Collect performance metrics
val memoryUsage by performanceViewModel.memoryUsage.collectAsState()
val temperatureInfo by performanceViewModel.temperatureInfo.collectAsState()
val temperatureInfo by performanceViewModel.temperatureMetrics.collectAsState()
val useFahrenheit by performanceViewModel.useFahrenheitUnit.collectAsState()
Scaffold(
@ -71,11 +70,9 @@ fun PerformanceAppScaffold(
PerformanceTopBar(
title = title,
memoryMetrics = memoryUsage,
temperatureMetrics = temperatureInfo,
temperatureDisplay = if (showTemperature) Pair(temperatureInfo, useFahrenheit) else null,
onNavigateBack = onNavigateBack,
onMenuOpen = onMenuOpen,
showTemperature = showTemperature,
useFahrenheit = useFahrenheit,
)
},
snackbarHost = {

View File

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

View File

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