From e421d6708a83c9c66a3b2c002d31b79b3cce1432 Mon Sep 17 00:00:00 2001 From: Mac DeCourcy <49794076+mdecourcy@users.noreply.github.com> Date: Wed, 12 Nov 2025 16:05:50 -0800 Subject: [PATCH] fix: clear in mem cached values on nodedb, factory reset (#3680) --- .../settings/radio/RadioConfigViewModel.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/feature/settings/src/main/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt b/feature/settings/src/main/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt index 815628b24..0b5e6f235 100644 --- a/feature/settings/src/main/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt +++ b/feature/settings/src/main/kotlin/org/meshtastic/feature/settings/radio/RadioConfigViewModel.kt @@ -366,7 +366,14 @@ constructor( "Request factory reset error", ) if (destNum == myNodeNum) { - viewModelScope.launch { nodeRepository.clearNodeDB() } + viewModelScope.launch { + // Clear the service's in-memory node cache first so screens refresh immediately. + val existingNodeNums = nodeRepository.getNodeDBbyNum().firstOrNull()?.keys?.toList().orEmpty() + meshService?.let { service -> + existingNodeNums.forEach { service.removeByNodenum(service.packetId, it) } + } + nodeRepository.clearNodeDB() + } } } @@ -377,7 +384,14 @@ constructor( "Request NodeDB reset error", ) if (destNum == myNodeNum) { - viewModelScope.launch { nodeRepository.clearNodeDB(preserveFavorites) } + viewModelScope.launch { + // Clear the service's in-memory node cache as well so UI updates immediately. + val existingNodeNums = nodeRepository.getNodeDBbyNum().firstOrNull()?.keys?.toList().orEmpty() + meshService?.let { service -> + existingNodeNums.forEach { service.removeByNodenum(service.packetId, it) } + } + nodeRepository.clearNodeDB(preserveFavorites) + } } }