55 lines
1.7 KiB
Swift
55 lines
1.7 KiB
Swift
//
|
|
// SettingsView.swift
|
|
// GasTankAR
|
|
//
|
|
// Created by Dennis Nemec on 26.08.26.
|
|
//
|
|
|
|
import SwiftUI
|
|
import ARKit
|
|
|
|
/// Zentraler Schlüssel für die LiDAR-Einstellung (in AppStorage/UserDefaults).
|
|
enum SettingsKeys {
|
|
static let lidarFeaturesEnabled = "lidarFeaturesEnabled"
|
|
}
|
|
|
|
struct SettingsView: View {
|
|
@AppStorage(SettingsKeys.lidarFeaturesEnabled) private var lidarEnabled = false
|
|
@Environment(\.dismiss) private var dismiss
|
|
|
|
/// LiDAR ist verfügbar, wenn das Gerät Scene-Reconstruction (Mesh) unterstützt.
|
|
private var lidarSupported: Bool {
|
|
ARWorldTrackingConfiguration.supportsSceneReconstruction(.mesh)
|
|
}
|
|
|
|
var body: some View {
|
|
NavigationStack {
|
|
Form {
|
|
Section {
|
|
Toggle("LiDAR-Funktionen aktivieren", isOn: $lidarEnabled)
|
|
.disabled(!lidarSupported)
|
|
} header: {
|
|
Text("Augmented Reality")
|
|
} footer: {
|
|
if lidarSupported {
|
|
Text("Nutzt den LiDAR-Scanner für präzisere Flächenerkennung, Tiefe und realistische Verdeckung. Änderungen greifen beim nächsten Start des AR-Modus.")
|
|
} else {
|
|
Text("Dieses Gerät hat keinen LiDAR-Scanner. Die App nutzt automatisch das Verfahren ohne LiDAR.")
|
|
}
|
|
}
|
|
}
|
|
.navigationTitle("Einstellungen")
|
|
.navigationBarTitleDisplayMode(.inline)
|
|
.toolbar {
|
|
ToolbarItem(placement: .confirmationAction) {
|
|
Button("Fertig") { dismiss() }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#Preview {
|
|
SettingsView()
|
|
}
|