50 lines
2.0 KiB
Swift
50 lines
2.0 KiB
Swift
import SwiftUI
|
||
|
||
/// App-weite Einstellungen. Bewusst knapp gehalten – was ein einzelnes Gerät
|
||
/// betrifft, steht bei diesem Gerät.
|
||
struct SettingsView: View {
|
||
@AppStorage(AppSettings.showDiagnosticsKey) private var showDiagnostics = false
|
||
@Environment(PhoneWatchLink.self) private var watch
|
||
@Environment(\.dismiss) private var dismiss
|
||
|
||
var body: some View {
|
||
NavigationStack {
|
||
List {
|
||
Section {
|
||
Toggle("Diagnose anzeigen", isOn: $showDiagnostics)
|
||
} header: {
|
||
Text("Fehlersuche")
|
||
} footer: {
|
||
Text("Zeigt bei jedem Gerät die technischen Angaben: erkanntes "
|
||
+ "Protokoll, Bluetooth-Merkmale, gesendete Befehle und die "
|
||
+ "Rohdaten der letzten Antwort. Für den Alltag nicht nötig – "
|
||
+ "hilfreich, wenn ein Gerät sich nicht wie erwartet verhält.\n\n"
|
||
+ "Meldet ein Gerät einen Fehler, werden die Angaben ohnehin "
|
||
+ "eingeblendet, auch wenn das hier ausgeschaltet ist.")
|
||
}
|
||
|
||
Section {
|
||
LabeledContent("Apple Watch", value: watch.statusText)
|
||
} footer: {
|
||
Text("Die Uhr zeigt die Werte dieses iPhones und steuert die "
|
||
+ "Kühlbox darüber – sie funkt nicht selbst zu den Geräten. "
|
||
+ "Dafür muss diese App laufen; im Hintergrund liefern "
|
||
+ "Neigungsmesser, BMS und Kühlbox weiter, die "
|
||
+ "Victron-Werbedaten erst wieder im Vordergrund.")
|
||
}
|
||
}
|
||
.navigationTitle("Einstellungen")
|
||
.navigationBarTitleDisplayMode(.inline)
|
||
.toolbar {
|
||
ToolbarItem(placement: .confirmationAction) {
|
||
Button("Fertig") { dismiss() }
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
enum AppSettings {
|
||
static let showDiagnosticsKey = "showDiagnostics"
|
||
}
|