From be263b412ad34c6a79494c96456f26b2ec41ee3f Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 15 Jun 2025 20:04:21 -0700 Subject: [PATCH] 12 hour clock display config value --- Localizable.xcstrings | 6 ++++++ .../MeshtasticDataModelV 53.xcdatamodel/contents | 1 + Meshtastic/Persistence/UpdateCoreData.swift | 2 ++ .../Views/Settings/Config/DisplayConfig.swift | 13 ++++++++++++- 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Localizable.xcstrings b/Localizable.xcstrings index ad7d063d..d019ab3e 100644 --- a/Localizable.xcstrings +++ b/Localizable.xcstrings @@ -1512,6 +1512,9 @@ } } } + }, + "12 Hour Clock" : { + }, "25" : { "localizations" : { @@ -27693,6 +27696,9 @@ } } } + }, + "Sets the screen clock format to 12-hour." : { + }, "Settings" : { "localizations" : { diff --git a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 53.xcdatamodel/contents b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 53.xcdatamodel/contents index 8f1c7f57..c1ee4271 100644 --- a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 53.xcdatamodel/contents +++ b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV 53.xcdatamodel/contents @@ -97,6 +97,7 @@ + diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index 7aba8899..c241831a 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -581,6 +581,7 @@ func upsertDisplayConfigPacket(config: Config.DisplayConfig, nodeNum: Int64, ses newDisplayConfig.displayMode = Int32(config.displaymode.rawValue) newDisplayConfig.units = Int32(config.units.rawValue) newDisplayConfig.headingBold = config.headingBold + newDisplayConfig.use12HClock = config.use12HClock fetchedNode[0].displayConfig = newDisplayConfig } else { @@ -592,6 +593,7 @@ func upsertDisplayConfigPacket(config: Config.DisplayConfig, nodeNum: Int64, ses fetchedNode[0].displayConfig?.oledType = Int32(config.oled.rawValue) fetchedNode[0].displayConfig?.displayMode = Int32(config.displaymode.rawValue) fetchedNode[0].displayConfig?.units = Int32(config.units.rawValue) + fetchedNode[0].displayConfig?.use12HClock = config.use12HClock fetchedNode[0].displayConfig?.headingBold = config.headingBold } if sessionPasskey != nil { diff --git a/Meshtastic/Views/Settings/Config/DisplayConfig.swift b/Meshtastic/Views/Settings/Config/DisplayConfig.swift index 20a7c521..682bfd45 100644 --- a/Meshtastic/Views/Settings/Config/DisplayConfig.swift +++ b/Meshtastic/Views/Settings/Config/DisplayConfig.swift @@ -27,6 +27,7 @@ struct DisplayConfig: View { @State var oledType = 0 @State var displayMode = 0 @State var units = 0 + @State var use12HourClock = false var body: some View { Form { @@ -74,6 +75,11 @@ struct DisplayConfig: View { .font(.callout) } .pickerStyle(DefaultPickerStyle()) + Toggle(isOn: $use12HourClock) { + Label("12 Hour Clock", systemImage: "clock") + Text("Sets the screen clock format to 12-hour.") + } + .tint(Color.accentColor) } Section(header: Text("Timing & Format")) { VStack(alignment: .leading) { @@ -141,6 +147,7 @@ struct DisplayConfig: View { dc.oled = OledTypes(rawValue: oledType)!.protoEnumValue() dc.displaymode = DisplayModes(rawValue: displayMode)!.protoEnumValue() dc.units = Units(rawValue: units)!.protoEnumValue() + dc.use12HClock = use12HourClock let adminMessageId = bleManager.saveDisplayConfig(config: dc, fromUser: connectedNode!.user!, toUser: node!.user!) if adminMessageId > 0 { @@ -211,6 +218,9 @@ struct DisplayConfig: View { .onChange(of: units) { oldUnits, newUnits in if oldUnits != newUnits && newUnits != node?.displayConfig?.units ?? -1 { hasChanges = true } } + .onChange(of: use12HourClock) { oldUse12HourClock, newUse12HourClock in + if oldUse12HourClock != newUse12HourClock && newUse12HourClock != node?.displayConfig?.use12HClock { hasChanges = true } + } } func setDisplayValues() { self.gpsFormat = Int(node?.displayConfig?.gpsFormat ?? 0) @@ -222,6 +232,7 @@ struct DisplayConfig: View { self.oledType = Int(node?.displayConfig?.oledType ?? 0) self.displayMode = Int(node?.displayConfig?.displayMode ?? 0) self.units = Int(node?.displayConfig?.units ?? 0) - self.hasChanges = false + self.use12HourClock = node?.displayConfig?.use12HClock ?? false + self.hasChanges = node?.displayConfig?.use12HClock ?? false } }