mirror of
https://github.com/meshtastic/Meshtastic-Apple.git
synced 2026-04-20 22:13:56 +00:00
Clean up change events
This commit is contained in:
parent
3786bf5e1f
commit
6f0fe8fd6f
16 changed files with 167 additions and 254 deletions
|
|
@ -1140,6 +1140,11 @@ class BLEManager: NSObject, CBPeripheralDelegate, MqttClientProxyManagerDelegate
|
|||
guard let lastLocation = LocationsHandler.shared.locationsArray.last else {
|
||||
return nil
|
||||
}
|
||||
|
||||
if lastLocation == CLLocation(latitude: 0, longitude: 0) {
|
||||
return nil
|
||||
}
|
||||
|
||||
positionPacket.latitudeI = Int32(lastLocation.coordinate.latitude * 1e7)
|
||||
positionPacket.longitudeI = Int32(lastLocation.coordinate.longitude * 1e7)
|
||||
let timestamp = lastLocation.timestamp
|
||||
|
|
|
|||
|
|
@ -116,25 +116,19 @@ struct BluetoothConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node!.bluetoothConfig != nil {
|
||||
if newEnabled != node!.bluetoothConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: enabled) {
|
||||
if $0 != node?.bluetoothConfig?.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: mode) { newMode in
|
||||
if node != nil && node!.bluetoothConfig != nil {
|
||||
if newMode != node!.bluetoothConfig!.mode { hasChanges = true }
|
||||
}
|
||||
.onChange(of: mode) {
|
||||
if $0 != node?.bluetoothConfig?.mode ?? -1 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: fixedPin) { newFixedPin in
|
||||
if node != nil && node!.bluetoothConfig != nil {
|
||||
if node != nil && node?.bluetoothConfig != nil {
|
||||
if newFixedPin != String(node!.bluetoothConfig!.fixedPin) { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: deviceLoggingEnabled) { newDeviceLogging in
|
||||
if node != nil && node!.bluetoothConfig != nil {
|
||||
if newDeviceLogging != node!.bluetoothConfig!.deviceLoggingEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: deviceLoggingEnabled) {
|
||||
if $0 != node?.bluetoothConfig?.deviceLoggingEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
func setBluetoothValues() {
|
||||
|
|
|
|||
|
|
@ -155,7 +155,7 @@ struct DeviceConfig: View {
|
|||
.disabled(node?.user == nil)
|
||||
.buttonStyle(.bordered)
|
||||
.buttonBorderShape(.capsule)
|
||||
.controlSize(.large)
|
||||
.controlSize(.regular)
|
||||
.padding(.leading)
|
||||
.confirmationDialog(
|
||||
"are.you.sure",
|
||||
|
|
@ -180,7 +180,7 @@ struct DeviceConfig: View {
|
|||
.disabled(node?.user == nil)
|
||||
.buttonStyle(.bordered)
|
||||
.buttonBorderShape(.capsule)
|
||||
.controlSize(.large)
|
||||
.controlSize(.regular)
|
||||
.padding(.trailing)
|
||||
.confirmationDialog(
|
||||
"All device and app data will be deleted. You will also need to forget your devices under Settings > Bluetooth.",
|
||||
|
|
@ -252,20 +252,14 @@ struct DeviceConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: deviceRole) { newRole in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
if newRole != node!.deviceConfig!.role { hasChanges = true }
|
||||
}
|
||||
.onChange(of: deviceRole) {
|
||||
if $0 != node?.deviceConfig?.role ?? -1 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: serialEnabled) { newSerial in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
if newSerial != node!.deviceConfig!.serialEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: serialEnabled) {
|
||||
if $0 != node?.deviceConfig?.serialEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: debugLogEnabled) { newDebugLog in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
if newDebugLog != node!.deviceConfig!.debugLogEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: debugLogEnabled) {
|
||||
if $0 != node?.deviceConfig?.debugLogEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: buttonGPIO) { newButtonGPIO in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
|
|
@ -287,15 +281,11 @@ struct DeviceConfig: View {
|
|||
if newNodeInfoBroadcastSecs != node!.deviceConfig!.nodeInfoBroadcastSecs { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: doubleTapAsButtonPress) { newDoubleTapAsButtonPress in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
if newDoubleTapAsButtonPress != node!.deviceConfig!.doubleTapAsButtonPress { hasChanges = true }
|
||||
}
|
||||
.onChange(of: doubleTapAsButtonPress) {
|
||||
if $0 != node?.deviceConfig?.doubleTapAsButtonPress { hasChanges = true }
|
||||
}
|
||||
.onChange(of: isManaged) { newIsManaged in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
if newIsManaged != node!.deviceConfig!.isManaged { hasChanges = true }
|
||||
}
|
||||
.onChange(of: isManaged) {
|
||||
if $0 != node?.deviceConfig?.isManaged { hasChanges = true }
|
||||
}
|
||||
.onChange(of: tzdef) { newTzdef in
|
||||
if node != nil && node?.deviceConfig != nil {
|
||||
|
|
|
|||
|
|
@ -183,25 +183,19 @@ struct DisplayConfig: View {
|
|||
if newCarouselSecs != node!.displayConfig!.screenCarouselInterval { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: compassNorthTop) { newCompassNorthTop in
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
if newCompassNorthTop != node!.displayConfig!.compassNorthTop { hasChanges = true }
|
||||
}
|
||||
.onChange(of: compassNorthTop) {
|
||||
if $0 != node?.displayConfig?.compassNorthTop { hasChanges = true }
|
||||
}
|
||||
.onChange(of: wakeOnTapOrMotion) { newWakeOnTapOrMotion in
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
if newWakeOnTapOrMotion != node!.displayConfig!.wakeOnTapOrMotion { hasChanges = true }
|
||||
}
|
||||
.onChange(of: wakeOnTapOrMotion) {
|
||||
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 }
|
||||
}
|
||||
}
|
||||
.onChange(of: flipScreen) { newFlipScreen in
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
if newFlipScreen != node!.displayConfig!.flipScreen { hasChanges = true }
|
||||
}
|
||||
.onChange(of: flipScreen) {
|
||||
if $0 != node?.displayConfig?.flipScreen { hasChanges = true }
|
||||
}
|
||||
.onChange(of: oledType) { newOledType in
|
||||
if node != nil && node!.displayConfig != nil {
|
||||
|
|
|
|||
|
|
@ -245,10 +245,8 @@ struct LoRaConfig: View {
|
|||
if newRegion != node!.loRaConfig!.regionCode { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: usePreset) { newUsePreset in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
if newUsePreset != node!.loRaConfig!.usePreset { hasChanges = true }
|
||||
}
|
||||
.onChange(of: usePreset) {
|
||||
if $0 != node?.loRaConfig?.usePreset { hasChanges = true }
|
||||
}
|
||||
.onChange(of: modemPreset) { newModemPreset in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
|
|
@ -280,30 +278,22 @@ struct LoRaConfig: View {
|
|||
if newSpreadFactor != node!.loRaConfig!.spreadFactor { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: rxBoostedGain) { newRxBoostedGain in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
if newRxBoostedGain != node!.loRaConfig!.sx126xRxBoostedGain { hasChanges = true }
|
||||
}
|
||||
.onChange(of: rxBoostedGain) {
|
||||
if $0 != node?.loRaConfig?.sx126xRxBoostedGain { hasChanges = true }
|
||||
}
|
||||
.onChange(of: overrideFrequency) { newOverrideFrequency in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
if newOverrideFrequency != node!.loRaConfig!.overrideFrequency { hasChanges = true }
|
||||
}
|
||||
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 }
|
||||
}
|
||||
}
|
||||
.onChange(of: txEnabled) { newTxEnabled in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
if newTxEnabled != node!.loRaConfig!.txEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: txEnabled) {
|
||||
if $0 != node?.loRaConfig?.txEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: ignoreMqtt) { newIgnoreMqtt in
|
||||
if node != nil && node!.loRaConfig != nil {
|
||||
if newIgnoreMqtt != node!.loRaConfig!.ignoreMqtt { hasChanges = true }
|
||||
}
|
||||
.onChange(of: ignoreMqtt) {
|
||||
if $0 != node?.loRaConfig?.ignoreMqtt { hasChanges = true }
|
||||
}
|
||||
}
|
||||
func setLoRaValues() {
|
||||
|
|
|
|||
|
|
@ -50,10 +50,6 @@ struct AmbientLightingConfig: View {
|
|||
Stepper("Current: \(current)", value: $current, in: 0...31, step: 1)
|
||||
.padding(5)
|
||||
}
|
||||
.onChange(of: color, initial: true) {
|
||||
components = color.resolve(in: environment)
|
||||
hasChanges = true
|
||||
}
|
||||
}
|
||||
}
|
||||
.disabled(self.bleManager.connectedPeripheral == nil || node?.ambientLightingConfig == nil)
|
||||
|
|
@ -98,9 +94,19 @@ struct AmbientLightingConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: ledState) { newLedState in
|
||||
if node != nil && node!.ambientLightingConfig != nil {
|
||||
if newLedState != node!.ambientLightingConfig!.ledState { hasChanges = true }
|
||||
.onChange(of: ledState) {
|
||||
if let val = node?.ambientLightingConfig?.ledState {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: current) {
|
||||
if let val = node?.ambientLightingConfig?.current {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: color) { c in
|
||||
if color != c {
|
||||
hasChanges = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -272,24 +272,24 @@ struct CannedMessagesConfig: View {
|
|||
|
||||
hasChanges = true
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
if newEnabled != node!.cannedMessageConfig!.enabled { hasChanges = true }
|
||||
.onChange(of: enabled) {
|
||||
if let val = node?.cannedMessageConfig?.enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: sendBell) { newBell in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
if newBell != node!.cannedMessageConfig!.sendBell { hasChanges = true }
|
||||
.onChange(of: sendBell) {
|
||||
if let val = node?.cannedMessageConfig?.sendBell {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: rotary1Enabled) { newRot1 in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
if newRot1 != node!.cannedMessageConfig!.rotary1Enabled { hasChanges = true }
|
||||
.onChange(of: rotary1Enabled) {
|
||||
if let val = node?.cannedMessageConfig?.rotary1Enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: updown1Enabled) { newUpDown in
|
||||
if node != nil && node!.cannedMessageConfig != nil {
|
||||
if newUpDown != node!.cannedMessageConfig!.updown1Enabled { hasChanges = true }
|
||||
.onChange(of: updown1Enabled) {
|
||||
if let val = node?.cannedMessageConfig?.updown1Enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: inputbrokerPinA) { newPinA in
|
||||
|
|
|
|||
|
|
@ -199,14 +199,14 @@ struct DetectionSensorConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node?.detectionSensorConfig != nil {
|
||||
if newEnabled != node!.detectionSensorConfig!.enabled { hasChanges = true }
|
||||
.onChange(of: enabled) {
|
||||
if let val = node?.detectionSensorConfig?.enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: sendBell) { newSendBell in
|
||||
if node != nil && node?.detectionSensorConfig != nil {
|
||||
if newSendBell != node!.detectionSensorConfig!.sendBell { hasChanges = true }
|
||||
.onChange(of: sendBell) {
|
||||
if let val = node?.detectionSensorConfig?.sendBell {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: detectionTriggeredHigh) { newDetectionTriggeredHigh in
|
||||
|
|
@ -214,9 +214,9 @@ struct DetectionSensorConfig: View {
|
|||
if newDetectionTriggeredHigh != node!.detectionSensorConfig!.detectionTriggeredHigh { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: usePullup) { newUsePullup in
|
||||
if node != nil && node?.detectionSensorConfig != nil {
|
||||
if newUsePullup != node!.detectionSensorConfig!.usePullup { hasChanges = true }
|
||||
.onChange(of: usePullup) {
|
||||
if let val = node?.detectionSensorConfig?.usePullup {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: name) { newName in
|
||||
|
|
|
|||
|
|
@ -209,44 +209,44 @@ struct ExternalNotificationConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newEnabled != node!.externalNotificationConfig!.enabled { hasChanges = true }
|
||||
.onChange(of: enabled) {
|
||||
if let val = node?.externalNotificationConfig?.enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertBell) { newAlertBell in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertBell != node!.externalNotificationConfig!.alertBell { hasChanges = true }
|
||||
.onChange(of: alertBell) {
|
||||
if let val = node?.externalNotificationConfig?.alertBell {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertBellBuzzer) { newAlertBellBuzzer in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertBellBuzzer != node!.externalNotificationConfig!.alertBellBuzzer { hasChanges = true }
|
||||
.onChange(of: alertBellBuzzer) {
|
||||
if let val = node?.externalNotificationConfig?.alertBellBuzzer {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertBellVibra) { newAlertBellVibra in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertBellVibra != node!.externalNotificationConfig!.alertBellVibra { hasChanges = true }
|
||||
.onChange(of: alertBellVibra) {
|
||||
if let val = node?.externalNotificationConfig?.alertBellVibra {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertMessage) { newAlertMessage in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertMessage != node!.externalNotificationConfig!.alertMessage { hasChanges = true }
|
||||
.onChange(of: alertMessage) {
|
||||
if let val = node?.externalNotificationConfig?.alertMessage {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertMessageBuzzer) { newAlertMessageBuzzer in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertMessageBuzzer != node!.externalNotificationConfig!.alertMessageBuzzer { hasChanges = true }
|
||||
.onChange(of: alertMessageBuzzer) {
|
||||
if let val = node?.externalNotificationConfig?.alertMessageBuzzer {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: alertMessageVibra) { newAlertMessageVibra in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newAlertMessageVibra != node!.externalNotificationConfig!.alertMessageVibra { hasChanges = true }
|
||||
.onChange(of: alertMessageVibra) {
|
||||
if let val = node?.externalNotificationConfig?.alertMessageVibra {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: active) { newActive in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newActive != node!.externalNotificationConfig!.active { hasChanges = true }
|
||||
.onChange(of: active) {
|
||||
if let val = node?.externalNotificationConfig?.active {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: output) { newOutput in
|
||||
|
|
@ -269,9 +269,9 @@ struct ExternalNotificationConfig: View {
|
|||
if newOutputMs != node!.externalNotificationConfig!.outputMilliseconds { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: usePWM) { newUsePWM in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newUsePWM != node!.externalNotificationConfig!.usePWM { hasChanges = true }
|
||||
.onChange(of: usePWM) {
|
||||
if let val = node?.externalNotificationConfig?.usePWM {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
.onChange(of: nagTimeout) { newNagTimeout in
|
||||
|
|
@ -279,9 +279,9 @@ struct ExternalNotificationConfig: View {
|
|||
if newNagTimeout != node!.externalNotificationConfig!.nagTimeout { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: useI2SAsBuzzer) { newUseI2SAsBuzzer in
|
||||
if node != nil && node!.externalNotificationConfig != nil {
|
||||
if newUseI2SAsBuzzer != node!.externalNotificationConfig!.useI2SAsBuzzer { hasChanges = true }
|
||||
.onChange(of: useI2SAsBuzzer) {
|
||||
if let val = node?.externalNotificationConfig?.useI2SAsBuzzer {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -280,6 +280,18 @@ struct MQTTConfig: View {
|
|||
)
|
||||
}
|
||||
)
|
||||
.onChange(of: enabled) {
|
||||
if $0 != node?.mqttConfig?.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: proxyToClientEnabled) { newProxyToClientEnabled in
|
||||
if newProxyToClientEnabled {
|
||||
jsonEnabled = false
|
||||
}
|
||||
if newProxyToClientEnabled != node?.mqttConfig?.proxyToClientEnabled { hasChanges = true }
|
||||
if newProxyToClientEnabled {
|
||||
jsonEnabled = false
|
||||
}
|
||||
}
|
||||
.onChange(of: address) { newAddress in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newAddress != node!.mqttConfig!.address { hasChanges = true }
|
||||
|
|
@ -303,39 +315,17 @@ struct MQTTConfig: View {
|
|||
.onChange(of: selectedTopic) { newSelectedTopic in
|
||||
root = newSelectedTopic
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newEnabled != node!.mqttConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: proxyToClientEnabled) { newProxyToClientEnabled in
|
||||
if newProxyToClientEnabled {
|
||||
jsonEnabled = false
|
||||
}
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newProxyToClientEnabled != node!.mqttConfig!.proxyToClientEnabled { hasChanges = true }
|
||||
if newProxyToClientEnabled {
|
||||
jsonEnabled = false
|
||||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: encryptionEnabled) { newEncryptionEnabled in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newEncryptionEnabled != node!.mqttConfig!.encryptionEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: encryptionEnabled) {
|
||||
if $0 != node?.mqttConfig?.encryptionEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: jsonEnabled) { newJsonEnabled in
|
||||
if newJsonEnabled {
|
||||
proxyToClientEnabled = false
|
||||
}
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newJsonEnabled != node!.mqttConfig!.jsonEnabled { hasChanges = true }
|
||||
}
|
||||
if newJsonEnabled != node?.mqttConfig?.jsonEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: tlsEnabled) { newTlsEnabled in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newTlsEnabled != node!.mqttConfig!.tlsEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: tlsEnabled) {
|
||||
if $0 != node?.mqttConfig?.tlsEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: mqttConnected) { newMqttConnected in
|
||||
if newMqttConnected == false {
|
||||
|
|
@ -348,13 +338,8 @@ struct MQTTConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: mapReportingEnabled) { newMapReportingEnabled in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
if newMapReportingEnabled != node!.mqttConfig!.mapReportingEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: preciseLocation) { _ in
|
||||
hasChanges = true
|
||||
.onChange(of: mapReportingEnabled) {
|
||||
if $0 != node?.mqttConfig?.mapReportingEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: mapPublishIntervalSecs) { newMapPublishIntervalSecs in
|
||||
if node != nil && node?.mqttConfig != nil {
|
||||
|
|
|
|||
|
|
@ -67,14 +67,10 @@ struct PaxCounterConfig: View {
|
|||
}
|
||||
}
|
||||
.onChange(of: enabled) {
|
||||
if let val = node?.paxCounterConfig?.enabled {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
if $0 != node?.paxCounterConfig?.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: paxcounterUpdateInterval) {
|
||||
if let val = node?.paxCounterConfig?.updateInterval {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
if $0 != node?.paxCounterConfig?.updateInterval ?? -1 { hasChanges = true }
|
||||
}
|
||||
|
||||
SaveConfigButton(node: node, hasChanges: $hasChanges) {
|
||||
|
|
|
|||
|
|
@ -91,20 +91,14 @@ struct RangeTestConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
if newEnabled != node!.rangeTestConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: enabled) {
|
||||
if $0 != node?.rangeTestConfig?.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: save) { newSave in
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
if newSave != node!.rangeTestConfig!.save { hasChanges = true }
|
||||
}
|
||||
.onChange(of: save) {
|
||||
if $0 != node?.rangeTestConfig?.save { hasChanges = true }
|
||||
}
|
||||
.onChange(of: sender) { newSender in
|
||||
if node != nil && node!.rangeTestConfig != nil {
|
||||
if newSender != node!.rangeTestConfig!.sender { hasChanges = true }
|
||||
}
|
||||
.onChange(of: sender) {
|
||||
if $0 != node?.rangeTestConfig?.sender ?? -1 { hasChanges = true }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -145,61 +145,40 @@ struct SerialConfig: View {
|
|||
_ = bleManager.requestSerialModuleConfig(fromUser: connectedNode!.user!, toUser: node!.user!, adminIndex: connectedNode?.myInfo?.adminIndex ?? 0)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.onChange(of: enabled) { newEnabled in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newEnabled != node!.serialConfig!.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: enabled) {
|
||||
if $0 != node?.serialConfig?.enabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: echo) { newEcho in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newEcho != node!.serialConfig!.echo { hasChanges = true }
|
||||
}
|
||||
.onChange(of: echo) {
|
||||
if $0 != node?.serialConfig?.echo { hasChanges = true }
|
||||
}
|
||||
.onChange(of: rxd) { newRxd in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newRxd != node!.serialConfig!.rxd { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: txd) { newTxd in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newTxd != node!.serialConfig!.txd { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: baudRate) { newBaud in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newBaud != node!.serialConfig!.baudRate { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: timeout) { newTimeout in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newTimeout != node!.serialConfig!.timeout { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: overrideConsoleSerialPort) { newOverrideConsoleSerialPort in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newOverrideConsoleSerialPort != node!.serialConfig!.overrideConsoleSerialPort { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: mode) { newMode in
|
||||
|
||||
if node != nil && node!.serialConfig != nil {
|
||||
|
||||
if newMode != node!.serialConfig!.mode { hasChanges = true }
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,10 +128,8 @@ struct NetworkConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: wifiEnabled) { newEnabled in
|
||||
if node != nil && node!.networkConfig != nil {
|
||||
if newEnabled != node!.networkConfig!.wifiEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: wifiEnabled) {
|
||||
if $0 != node?.networkConfig?.wifiEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: wifiSsid) { newSSID in
|
||||
if node != nil && node!.networkConfig != nil {
|
||||
|
|
@ -143,15 +141,11 @@ struct NetworkConfig: View {
|
|||
if newPsk != node!.networkConfig!.wifiPsk { hasChanges = true }
|
||||
}
|
||||
}
|
||||
.onChange(of: wifiMode) { newMode in
|
||||
if node != nil && node!.networkConfig != nil {
|
||||
if newMode != node!.networkConfig!.wifiMode { hasChanges = true }
|
||||
}
|
||||
.onChange(of: wifiMode) {
|
||||
if $0 != node?.networkConfig?.wifiMode ?? -1 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: ethEnabled) { newEthEnabled in
|
||||
if node != nil && node!.networkConfig != nil {
|
||||
if newEthEnabled != node!.networkConfig!.ethEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: ethEnabled) {
|
||||
if $0 != node?.networkConfig?.ethEnabled { hasChanges = true }
|
||||
}
|
||||
}
|
||||
func setNetworkValues() {
|
||||
|
|
|
|||
|
|
@ -404,51 +404,39 @@ struct PositionConfig: View {
|
|||
}
|
||||
}
|
||||
}
|
||||
.onChange(of: gpsMode) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: gpsMode) { newGpsMode in
|
||||
if newGpsMode != node?.positionConfig?.gpsMode ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: rxGpio) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: rxGpio) { newRxGpio in
|
||||
if newRxGpio != node?.positionConfig?.rxGpio ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: txGpio) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: txGpio) { newTxGpio in
|
||||
if newTxGpio != node?.positionConfig?.txGpio ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: gpsEnGpio) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: gpsEnGpio) { newGpsEnGpio in
|
||||
if newGpsEnGpio != node?.positionConfig?.gpsEnGpio ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: smartPositionEnabled) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: smartPositionEnabled) { newSmartPositionEnabled in
|
||||
if newSmartPositionEnabled != node?.positionConfig?.smartPositionEnabled { hasChanges = true }
|
||||
}
|
||||
.onChange(of: positionBroadcastSeconds) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: positionBroadcastSeconds) { newPositionBroadcastSeconds in
|
||||
if newPositionBroadcastSeconds != node?.positionConfig?.positionBroadcastSeconds ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: broadcastSmartMinimumIntervalSecs) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: broadcastSmartMinimumIntervalSecs) { newBroadcastSmartMinimumIntervalSecs in
|
||||
if newBroadcastSmartMinimumIntervalSecs != node?.positionConfig?.broadcastSmartMinimumIntervalSecs ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: broadcastSmartMinimumDistance) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: broadcastSmartMinimumDistance) { newBroadcastSmartMinimumDistance in
|
||||
if newBroadcastSmartMinimumDistance != node?.positionConfig?.broadcastSmartMinimumDistance ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: gpsUpdateInterval) { _ in
|
||||
handleChanges()
|
||||
}
|
||||
.onChange(of: positionFlags) { _ in
|
||||
handleChanges()
|
||||
.onChange(of: gpsUpdateInterval) { newGpsUpdateInterval in
|
||||
if newGpsUpdateInterval != node?.positionConfig?.gpsUpdateInterval ?? 0 { hasChanges = true }
|
||||
}
|
||||
}
|
||||
|
||||
func handleChanges() {
|
||||
func handlePositionFlagtChanges() {
|
||||
guard let positionConfig = node?.positionConfig else { return }
|
||||
let pf = PositionFlags(rawValue: self.positionFlags)
|
||||
hasChanges = positionConfig.deviceGpsEnabled != deviceGpsEnabled ||
|
||||
positionConfig.gpsMode != gpsMode ||
|
||||
positionConfig.rxGpio != rxGpio ||
|
||||
positionConfig.txGpio != txGpio ||
|
||||
positionConfig.gpsEnGpio != gpsEnGpio ||
|
||||
positionConfig.smartPositionEnabled != smartPositionEnabled ||
|
||||
positionConfig.positionBroadcastSeconds != positionBroadcastSeconds ||
|
||||
positionConfig.broadcastSmartMinimumIntervalSecs != broadcastSmartMinimumIntervalSecs ||
|
||||
positionConfig.broadcastSmartMinimumDistance != broadcastSmartMinimumDistance ||
|
||||
positionConfig.gpsUpdateInterval != gpsUpdateInterval ||
|
||||
hasChanges =
|
||||
pf.contains(.Altitude) ||
|
||||
pf.contains(.AltitudeMsl) ||
|
||||
pf.contains(.Satsinview) ||
|
||||
|
|
|
|||
|
|
@ -136,12 +136,12 @@ struct PowerConfig: View {
|
|||
}
|
||||
}
|
||||
.onChange(of: isPowerSaving) {
|
||||
if let val = node?.powerConfig?.isPowerSaving {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
if $0 != node?.powerConfig?.isPowerSaving { hasChanges = true }
|
||||
}
|
||||
.onChange(of: shutdownOnPowerLoss) { _ in
|
||||
hasChanges = true
|
||||
.onChange(of: shutdownOnPowerLoss) { newShutdownOnPowerLoss in
|
||||
if newShutdownOnPowerLoss {
|
||||
hasChanges = true
|
||||
}
|
||||
}
|
||||
.onChange(of: shutdownAfterSecs) {
|
||||
if let val = node?.powerConfig?.onBatteryShutdownAfterSecs {
|
||||
|
|
@ -151,10 +151,8 @@ struct PowerConfig: View {
|
|||
.onChange(of: adcOverride) { _ in
|
||||
hasChanges = true
|
||||
}
|
||||
.onChange(of: adcMultiplier) {
|
||||
if let val = node?.powerConfig?.adcMultiplierOverride {
|
||||
hasChanges = $0 != val
|
||||
}
|
||||
.onChange(of: adcMultiplier) { newAdcMultiplier in
|
||||
if newAdcMultiplier != node?.powerConfig?.adcMultiplierOverride ?? 0 { hasChanges = true }
|
||||
}
|
||||
.onChange(of: waitBluetoothSecs) {
|
||||
if let val = node?.powerConfig?.waitBluetoothSecs {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue