From cff4b07d7d3504cbaa22e926fc0164189a209b15 Mon Sep 17 00:00:00 2001 From: timklge <2026103+timklge@users.noreply.github.com> Date: Mon, 5 May 2025 15:31:03 +0200 Subject: [PATCH] Fix throttle setting label on K2 (#120) --- .../kotlin/de/timklge/karooheadwind/HeadwindSettings.kt | 4 ++-- .../de/timklge/karooheadwind/screens/SettingsScreen.kt | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/HeadwindSettings.kt b/app/src/main/kotlin/de/timklge/karooheadwind/HeadwindSettings.kt index 7ef6ff7..71f24bf 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/HeadwindSettings.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/HeadwindSettings.kt @@ -70,8 +70,8 @@ enum class RefreshRate(val id: String, val k2Ms: Long, val k3Ms: Long) { SLOW("slow", 5_000L, 3_000L), MINIMUM("minimum", 10_000L, 10_000L); - fun getDescription(karooSystemService: KarooSystemService): String { - return if (karooSystemService.hardwareType == HardwareType.K2) { + fun getDescription(isOnK2: Boolean): String { + return if (isOnK2) { when (this) { FAST -> "Fast (1s)" STANDARD -> "Standard (2s)" diff --git a/app/src/main/kotlin/de/timklge/karooheadwind/screens/SettingsScreen.kt b/app/src/main/kotlin/de/timklge/karooheadwind/screens/SettingsScreen.kt index e6ffae8..df4b9ee 100644 --- a/app/src/main/kotlin/de/timklge/karooheadwind/screens/SettingsScreen.kt +++ b/app/src/main/kotlin/de/timklge/karooheadwind/screens/SettingsScreen.kt @@ -84,6 +84,7 @@ fun SettingsScreen(onFinish: () -> Unit) { var selectedWeatherProvider by remember { mutableStateOf(WeatherDataProvider.OPEN_METEO) } var openWeatherMapApiKey by remember { mutableStateOf("") } + var isK2 by remember { mutableStateOf(false) } LaunchedEffect(Unit) { ctx.streamSettings(karooSystem).collect { settings -> @@ -102,6 +103,7 @@ fun SettingsScreen(onFinish: () -> Unit) { LaunchedEffect(Unit) { karooSystem.connect { connected -> karooConnected = connected + isK2 = karooSystem.hardwareType == io.hammerhead.karooext.models.HardwareType.K2 } } @@ -151,8 +153,8 @@ fun SettingsScreen(onFinish: () -> Unit) { .verticalScroll(rememberScrollState()) .fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(10.dp) ) { - val refreshRateDropdownOptions = RefreshRate.entries.toList().map { unit -> DropdownOption(unit.id, unit.getDescription(karooSystem)) } - val refreshRateSelection by remember(refreshRateSetting) { + val refreshRateDropdownOptions = remember(isK2) { RefreshRate.entries.toList().map { unit -> DropdownOption(unit.id, unit.getDescription(isK2)) } } + val refreshRateSelection by remember(refreshRateSetting, isK2) { mutableStateOf(refreshRateDropdownOptions.find { option -> option.id == refreshRateSetting.id }!!) } Dropdown( @@ -160,8 +162,7 @@ fun SettingsScreen(onFinish: () -> Unit) { options = refreshRateDropdownOptions, selected = refreshRateSelection ) { selectedOption -> - refreshRateSetting = - RefreshRate.entries.find { unit -> unit.id == selectedOption.id }!! + refreshRateSetting = RefreshRate.entries.find { unit -> unit.id == selectedOption.id }!! } val windDirectionIndicatorSettingDropdownOptions =