diff --git a/Meshtastic/Views/Helpers/LoRaSignalStrength.swift b/Meshtastic/Views/Helpers/LoRaSignalStrength.swift index 2a5b4f5d..60feeacf 100644 --- a/Meshtastic/Views/Helpers/LoRaSignalStrength.swift +++ b/Meshtastic/Views/Helpers/LoRaSignalStrength.swift @@ -29,19 +29,21 @@ struct LoRaSignalStrengthMeter: View { .font(.caption2) } } else { - Gauge(value: Double(signalStrength.rawValue), in: 0...3) { - } currentValueLabel: { - Image(systemName: "dot.radiowaves.left.and.right") - .font(.callout) - .frame(width: 30) - Text("Signal \(signalStrength.description)") - .font(UIDevice.current.userInterfaceIdiom == .phone ? .callout : .caption) - .foregroundColor(.gray) - .fixedSize() + VStack { + Gauge(value: Double(signalStrength.rawValue), in: 0...3) { + } currentValueLabel: { + Image(systemName: "dot.radiowaves.left.and.right") + .font(.callout) + .frame(width: 30) + Text("Signal \(signalStrength.description)") + .font(UIDevice.current.userInterfaceIdiom == .phone ? .callout : .caption) + .foregroundColor(.gray) + .fixedSize() + } + .gaugeStyle(.accessoryLinear) + .tint(gradient) + .font(.caption) } - .gaugeStyle(.accessoryLinear) - .tint(gradient) - .font(.caption) } } } diff --git a/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift b/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift index 1404489e..e9c1ef65 100644 --- a/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift +++ b/Meshtastic/Views/Nodes/Helpers/NodeListItem.swift @@ -199,9 +199,8 @@ struct NodeListItem: View { } } else { if node.snr != 0 && !node.viaMqtt { - VStack(alignment: .center) { - LoRaSignalStrengthMeter(snr: node.snr, rssi: node.rssi, preset: modemPreset, compact: true) - } + LoRaSignalStrengthMeter(snr: node.snr, rssi: node.rssi, preset: modemPreset, compact: true) + .padding(.top, node.hasPositions || node.hasEnvironmentMetrics || node.hasDetectionSensorMetrics || node.hasTraceRoutes ? 0 : 15) } } } diff --git a/Meshtastic/Views/Nodes/NodeList.swift b/Meshtastic/Views/Nodes/NodeList.swift index 2c157ab2..588fec7a 100644 --- a/Meshtastic/Views/Nodes/NodeList.swift +++ b/Meshtastic/Views/Nodes/NodeList.swift @@ -106,6 +106,9 @@ struct NodeList: View { ) if positionSent { isPresentingPositionSentAlert = true + DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { + isPresentingPositionSentAlert = false + } } } label: { Label("Exchange Positions", systemImage: "arrow.triangle.2.circlepath") @@ -116,7 +119,11 @@ struct NodeList: View { let success = bleManager.sendTraceRouteRequest(destNum: node.user?.num ?? 0, wantResponse: true) if success { isPresentingTraceRouteSentAlert = true + DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { + isPresentingTraceRouteSentAlert = false + } } + } label: { Label("Trace Route", systemImage: "signpost.right.and.left") } @@ -126,6 +133,9 @@ struct NodeList: View { let success = bleManager.requestStoreAndForwardClientHistory(fromUser: connectedNode!.user!, toUser: node.user!) if success { isPresentingClientHistorySentAlert = true + DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { + isPresentingClientHistorySentAlert = false + } } } label: { Label("Client History", systemImage: "envelope.arrow.triangle.branch") @@ -302,7 +312,7 @@ struct NodeList: View { searchNodeList() } } - + private func searchNodeList() { /// Case Insensitive Search Text Predicates let searchPredicates = ["user.userId", "user.numString", "user.hwModel", "user.longName", "user.shortName"].map { property in diff --git a/Meshtastic/Views/Settings/FirmwareApi.swift b/Meshtastic/Views/Settings/FirmwareApi.swift index 33e32c8a..c894006e 100644 --- a/Meshtastic/Views/Settings/FirmwareApi.swift +++ b/Meshtastic/Views/Settings/FirmwareApi.swift @@ -54,7 +54,6 @@ class Api : ObservableObject{ } URLSession.shared.dataTask(with: url) { data, response, error in - let deviceHardware = try! JSONDecoder().decode([DeviceHardware].self, from: data!) if let data = data { do { let deviceHardware = try JSONDecoder().decode([DeviceHardware].self, from: data)