From 78df35cae4f31a0529865fcb05391bd3d0e75db9 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Wed, 17 Jul 2024 21:43:06 -0700 Subject: [PATCH] Sheet improvements --- Meshtastic/Helpers/MeshPackets.swift | 11 ++++++----- .../Views/Nodes/Helpers/Map/MapSettingsForm.swift | 5 ++++- .../Views/Nodes/Helpers/Map/PositionPopover.swift | 4 +++- Meshtastic/Views/Nodes/Helpers/NodeListFilter.swift | 5 ++++- Meshtastic/Views/Settings/Logs/AppLogFilter.swift | 5 ++++- 5 files changed, 21 insertions(+), 9 deletions(-) diff --git a/Meshtastic/Helpers/MeshPackets.swift b/Meshtastic/Helpers/MeshPackets.swift index a789ad3b..5ee37673 100644 --- a/Meshtastic/Helpers/MeshPackets.swift +++ b/Meshtastic/Helpers/MeshPackets.swift @@ -648,6 +648,10 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage } else { // If it is the connected node } + if telemetryMessage.variant != Telemetry.OneOf_Variant.deviceMetrics(telemetryMessage.deviceMetrics) && telemetryMessage.variant != Telemetry.OneOf_Variant.environmentMetrics(telemetryMessage.environmentMetrics) { + /// Other unhandled telemetry packets + return + } let telemetry = TelemetryEntity(context: context) @@ -657,6 +661,7 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage do { let fetchedNode = try context.fetch(fetchNodeTelemetryRequest) if fetchedNode.count == 1 { + /// Currently only Device Metrics and Environment Telemetry are supported in the app if telemetryMessage.variant == Telemetry.OneOf_Variant.deviceMetrics(telemetryMessage.deviceMetrics) { // Device Metrics telemetry.airUtilTx = telemetryMessage.deviceMetrics.airUtilTx @@ -665,7 +670,7 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage telemetry.voltage = telemetryMessage.deviceMetrics.voltage telemetry.uptimeSeconds = Int32(telemetryMessage.deviceMetrics.uptimeSeconds) telemetry.metricsType = 0 - Logger.statistics.info("📈 [Mesh Statistics] Channel Utilization: \(telemetryMessage.deviceMetrics.channelUtilization, privacy: .public) Airtime: \(telemetryMessage.deviceMetrics.airUtilTx, privacy: .public)) for Node: \(packet.from.toHex(), privacy: .public))") + Logger.statistics.info("📈 [Mesh Statistics] Channel Utilization: \(telemetryMessage.deviceMetrics.channelUtilization, privacy: .public) Airtime: \(telemetryMessage.deviceMetrics.airUtilTx, privacy: .public) for Node: \(packet.from.toHex(), privacy: .public))") } else if telemetryMessage.variant == Telemetry.OneOf_Variant.environmentMetrics(telemetryMessage.environmentMetrics) { // Environment Metrics telemetry.barometricPressure = telemetryMessage.environmentMetrics.barometricPressure @@ -682,10 +687,6 @@ func telemetryPacket(packet: MeshPacket, connectedNode: Int64, context: NSManage telemetry.windLull = telemetryMessage.environmentMetrics.windLull telemetry.windDirection = Int32(truncatingIfNeeded: telemetryMessage.environmentMetrics.windDirection) telemetry.metricsType = 1 - } else { - - /// Other unhandled telemetry packets - return } telemetry.snr = packet.rxSnr telemetry.rssi = packet.rxRssi diff --git a/Meshtastic/Views/Nodes/Helpers/Map/MapSettingsForm.swift b/Meshtastic/Views/Nodes/Helpers/Map/MapSettingsForm.swift index 6ac10848..38b96a5d 100644 --- a/Meshtastic/Views/Nodes/Helpers/Map/MapSettingsForm.swift +++ b/Meshtastic/Views/Nodes/Helpers/Map/MapSettingsForm.swift @@ -13,6 +13,7 @@ import MapKit @available(iOS 17.0, macOS 14.0, *) struct MapSettingsForm: View { @Environment(\.dismiss) private var dismiss + @State private var currentDetent = PresentationDetent.medium @AppStorage("meshMapShowNodeHistory") private var nodeHistory = false @AppStorage("meshMapShowRouteLines") private var routeLines = false @AppStorage("enableMapConvexHull") private var convexHull = false @@ -121,8 +122,10 @@ Spacer() .padding(.bottom) #endif } - .presentationDetents([.fraction(meshMap ? 0.55 : 0.45), .fraction(0.65)]) + .presentationDetents([.medium, .large], selection: $currentDetent) + .presentationContentInteraction(.scrolls) .presentationDragIndicator(.visible) + .presentationBackgroundInteraction(.enabled(upThrough: .medium)) } } diff --git a/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift b/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift index 221bf24f..faa49760 100644 --- a/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift +++ b/Meshtastic/Views/Nodes/Helpers/Map/PositionPopover.swift @@ -213,7 +213,9 @@ struct PositionPopover: View { #endif } } - .presentationDetents([.fraction(0.65), .fraction(0.75), .fraction(0.85)]) + .presentationDetents([.medium, .large]) + .presentationContentInteraction(.scrolls) .presentationDragIndicator(.visible) + .presentationBackgroundInteraction(.enabled(upThrough: .medium)) } } diff --git a/Meshtastic/Views/Nodes/Helpers/NodeListFilter.swift b/Meshtastic/Views/Nodes/Helpers/NodeListFilter.swift index 457d6a16..6236f7b7 100644 --- a/Meshtastic/Views/Nodes/Helpers/NodeListFilter.swift +++ b/Meshtastic/Views/Nodes/Helpers/NodeListFilter.swift @@ -159,6 +159,7 @@ struct NodeListFilter: View { } } } + .listStyle(.insetGrouped) #if targetEnvironment(macCatalyst) Spacer() Button { @@ -172,7 +173,9 @@ struct NodeListFilter: View { .padding(.bottom) #endif } - .presentationDetents([.fraction(roleFilter ? 1.0 : 0.65)]) + .presentationDetents([.medium, .large]) + .presentationContentInteraction(.scrolls) .presentationDragIndicator(.visible) + .presentationBackgroundInteraction(.enabled(upThrough: .medium)) } } diff --git a/Meshtastic/Views/Settings/Logs/AppLogFilter.swift b/Meshtastic/Views/Settings/Logs/AppLogFilter.swift index 9943c2de..e6371672 100644 --- a/Meshtastic/Views/Settings/Logs/AppLogFilter.swift +++ b/Meshtastic/Views/Settings/Logs/AppLogFilter.swift @@ -97,6 +97,7 @@ enum LogLevels: Int, CaseIterable, Identifiable { struct AppLogFilter: View { @Environment(\.dismiss) private var dismiss + @State private var currentDetent = PresentationDetent.medium /// Filters var filterTitle = "App Log Filters" @Binding var categories: Set @@ -143,7 +144,9 @@ struct AppLogFilter: View { .padding(.bottom) #endif } - .presentationDetents([.fraction(1.0)]) + .presentationDetents([.medium, .large], selection: $currentDetent) + .presentationContentInteraction(.scrolls) .presentationDragIndicator(.visible) + .presentationBackgroundInteraction(.enabled(upThrough: .medium)) } }