From 2ee6cdfcba21a2c182edf8759d62f74077c56053 Mon Sep 17 00:00:00 2001 From: Mike Robbins Date: Thu, 30 Oct 2025 17:35:40 -0400 Subject: [PATCH] Fix wantRangeTestPackets to correctly follow rangeTestConfig.enabled (#1489) --- .../Accessory Manager/AccessoryManager+MQTT.swift | 10 ++++------ .../Accessory/Accessory Manager/AccessoryManager.swift | 2 +- .../Views/Settings/Config/Module/RangeTestConfig.swift | 2 ++ .../Settings/Config/Module/StoreForwardConfig.swift | 2 ++ 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Meshtastic/Accessory/Accessory Manager/AccessoryManager+MQTT.swift b/Meshtastic/Accessory/Accessory Manager/AccessoryManager+MQTT.swift index 0a246f88..d8c5a35d 100644 --- a/Meshtastic/Accessory/Accessory Manager/AccessoryManager+MQTT.swift +++ b/Meshtastic/Accessory/Accessory Manager/AccessoryManager+MQTT.swift @@ -34,12 +34,10 @@ extension AccessoryManager { // Set initial unread message badge states appState.unreadChannelMessages = fetchedNodeInfo[0].myInfo?.unreadMessages(context: context) ?? 0 appState.unreadDirectMessages = fetchedNodeInfo[0].user?.unreadMessages(context: context, skipLastMessageCheck: true) ?? 0 // skipLastMessageCheck=true because we don't update lastMessage on our own connected node - } - if fetchedNodeInfo.count == 1 && fetchedNodeInfo[0].rangeTestConfig?.enabled == true { - wantRangeTestPackets = true - } - if fetchedNodeInfo.count == 1 && fetchedNodeInfo[0].storeForwardConfig?.enabled == true { - wantStoreAndForwardPackets = true + + // Set wantRangeTestPackets and wantStoreAndForwardPackets + wantRangeTestPackets = fetchedNodeInfo[0].rangeTestConfig?.enabled ?? false + wantStoreAndForwardPackets = fetchedNodeInfo[0].storeForwardConfig?.enabled ?? false } } catch { Logger.data.error("Failed to find a node info for the connected node \(error.localizedDescription, privacy: .public)") diff --git a/Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift b/Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift index f5a114ba..5e2e98c8 100644 --- a/Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift +++ b/Meshtastic/Accessory/Accessory Manager/AccessoryManager.swift @@ -141,7 +141,7 @@ class AccessoryManager: ObservableObject, MqttClientProxyManagerDelegate { let transports: [any Transport] // Config - public var wantRangeTestPackets = true + public var wantRangeTestPackets = false var wantStoreAndForwardPackets = false var shouldAutomaticallyConnectToPreferredPeripheral = true diff --git a/Meshtastic/Views/Settings/Config/Module/RangeTestConfig.swift b/Meshtastic/Views/Settings/Config/Module/RangeTestConfig.swift index 83958ff7..a4bfbd85 100644 --- a/Meshtastic/Views/Settings/Config/Module/RangeTestConfig.swift +++ b/Meshtastic/Views/Settings/Config/Module/RangeTestConfig.swift @@ -110,6 +110,8 @@ struct RangeTestConfig: View { } .onChange(of: enabled) { _, newEnabled in if newEnabled != node?.rangeTestConfig?.enabled { hasChanges = true } + + // Note: even if this is the connected node, we don't have to update AccessoryManager.wantRangeTestPackets here, because the node will reboot after we save config changes, and we'll pick up the new value after we reconnect. } .onChange(of: save) { _, newSave in if newSave != node?.rangeTestConfig?.save { hasChanges = true } diff --git a/Meshtastic/Views/Settings/Config/Module/StoreForwardConfig.swift b/Meshtastic/Views/Settings/Config/Module/StoreForwardConfig.swift index 397945fb..bc35258d 100644 --- a/Meshtastic/Views/Settings/Config/Module/StoreForwardConfig.swift +++ b/Meshtastic/Views/Settings/Config/Module/StoreForwardConfig.swift @@ -167,6 +167,8 @@ struct StoreForwardConfig: View { } .onChange(of: enabled) { oldEnabled, newEnabled in if oldEnabled != newEnabled && newEnabled != node!.storeForwardConfig!.enabled { hasChanges = true } + + // Note: even if this is the connected node, we don't have to update AccessoryManager.wantStoreAndForwardPackets here, because the node will reboot after we save config changes, and we'll pick up the new value after we reconnect. } .onChange(of: isServer) { oldIsServer, newIsServer in if oldIsServer != newIsServer && newIsServer != node!.storeForwardConfig!.isRouter { hasChanges = true }