From 72c23bf66dcc9041776b7965d86b15951a4a6c57 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Thu, 10 Jul 2025 10:23:06 -0700 Subject: [PATCH] Set timezone in the right place --- Meshtastic/Helpers/BLEManager.swift | 37 +++++++++++++++++++++ Meshtastic/Persistence/UpdateCoreData.swift | 12 ++----- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/Meshtastic/Helpers/BLEManager.swift b/Meshtastic/Helpers/BLEManager.swift index 720ff558..9423ef91 100644 --- a/Meshtastic/Helpers/BLEManager.swift +++ b/Meshtastic/Helpers/BLEManager.swift @@ -821,6 +821,20 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate } } } + if decodedInfo.config.payloadVariant == Config.OneOf_PayloadVariant.device(decodedInfo.config.device) { + var dc = decodedInfo.config.device + if dc.tzdef.isEmpty { + dc.tzdef = TimeZone.current.posixDescription + if let connectedNum = self.connectedPeripheral?.num, connectedNum > 0 { + let adminMessageId = self.saveTimeZone(config: dc, user: connectedNum) + } + } + + // let adminMessageId = self.saveDeviceConfig(config: dc, fromUser: connectedUser, toUser: connectedUser) + // if adminMessageId > 0 { + // Logger.admin.info("⌚ Device Config timezone was empty set timezone to \(dc.tzdef, privacy: .public)") + // } + } } // Device Metadata if decodedInfo.metadata.firmwareVersion.count > 0 && !invalidVersion { @@ -2231,6 +2245,29 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate } return 0 } + public func saveTimeZone(config: Config.DeviceConfig, user: Int64) -> Int64 { + + var adminPacket = AdminMessage() + adminPacket.setConfig.device = config + var meshPacket: MeshPacket = MeshPacket() + meshPacket.to = UInt32(user) + meshPacket.from = UInt32(user) + meshPacket.id = UInt32.random(in: UInt32(UInt8.max).. Int64 { var adminPacket = AdminMessage() diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index b70b3432..bc0093a8 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -574,11 +574,7 @@ func upsertDeviceConfigPacket(config: Config.DeviceConfig, nodeNum: Int64, sessi newDeviceConfig.tripleClickAsAdHocPing = !config.disableTripleClick newDeviceConfig.ledHeartbeatEnabled = !config.ledHeartbeatDisabled newDeviceConfig.isManaged = config.isManaged - if config.tzdef.isEmpty { - newDeviceConfig.tzdef = TimeZone.current.posixDescription - } else { - newDeviceConfig.tzdef = config.tzdef - } + newDeviceConfig.tzdef = config.tzdef fetchedNode[0].deviceConfig = newDeviceConfig } else { fetchedNode[0].deviceConfig?.role = Int32(config.role.rawValue) @@ -590,11 +586,7 @@ func upsertDeviceConfigPacket(config: Config.DeviceConfig, nodeNum: Int64, sessi fetchedNode[0].deviceConfig?.tripleClickAsAdHocPing = !config.disableTripleClick fetchedNode[0].deviceConfig?.ledHeartbeatEnabled = !config.ledHeartbeatDisabled fetchedNode[0].deviceConfig?.isManaged = config.isManaged - if config.tzdef.isEmpty { - fetchedNode[0].deviceConfig?.tzdef = TimeZone.current.posixDescription - } else { - fetchedNode[0].deviceConfig?.tzdef = config.tzdef - } + fetchedNode[0].deviceConfig?.tzdef = config.tzdef } if sessionPasskey != nil { fetchedNode[0].sessionPasskey = sessionPasskey