From 41e368641b22d8a6bf0b265c0dac762909479da0 Mon Sep 17 00:00:00 2001 From: James Rich <2199651+jamesarich@users.noreply.github.com> Date: Wed, 20 May 2026 20:29:56 -0700 Subject: [PATCH] fix(settings): remote admin always showed local node config (#5560) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../feature/settings/navigation/SettingsNavigation.kt | 3 +-- .../feature/settings/radio/RadioConfigViewModel.kt | 5 +---- .../feature/settings/radio/ProfileRoundTripTest.kt | 3 +-- .../feature/settings/radio/RadioConfigViewModelTest.kt | 5 ++--- 4 files changed, 5 insertions(+), 11 deletions(-) diff --git a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/navigation/SettingsNavigation.kt b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/navigation/SettingsNavigation.kt index 18e2707bb..790b13f1f 100644 --- a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/navigation/SettingsNavigation.kt +++ b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/navigation/SettingsNavigation.kt @@ -20,7 +20,6 @@ import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.remember -import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.lifecycle.compose.dropUnlessResumed import androidx.navigation3.runtime.EntryProviderScope @@ -80,7 +79,7 @@ fun getRadioConfigViewModel(backStack: NavBackStack, destNumOverride: In backStack.lastOrNull { it is SettingsRoute.Settings }?.let { (it as SettingsRoute.Settings).destNum } } return koinViewModel(key = destNum?.toString()) { - parametersOf(SavedStateHandle(mapOf("destNum" to destNum))) + parametersOf(destNum) } } diff --git a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt index 991a27d97..4b9fdcdd1 100644 --- a/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt +++ b/feature/settings/src/commonMain/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt @@ -16,7 +16,6 @@ */ package org.meshtastic.feature.settings.radio -import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import co.touchlab.kermit.Logger @@ -115,7 +114,7 @@ data class RadioConfigState( @KoinViewModel @Suppress("LongParameterList") open class RadioConfigViewModel( - @InjectedParam savedStateHandle: SavedStateHandle, + @InjectedParam private val destNum: Int?, private val radioConfigRepository: RadioConfigRepository, private val packetRepository: PacketRepository, private val serviceRepository: ServiceRepository, @@ -184,8 +183,6 @@ open class RadioConfigViewModel( _mqttProbeStatus.value = null } - private val destNum: Int? = savedStateHandle.get("destNum") - private val _destNode = MutableStateFlow(null) val destNode: StateFlow get() = _destNode diff --git a/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/ProfileRoundTripTest.kt b/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/ProfileRoundTripTest.kt index b01a9cad7..8990246bf 100644 --- a/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/ProfileRoundTripTest.kt +++ b/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/ProfileRoundTripTest.kt @@ -16,7 +16,6 @@ */ package org.meshtastic.feature.settings.radio -import androidx.lifecycle.SavedStateHandle import dev.mokkery.MockMode import dev.mokkery.answering.returns import dev.mokkery.every @@ -117,7 +116,7 @@ class ProfileRoundTripTest { viewModel = RadioConfigViewModel( - savedStateHandle = SavedStateHandle(), + destNum = null, radioConfigRepository = radioConfigRepository, packetRepository = packetRepository, serviceRepository = serviceRepository, diff --git a/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModelTest.kt b/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModelTest.kt index fc944d7d6..0375d390f 100644 --- a/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModelTest.kt +++ b/feature/settings/src/commonTest/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModelTest.kt @@ -16,7 +16,6 @@ */ package org.meshtastic.feature.settings.radio -import androidx.lifecycle.SavedStateHandle import app.cash.turbine.test import dev.mokkery.MockMode import dev.mokkery.answering.calls @@ -140,7 +139,7 @@ class RadioConfigViewModelTest { } private fun createViewModel() = RadioConfigViewModel( - savedStateHandle = SavedStateHandle(), + destNum = null, radioConfigRepository = radioConfigRepository, packetRepository = packetRepository, serviceRepository = serviceRepository, @@ -407,7 +406,7 @@ class RadioConfigViewModelTest { nodeRepository.setNodes(listOf(node)) viewModel = RadioConfigViewModel( - savedStateHandle = SavedStateHandle(mapOf("destNum" to 456)), + destNum = 456, radioConfigRepository = radioConfigRepository, packetRepository = packetRepository, serviceRepository = serviceRepository,