diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/AppScaffolds.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/AppScaffolds.kt index 22676c882a..7955b18b7c 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/AppScaffolds.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/AppScaffolds.kt @@ -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 = { diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/TopAppBars.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/TopAppBars.kt index 3f60036047..41a4153fbf 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/TopAppBars.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/ui/components/TopAppBars.kt @@ -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?, 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 diff --git a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt index 29e5284ad2..0b0451b2c5 100644 --- a/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt +++ b/examples/llama.android/app/src/main/java/com/example/llama/revamp/viewmodel/PerformanceViewModel.kt @@ -32,8 +32,8 @@ class PerformanceViewModel( val batteryInfo: StateFlow = _batteryInfo.asStateFlow() // Temperature information - private val _temperatureInfo = MutableStateFlow(TemperatureMetrics(0f, TemperatureWarningLevel.NORMAL)) - val temperatureInfo: StateFlow = _temperatureInfo.asStateFlow() + private val _temperatureMetrics = MutableStateFlow(TemperatureMetrics(0f, TemperatureWarningLevel.NORMAL)) + val temperatureMetrics: StateFlow = _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 } } }