mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Merge pull request #120 from meshtastic/feature/module_settings
Check for nil nodes and config
This commit is contained in:
commit
b263bb85d2
9 changed files with 145 additions and 50 deletions
|
|
@ -185,15 +185,23 @@ struct DeviceConfig: View {
|
|||
}
|
||||
.onChange(of: deviceRole) { newRole in
|
||||
|
||||
if newRole != node!.deviceConfig!.role { hasChanges = true }
|
||||
if node != nil && node!.deviceConfig != nil {
|
||||
|
||||
if newRole != node!.deviceConfig!.role { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: serialEnabled) { newSerial in
|
||||
if node != nil && node!.deviceConfig != nil {
|
||||
|
||||
if newSerial != node!.deviceConfig!.serialEnabled { hasChanges = true }
|
||||
if newSerial != node!.deviceConfig!.serialEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: debugLogEnabled) { newDebugLog in
|
||||
|
||||
if newDebugLog != node!.deviceConfig!.debugLogEnabled { hasChanges = true }
|
||||
if node != nil && node!.deviceConfig != nil {
|
||||
|
||||
if newDebugLog != node!.deviceConfig!.debugLogEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -240,23 +240,23 @@ struct DisplayConfig: View {
|
|||
}
|
||||
.onChange(of: screenOnSeconds) { newScreenSecs in
|
||||
|
||||
if newScreenSecs != node!.displayConfig!.screenOnSeconds {
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
|
||||
hasChanges = true
|
||||
if newScreenSecs != node!.displayConfig!.screenOnSeconds { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: screenCarouselInterval) { newCarouselSecs in
|
||||
|
||||
if newCarouselSecs != node!.displayConfig!.screenCarouselInterval {
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
|
||||
hasChanges = true
|
||||
if newCarouselSecs != node!.displayConfig!.screenCarouselInterval { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: gpsFormat) { newGpsFormat in
|
||||
|
||||
if newGpsFormat != node!.displayConfig!.gpsFormat {
|
||||
|
||||
hasChanges = true
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
|
||||
if newGpsFormat != node!.displayConfig!.gpsFormat { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
|
|
|
|||
|
|
@ -299,19 +299,22 @@ struct LoRaConfig: View {
|
|||
}
|
||||
.onChange(of: region) { newRegion in
|
||||
|
||||
if node!.loRaConfig != nil {
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
|
||||
if newRegion != node!.loRaConfig!.regionCode { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: modemPreset) { newModemPreset in
|
||||
|
||||
if node!.loRaConfig != nil {
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
|
||||
if newModemPreset != node!.loRaConfig!.modemPreset { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: hopLimit) { newHopLimit in
|
||||
|
||||
if node!.loRaConfig != nil {
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
|
||||
if newHopLimit != node!.loRaConfig!.hopLimit { hasChanges = true }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -390,50 +390,77 @@ struct CannedMessagesConfig: View {
|
|||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
|
||||
if node!.cannedMessageConfig != nil {
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newEnabled != node!.cannedMessageConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: sendBell) { newBell in
|
||||
|
||||
if newBell != node!.cannedMessageConfig!.sendBell { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newBell != node!.cannedMessageConfig!.sendBell { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: rotary1Enabled) { newRot1 in
|
||||
|
||||
if newRot1 != node!.cannedMessageConfig!.rotary1Enabled { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newRot1 != node!.cannedMessageConfig!.rotary1Enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: updown1Enabled) { newUpDown in
|
||||
|
||||
if newUpDown != node!.cannedMessageConfig!.updown1Enabled { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newUpDown != node!.cannedMessageConfig!.updown1Enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerPinA) { newPinA in
|
||||
|
||||
if newPinA != node!.cannedMessageConfig!.inputbrokerPinA { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newPinA != node!.cannedMessageConfig!.inputbrokerPinA { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerPinB) { newPinB in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newPinB != node!.cannedMessageConfig!.inputbrokerPinB { hasChanges = true }
|
||||
if newPinB != node!.cannedMessageConfig!.inputbrokerPinB { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerPinPress) { newPinPress in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newPinPress != node!.cannedMessageConfig!.inputbrokerPinPress { hasChanges = true }
|
||||
if newPinPress != node!.cannedMessageConfig!.inputbrokerPinPress { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerEventCw) { newKeyA in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newKeyA != node!.cannedMessageConfig!.inputbrokerEventCw { hasChanges = true }
|
||||
if newKeyA != node!.cannedMessageConfig!.inputbrokerEventCw { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerEventCcw) { newKeyB in
|
||||
|
||||
if newKeyB != node!.cannedMessageConfig!.inputbrokerEventCcw { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newKeyB != node!.cannedMessageConfig!.inputbrokerEventCcw { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerEventPress) { newKeyPress in
|
||||
|
||||
if newKeyPress != node!.cannedMessageConfig!.inputbrokerEventPress { hasChanges = true }
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
if newKeyPress != node!.cannedMessageConfig!.inputbrokerEventPress { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: messagesPart1) { newMessagesChanges in
|
||||
|
||||
hasMessagesChanges = true
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
|
||||
hasMessagesChanges = true
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -198,27 +198,45 @@ struct ExternalNotificationConfig: View {
|
|||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
|
||||
if newEnabled != node!.externalNotificationConfig!.enabled { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newEnabled != node!.externalNotificationConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: alertBell) { newAlertBell in
|
||||
|
||||
if newAlertBell != node!.externalNotificationConfig!.alertBell { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newAlertBell != node!.externalNotificationConfig!.alertBell { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: alertMessage) { newAlertMessage in
|
||||
|
||||
if newAlertMessage != node!.externalNotificationConfig!.alertMessage { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newAlertMessage != node!.externalNotificationConfig!.alertMessage { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: active) { newActuve in
|
||||
|
||||
if newActuve != node!.externalNotificationConfig!.active { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newActuve != node!.externalNotificationConfig!.active { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: output) { newOutput in
|
||||
|
||||
if newOutput != node!.externalNotificationConfig!.output { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newOutput != node!.externalNotificationConfig!.output { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: outputMilliseconds) { newOutputMs in
|
||||
|
||||
if newOutputMs != node!.externalNotificationConfig!.outputMilliseconds { hasChanges = true }
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
|
||||
if newOutputMs != node!.externalNotificationConfig!.outputMilliseconds { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,15 +148,24 @@ struct RangeTestConfig: View {
|
|||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
|
||||
if newEnabled != node!.rangeTestConfig!.enabled { hasChanges = true }
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
|
||||
if newEnabled != node!.rangeTestConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: save) { newSave in
|
||||
|
||||
if newSave != node!.rangeTestConfig!.save { hasChanges = true }
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
|
||||
if newSave != node!.rangeTestConfig!.save { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: sender) { newSender in
|
||||
|
||||
if newSender != node!.rangeTestConfig!.sender { hasChanges = true }
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
|
||||
if newSender != node!.rangeTestConfig!.sender { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -344,31 +344,52 @@ struct SerialConfig: View {
|
|||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
|
||||
if newEnabled != node!.serialConfig!.enabled { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newEnabled != node!.serialConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: echo) { newEcho in
|
||||
|
||||
if newEcho != node!.serialConfig!.echo { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newEcho != node!.serialConfig!.echo { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: rxd) { newRxd in
|
||||
|
||||
if newRxd != node!.serialConfig!.rxd { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newRxd != node!.serialConfig!.rxd { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: txd) { newTxd in
|
||||
|
||||
if newTxd != node!.serialConfig!.txd { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newTxd != node!.serialConfig!.txd { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: baudRate) { newBaud in
|
||||
|
||||
if newBaud != node!.serialConfig!.baudRate { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newBaud != node!.serialConfig!.baudRate { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: timeout) { newTimeout in
|
||||
|
||||
if newTimeout != node!.serialConfig!.timeout { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newTimeout != node!.serialConfig!.timeout { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: mode) { newMode in
|
||||
|
||||
if newMode != node!.serialConfig!.mode { hasChanges = true }
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newMode != node!.serialConfig!.mode { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
|
|
@ -353,28 +353,28 @@ struct TelemetryConfig: View {
|
|||
}
|
||||
.onChange(of: deviceUpdateInterval) { newDeviceInterval in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newDeviceInterval != node!.telemetryConfig!.deviceUpdateInterval { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: environmentUpdateInterval) { newEnvInterval in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvInterval != node!.telemetryConfig!.environmentUpdateInterval { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: environmentMeasurementEnabled) { newEnvEnabled in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvEnabled != node!.telemetryConfig!.environmentMeasurementEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: environmentSensorType) { newEnvSensorType in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvSensorType != node!.telemetryConfig!.environmentSensorType { hasChanges = true }
|
||||
}
|
||||
|
|
@ -388,21 +388,21 @@ struct TelemetryConfig: View {
|
|||
}
|
||||
.onChange(of: environmentDisplayFahrenheit) { newEnvDisplayF in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvDisplayF != node!.telemetryConfig!.environmentDisplayFahrenheit { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: environmentRecoveryInterval) { newEnvRecoveryInterval in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvRecoveryInterval != node!.telemetryConfig!.environmentRecoveryInterval { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: environmentReadErrorCountThreshold) { newEnvReadErrorCountThreshold in
|
||||
|
||||
if node!.telemetryConfig != nil {
|
||||
if node != nil && node!.telemetryConfig != nil {
|
||||
|
||||
if newEnvReadErrorCountThreshold != node!.telemetryConfig!.environmentReadErrorCountThreshold { hasChanges = true }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -321,15 +321,24 @@ struct PositionConfig: View {
|
|||
}
|
||||
.onChange(of: smartPositionEnabled) { newSmartPosition in
|
||||
|
||||
if newSmartPosition != node!.positionConfig!.smartPositionEnabled { hasChanges = true }
|
||||
if node != nil && node!.positionConfig != nil {
|
||||
|
||||
if newSmartPosition != node!.positionConfig!.smartPositionEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: deviceGpsEnabled) { newDeviceGps in
|
||||
|
||||
if newDeviceGps != node!.positionConfig!.deviceGpsEnabled { hasChanges = true }
|
||||
if node != nil && node!.positionConfig != nil {
|
||||
|
||||
if newDeviceGps != node!.positionConfig!.deviceGpsEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: fixedPosition) { newFixed in
|
||||
|
||||
if newFixed != node!.positionConfig!.fixedPosition { hasChanges = true }
|
||||
if node != nil && node!.positionConfig != nil {
|
||||
|
||||
if newFixed != node!.positionConfig!.fixedPosition { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.navigationViewStyle(StackNavigationViewStyle())
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue