diff --git a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV22.xcdatamodel/contents b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV22.xcdatamodel/contents index ce4093bb..5ce393b1 100644 --- a/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV22.xcdatamodel/contents +++ b/Meshtastic/Meshtastic.xcdatamodeld/MeshtasticDataModelV22.xcdatamodel/contents @@ -64,6 +64,7 @@ + diff --git a/Meshtastic/Views/Messages/ChannelMessageList.swift b/Meshtastic/Views/Messages/ChannelMessageList.swift index e5795ce9..22754021 100644 --- a/Meshtastic/Views/Messages/ChannelMessageList.swift +++ b/Meshtastic/Views/Messages/ChannelMessageList.swift @@ -241,6 +241,7 @@ struct ChannelMessageList: View { }, secondaryButton: .cancel()) } .onAppear { + self.focusedField = .messageText if !message.read { message.read = true do { diff --git a/Meshtastic/Views/Messages/UserMessageList.swift b/Meshtastic/Views/Messages/UserMessageList.swift index 39207c6b..56a40a7b 100644 --- a/Meshtastic/Views/Messages/UserMessageList.swift +++ b/Meshtastic/Views/Messages/UserMessageList.swift @@ -218,6 +218,7 @@ struct UserMessageList: View { }, secondaryButton: .cancel()) } .onAppear { + self.focusedField = .messageText if !message.read { message.read = true do { diff --git a/Meshtastic/Views/Settings/Config/DeviceConfig.swift b/Meshtastic/Views/Settings/Config/DeviceConfig.swift index 682581f4..6153be66 100644 --- a/Meshtastic/Views/Settings/Config/DeviceConfig.swift +++ b/Meshtastic/Views/Settings/Config/DeviceConfig.swift @@ -27,6 +27,7 @@ struct DeviceConfig: View { @State var rebroadcastMode = 0 @State var doubleTapAsButtonPress = false @State var isManaged = false + @State var gpsEnGPIO = 0 var body: some View { VStack { @@ -122,6 +123,18 @@ struct DeviceConfig: View { } } .pickerStyle(DefaultPickerStyle()) + Picker("GPS EN GPIO", selection: $gpsEnGPIO) { + ForEach(0..<46) { + if $0 == 0 { + Text("unset") + } else { + Text("Pin \($0)") + } + } + } + .pickerStyle(DefaultPickerStyle()) + Text("(Re)define PIN_GPS_EN for your board.") + .font(.caption) } } .disabled(self.bleManager.connectedPeripheral == nil || node?.deviceConfig == nil) @@ -206,6 +219,8 @@ struct DeviceConfig: View { dc.debugLogEnabled = debugLogEnabled dc.buttonGpio = UInt32(buttonGPIO) dc.buzzerGpio = UInt32(buzzerGPIO) + + //dc.gpsEnGpio = UInt32(gpsEnGPIO) dc.rebroadcastMode = RebroadcastModes(rawValue: rebroadcastMode)?.protoEnumValue() ?? RebroadcastModes.all.protoEnumValue() dc.doubleTapAsButtonPress = doubleTapAsButtonPress dc.isManaged = isManaged @@ -267,6 +282,11 @@ struct DeviceConfig: View { if newBuzzerGPIO != node!.deviceConfig!.buttonGpio { hasChanges = true } } } + .onChange(of: gpsEnGPIO) { newgpsEnGpio in + if node != nil && node?.deviceConfig != nil { + if newgpsEnGpio != node!.deviceConfig!.gpsEnGpio { hasChanges = true } + } + } .onChange(of: rebroadcastMode) { newRebroadcastMode in if node != nil && node?.deviceConfig != nil { if newRebroadcastMode != node!.deviceConfig!.rebroadcastMode { hasChanges = true } @@ -289,6 +309,7 @@ struct DeviceConfig: View { self.debugLogEnabled = node?.deviceConfig?.debugLogEnabled ?? false self.buttonGPIO = Int(node?.deviceConfig?.buttonGpio ?? 0) self.buzzerGPIO = Int(node?.deviceConfig?.buzzerGpio ?? 0) + self.gpsEnGPIO = Int(node?.deviceConfig?.gpsEnGpio ?? 0) self.rebroadcastMode = Int(node?.deviceConfig?.rebroadcastMode ?? 0) self.doubleTapAsButtonPress = node?.deviceConfig?.doubleTapAsButtonPress ?? false self.isManaged = node?.deviceConfig?.isManaged ?? false