Set timezone in the right place

This commit is contained in:
Garth Vander Houwen 2025-07-10 10:23:06 -07:00
parent 442ca03694
commit 72c23bf66d
2 changed files with 39 additions and 10 deletions

View file

@ -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)..<UInt32.max)
meshPacket.priority = MeshPacket.Priority.reliable
meshPacket.wantAck = true
var dataMessage = DataMessage()
guard let adminData: Data = try? adminPacket.serializedData() else {
return 0
}
dataMessage.payload = adminData
dataMessage.portnum = PortNum.adminApp
meshPacket.decoded = dataMessage
let messageDescription = "⌚ Device Config timezone was empty set timezone to \(config.tzdef)"
if sendAdminMessageToRadio(meshPacket: meshPacket, adminDescription: messageDescription) {
return Int64(meshPacket.id)
}
return 0
}
public func saveDisplayConfig(config: Config.DisplayConfig, fromUser: UserEntity, toUser: UserEntity) -> Int64 {
var adminPacket = AdminMessage()

View file

@ -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