diff --git a/Meshtastic/Views/Bluetooth/Connect.swift b/Meshtastic/Views/Bluetooth/Connect.swift index c3f3f55f..84cbe2aa 100644 --- a/Meshtastic/Views/Bluetooth/Connect.swift +++ b/Meshtastic/Views/Bluetooth/Connect.swift @@ -251,7 +251,7 @@ struct Connect: View { .navigationTitle("bluetooth") .navigationBarItems(leading: MeshtasticLogo(), trailing: ZStack { - ConnectedDevice(bluetoothOn: bleManager.isSwitchedOn, deviceConnected: bleManager.connectedPeripheral != nil, name: (bleManager.connectedPeripheral != nil) ? bleManager.connectedPeripheral.shortName : "????") + ConnectedDevice(bluetoothOn: bleManager.isSwitchedOn, deviceConnected: bleManager.connectedPeripheral != nil, name: (bleManager.connectedPeripheral != nil) ? bleManager.connectedPeripheral.shortName : "????", mqttProxyConnected: bleManager.mqttManager.status == MqttClientProxyManager.ConnectionStatus.connected) }) } .sheet(isPresented: $invalidFirmwareVersion, onDismiss: didDismissSheet) { diff --git a/Meshtastic/Views/Helpers/ConnectedDevice.swift b/Meshtastic/Views/Helpers/ConnectedDevice.swift index 3e331e5e..8e908cc5 100644 --- a/Meshtastic/Views/Helpers/ConnectedDevice.swift +++ b/Meshtastic/Views/Helpers/ConnectedDevice.swift @@ -9,21 +9,21 @@ struct ConnectedDevice: View { var bluetoothOn: Bool var deviceConnected: Bool var name: String + var mqttProxyConnected: Bool = false var body: some View { HStack { - Image(systemName: "iphone.gen3.radiowaves.left.and.right.circle.fill") - .imageScale(.large) - .foregroundColor(.green) - .symbolRenderingMode(.hierarchical) - - Image(systemName: "xmark.circle.fill") - .imageScale(.large) - .foregroundColor(.red) - .symbolRenderingMode(.hierarchical) - - if bluetoothOn { + if bluetoothOn { + if deviceConnected && mqttProxyConnected { + + if mqttProxyConnected { + Image(systemName: "iphone.gen3.radiowaves.left.and.right.circle.fill") + .imageScale(.large) + .foregroundColor(.green) + .symbolRenderingMode(.hierarchical) + } + } if deviceConnected { Image(systemName: "antenna.radiowaves.left.and.right.circle.fill") .imageScale(.large) @@ -36,7 +36,6 @@ struct ConnectedDevice: View { .imageScale(.medium) .foregroundColor(.red) .symbolRenderingMode(.hierarchical) - } } else { Text("bluetooth.off").font(.subheadline).foregroundColor(.red) @@ -47,10 +46,10 @@ struct ConnectedDevice: View { struct ConnectedDevice_Previews: PreviewProvider { static var previews: some View { - ConnectedDevice(bluetoothOn: true, deviceConnected: false, name: "Yellow Beam") + ConnectedDevice(bluetoothOn: true, deviceConnected: true, name: "MEMO", mqttProxyConnected: true) .previewLayout(.fixed(width: 80, height: 70)) - ConnectedDevice(bluetoothOn: true, deviceConnected: false, name: "Yellow Beam") + ConnectedDevice(bluetoothOn: true, deviceConnected: false, name: "86D4", mqttProxyConnected: false) .previewLayout(.fixed(width: 80, height: 70)) }