nit: combine temperatureMetrics and useFahrenheit
This commit is contained in:
parent
5e4972e93e
commit
af0d68d611
|
|
@ -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 = {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue