From 6c6b44fdaa43cb8345e2bee1775bc8fd530b49ba Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 11 Aug 2024 21:20:10 -0700 Subject: [PATCH] Simplify change events to not force unwrap values --- .../Settings/Config/BluetoothConfig.swift | 4 +-- .../Views/Settings/Config/DeviceConfig.swift | 20 +++--------- .../Views/Settings/Config/DisplayConfig.swift | 24 ++++---------- .../Views/Settings/Config/LoRaConfig.swift | 32 +++++-------------- .../Views/Settings/Config/NetworkConfig.swift | 9 ++---- .../Views/Settings/Config/PowerConfig.swift | 18 +++-------- .../Settings/Config/SecurityConfig.swift | 20 +++--------- 7 files changed, 33 insertions(+), 94 deletions(-) diff --git a/Meshtastic/Views/Settings/Config/BluetoothConfig.swift b/Meshtastic/Views/Settings/Config/BluetoothConfig.swift index 2e12dbdb..75132df1 100644 --- a/Meshtastic/Views/Settings/Config/BluetoothConfig.swift +++ b/Meshtastic/Views/Settings/Config/BluetoothConfig.swift @@ -123,9 +123,7 @@ struct BluetoothConfig: View { if $0 != node?.bluetoothConfig?.mode ?? -1 { hasChanges = true } } .onChange(of: fixedPin) { newFixedPin in - if node != nil && node?.bluetoothConfig != nil { - if newFixedPin != String(node!.bluetoothConfig!.fixedPin) { hasChanges = true } - } + if newFixedPin != String(node?.bluetoothConfig?.fixedPin ?? -1) { hasChanges = true } } .onChange(of: deviceLoggingEnabled) { if $0 != node?.bluetoothConfig?.deviceLoggingEnabled { hasChanges = true } diff --git a/Meshtastic/Views/Settings/Config/DeviceConfig.swift b/Meshtastic/Views/Settings/Config/DeviceConfig.swift index bde4d2ff..ff23c6e5 100644 --- a/Meshtastic/Views/Settings/Config/DeviceConfig.swift +++ b/Meshtastic/Views/Settings/Config/DeviceConfig.swift @@ -262,24 +262,16 @@ struct DeviceConfig: View { if $0 != node?.deviceConfig?.debugLogEnabled { hasChanges = true } } .onChange(of: buttonGPIO) { newButtonGPIO in - if node != nil && node?.deviceConfig != nil { - if newButtonGPIO != node!.deviceConfig!.buttonGpio { hasChanges = true } - } + if newButtonGPIO != node?.deviceConfig?.buttonGpio ?? -1 { hasChanges = true } } .onChange(of: buzzerGPIO) { newBuzzerGPIO in - if node != nil && node?.deviceConfig != nil { - if newBuzzerGPIO != node!.deviceConfig!.buttonGpio { hasChanges = true } - } + if newBuzzerGPIO != node?.deviceConfig?.buttonGpio ?? -1 { hasChanges = true } } .onChange(of: rebroadcastMode) { newRebroadcastMode in - if node != nil && node?.deviceConfig != nil { - if newRebroadcastMode != node!.deviceConfig!.rebroadcastMode { hasChanges = true } - } + if newRebroadcastMode != node?.deviceConfig?.rebroadcastMode ?? -1 { hasChanges = true } } .onChange(of: nodeInfoBroadcastSecs) { newNodeInfoBroadcastSecs in - if node != nil && node?.deviceConfig != nil { - if newNodeInfoBroadcastSecs != node!.deviceConfig!.nodeInfoBroadcastSecs { hasChanges = true } - } + if newNodeInfoBroadcastSecs != node?.deviceConfig?.nodeInfoBroadcastSecs ?? -1 { hasChanges = true } } .onChange(of: doubleTapAsButtonPress) { if $0 != node?.deviceConfig?.doubleTapAsButtonPress { hasChanges = true } @@ -288,9 +280,7 @@ struct DeviceConfig: View { if $0 != node?.deviceConfig?.isManaged { hasChanges = true } } .onChange(of: tzdef) { newTzdef in - if node != nil && node?.deviceConfig != nil { - if newTzdef != node!.deviceConfig!.tzdef { hasChanges = true } - } + if newTzdef != node?.deviceConfig?.tzdef { hasChanges = true } } } func setDeviceValues() { diff --git a/Meshtastic/Views/Settings/Config/DisplayConfig.swift b/Meshtastic/Views/Settings/Config/DisplayConfig.swift index c26d741b..1f3f6de4 100644 --- a/Meshtastic/Views/Settings/Config/DisplayConfig.swift +++ b/Meshtastic/Views/Settings/Config/DisplayConfig.swift @@ -174,14 +174,10 @@ struct DisplayConfig: View { } } .onChange(of: screenOnSeconds) { newScreenSecs in - if node != nil && node!.displayConfig != nil { - if newScreenSecs != node!.displayConfig!.screenOnSeconds { hasChanges = true } - } + if newScreenSecs != node?.displayConfig?.screenOnSeconds ?? -1 { hasChanges = true } } .onChange(of: screenCarouselInterval) { newCarouselSecs in - if node != nil && node!.displayConfig != nil { - if newCarouselSecs != node!.displayConfig!.screenCarouselInterval { hasChanges = true } - } + if newCarouselSecs != node?.displayConfig?.screenCarouselInterval ?? -1 { hasChanges = true } } .onChange(of: compassNorthTop) { if $0 != node?.displayConfig?.compassNorthTop { hasChanges = true } @@ -190,27 +186,19 @@ struct DisplayConfig: View { if $0 != node?.displayConfig?.wakeOnTapOrMotion { hasChanges = true } } .onChange(of: gpsFormat) { newGpsFormat in - if node != nil && node!.displayConfig != nil { - if newGpsFormat != node!.displayConfig!.gpsFormat { hasChanges = true } - } + if newGpsFormat != node?.displayConfig?.gpsFormat ?? -1 { hasChanges = true } } .onChange(of: flipScreen) { if $0 != node?.displayConfig?.flipScreen { hasChanges = true } } .onChange(of: oledType) { newOledType in - if node != nil && node!.displayConfig != nil { - if newOledType != node!.displayConfig!.oledType { hasChanges = true } - } + if newOledType != node?.displayConfig?.oledType ?? -1 { hasChanges = true } } .onChange(of: displayMode) { newDisplayMode in - if node != nil && node!.displayConfig != nil { - if newDisplayMode != node!.displayConfig!.displayMode { hasChanges = true } - } + if newDisplayMode != node?.displayConfig?.displayMode ?? -1 { hasChanges = true } } .onChange(of: units) { newUnits in - if node != nil && node!.displayConfig != nil { - if newUnits != node!.displayConfig!.units { hasChanges = true } - } + if newUnits != node?.displayConfig?.units ?? -1 { hasChanges = true } } } func setDisplayValues() { diff --git a/Meshtastic/Views/Settings/Config/LoRaConfig.swift b/Meshtastic/Views/Settings/Config/LoRaConfig.swift index 24a79c31..0a309815 100644 --- a/Meshtastic/Views/Settings/Config/LoRaConfig.swift +++ b/Meshtastic/Views/Settings/Config/LoRaConfig.swift @@ -241,42 +241,28 @@ struct LoRaConfig: View { } } .onChange(of: region) { newRegion in - if node != nil && node!.loRaConfig != nil { - if newRegion != node!.loRaConfig!.regionCode { hasChanges = true } - } + if newRegion != node?.loRaConfig?.regionCode ?? -1 { hasChanges = true } } .onChange(of: usePreset) { if $0 != node?.loRaConfig?.usePreset { hasChanges = true } } .onChange(of: modemPreset) { newModemPreset in - if node != nil && node!.loRaConfig != nil { - if newModemPreset != node!.loRaConfig!.modemPreset { hasChanges = true } - } + if newModemPreset != node?.loRaConfig?.modemPreset ?? -1 { hasChanges = true } } .onChange(of: hopLimit) { newHopLimit in - if node != nil && node!.loRaConfig != nil { - if newHopLimit != node!.loRaConfig!.hopLimit { hasChanges = true } - } + if newHopLimit != node?.loRaConfig?.hopLimit ?? -1 { hasChanges = true } } .onChange(of: channelNum) { newChannelNum in - if node != nil && node!.loRaConfig != nil { - if newChannelNum != node!.loRaConfig!.channelNum { hasChanges = true } - } + if newChannelNum != node?.loRaConfig?.channelNum ?? -1 { hasChanges = true } } .onChange(of: bandwidth) { newBandwidth in - if node != nil && node!.loRaConfig != nil { - if newBandwidth != node!.loRaConfig!.bandwidth { hasChanges = true } - } + if newBandwidth != node?.loRaConfig?.bandwidth ?? -1 { hasChanges = true } } .onChange(of: codingRate) { newCodingRate in - if node != nil && node!.loRaConfig != nil { - if newCodingRate != node!.loRaConfig!.codingRate { hasChanges = true } - } + if newCodingRate != node?.loRaConfig?.codingRate ?? -1 { hasChanges = true } } .onChange(of: spreadFactor) { newSpreadFactor in - if node != nil && node!.loRaConfig != nil { - if newSpreadFactor != node!.loRaConfig!.spreadFactor { hasChanges = true } - } + if newSpreadFactor != node?.loRaConfig?.spreadFactor ?? -1 { hasChanges = true } } .onChange(of: rxBoostedGain) { if $0 != node?.loRaConfig?.sx126xRxBoostedGain { hasChanges = true } @@ -285,9 +271,7 @@ struct LoRaConfig: View { if newOverrideFrequency != node?.loRaConfig?.overrideFrequency { hasChanges = true } } .onChange(of: txPower) { newTxPower in - if node != nil && node!.loRaConfig != nil { - if newTxPower != node!.loRaConfig!.txPower { hasChanges = true } - } + if newTxPower != node?.loRaConfig?.txPower ?? -1 { hasChanges = true } } .onChange(of: txEnabled) { if $0 != node?.loRaConfig?.txEnabled { hasChanges = true } diff --git a/Meshtastic/Views/Settings/Config/NetworkConfig.swift b/Meshtastic/Views/Settings/Config/NetworkConfig.swift index fb260a69..51981606 100644 --- a/Meshtastic/Views/Settings/Config/NetworkConfig.swift +++ b/Meshtastic/Views/Settings/Config/NetworkConfig.swift @@ -132,14 +132,11 @@ struct NetworkConfig: View { if $0 != node?.networkConfig?.wifiEnabled { hasChanges = true } } .onChange(of: wifiSsid) { newSSID in - if node != nil && node!.networkConfig != nil { - if newSSID != node!.networkConfig!.wifiSsid { hasChanges = true } - } + if newSSID != node?.networkConfig?.wifiSsid { hasChanges = true } + } .onChange(of: wifiPsk) { newPsk in - if node != nil && node!.networkConfig != nil { - if newPsk != node!.networkConfig!.wifiPsk { hasChanges = true } - } + if newPsk != node?.networkConfig?.wifiPsk { hasChanges = true } } .onChange(of: wifiMode) { if $0 != node?.networkConfig?.wifiMode ?? -1 { hasChanges = true } diff --git a/Meshtastic/Views/Settings/Config/PowerConfig.swift b/Meshtastic/Views/Settings/Config/PowerConfig.swift index 4249aab1..42b6a534 100644 --- a/Meshtastic/Views/Settings/Config/PowerConfig.swift +++ b/Meshtastic/Views/Settings/Config/PowerConfig.swift @@ -144,30 +144,22 @@ struct PowerConfig: View { } } .onChange(of: shutdownAfterSecs) { - if let val = node?.powerConfig?.onBatteryShutdownAfterSecs { - hasChanges = $0 != val - } + if $0 != node?.powerConfig?.minWakeSecs ?? -1 { hasChanges = true } } .onChange(of: adcOverride) { _ in hasChanges = true } .onChange(of: adcMultiplier) { newAdcMultiplier in - if newAdcMultiplier != node?.powerConfig?.adcMultiplierOverride ?? 0 { hasChanges = true } + if newAdcMultiplier != node?.powerConfig?.adcMultiplierOverride ?? -1 { hasChanges = true } } .onChange(of: waitBluetoothSecs) { - if let val = node?.powerConfig?.waitBluetoothSecs { - hasChanges = $0 != val - } + if $0 != node?.powerConfig?.waitBluetoothSecs ?? -1 { hasChanges = true } } .onChange(of: lsSecs) { - if let val = node?.powerConfig?.lsSecs { - hasChanges = $0 != val - } + if $0 != node?.powerConfig?.lsSecs ?? -1 { hasChanges = true } } .onChange(of: minWakeSecs) { - if let val = node?.powerConfig?.minWakeSecs { - hasChanges = $0 != val - } + if $0 != node?.powerConfig?.minWakeSecs ?? -1 { hasChanges = true } } SaveConfigButton(node: node, hasChanges: $hasChanges) { diff --git a/Meshtastic/Views/Settings/Config/SecurityConfig.swift b/Meshtastic/Views/Settings/Config/SecurityConfig.swift index f3f79734..9877bb3a 100644 --- a/Meshtastic/Views/Settings/Config/SecurityConfig.swift +++ b/Meshtastic/Views/Settings/Config/SecurityConfig.swift @@ -155,29 +155,19 @@ struct SecurityConfig: View { ) }) .onChange(of: isManaged) { - if let val = node?.securityConfig?.isManaged { - hasChanges = $0 != val - } + if $0 != node?.securityConfig?.isManaged { hasChanges = true } } .onChange(of: serialEnabled) { - if let val = node?.securityConfig?.serialEnabled { - hasChanges = $0 != val - } + if $0 != node?.securityConfig?.serialEnabled { hasChanges = true } } .onChange(of: debugLogApiEnabled) { - if let val = node?.securityConfig?.debugLogApiEnabled { - hasChanges = $0 != val - } + if $0 != node?.securityConfig?.debugLogApiEnabled { hasChanges = true } } .onChange(of: bluetoothLoggingEnabled) { - if let val = node?.securityConfig?.bluetoothLoggingEnabled { - hasChanges = $0 != val - } + if $0 != node?.securityConfig?.bluetoothLoggingEnabled { hasChanges = true } } .onChange(of: adminChannelEnabled) { - if let val = node?.securityConfig?.adminChannelEnabled { - hasChanges = $0 != val - } + if $0 != node?.securityConfig?.adminChannelEnabled { hasChanges = true } } SaveConfigButton(node: node, hasChanges: $hasChanges) {