diff --git a/dashpilot-ios/dashpilot/UI/DashboardSelectionView.swift b/dashpilot-ios/dashpilot/UI/DashboardSelectionView.swift index c479604..c00c755 100644 --- a/dashpilot-ios/dashpilot/UI/DashboardSelectionView.swift +++ b/dashpilot-ios/dashpilot/UI/DashboardSelectionView.swift @@ -58,22 +58,17 @@ private struct DashboardCard: View { var body: some View { VStack(spacing: 0) { - if dashboard.type == .devRive { - RoundedRectangle(cornerRadius: 12) - .fill(Color(white: 0.16)) - .aspectRatio(16.0 / 9.0, contentMode: .fit) - } else if let name = dashboard.screenshotName, let _ = UIImage(named: name) { - Image(name) - .resizable() - .scaledToFill() - .aspectRatio(16.0 / 9.0, contentMode: .fit) - .clipped() - .clipShape(RoundedRectangle(cornerRadius: 12)) - } else { - RoundedRectangle(cornerRadius: 12) - .fill(Color(white: 0.16)) - .aspectRatio(16.0 / 9.0, contentMode: .fit) - } + Color(white: 0.16) + .aspectRatio(16.0 / 9.0, contentMode: .fit) + .overlay { + if dashboard.type != .devRive, + let name = dashboard.screenshotName, UIImage(named: name) != nil { + Image(name) + .resizable() + .scaledToFill() + } + } + .clipShape(RoundedRectangle(cornerRadius: 12)) Spacer().frame(height: 10) diff --git a/dashpilot-ios/dashpilot/UI/SettingsView.swift b/dashpilot-ios/dashpilot/UI/SettingsView.swift index 61e683e..af07d0d 100644 --- a/dashpilot-ios/dashpilot/UI/SettingsView.swift +++ b/dashpilot-ios/dashpilot/UI/SettingsView.swift @@ -44,7 +44,7 @@ struct SettingsView: View { private var showDarkModeToggle: Bool { hasSetting(.darkMode) } private var showRenderQualityControl: Bool { hasSetting(.renderQuality) } private var showVisualizerSettings: Bool { - showRenderQualityControl || showAlwaysOnBlindSpotMonitorToggle || showDarkModeToggle + showRenderQualityControl || showAlwaysOnBlindSpotMonitorToggle } private var showPhoneBatteryToggle: Bool { hasSetting(.showPhoneBattery) } private var showUseImperialToggle: Bool { hasSetting(.useImperial) } @@ -177,19 +177,17 @@ struct SettingsView: View { } } - @ViewBuilder private func dashboardThumbnail(for dashboard: DashboardConfig) -> some View { - if let name = dashboard.screenshotName, UIImage(named: name) != nil { - Image(name) - .resizable() - .scaledToFill() - .aspectRatio(16.0 / 9.0, contentMode: .fit) - .clipped() - } else { - Rectangle() - .fill(Color(white: 0.16)) - .aspectRatio(16.0 / 9.0, contentMode: .fit) - } + Color(white: 0.16) + .aspectRatio(16.0 / 9.0, contentMode: .fit) + .overlay { + if let name = dashboard.screenshotName, UIImage(named: name) != nil { + Image(name) + .resizable() + .scaledToFill() + } + } + .clipped() } // MARK: - Configuration Section @@ -220,6 +218,9 @@ struct SettingsView: View { if showPhoneBatteryToggle { SettingsToggleRow(label: "Show Phone Battery", isOn: $showPhoneBattery) } + if showDarkModeToggle { + SettingsToggleRow(label: "Dark Mode", isOn: $darkMode) + } Spacer().frame(height: 8) } .padding(.horizontal, 24) @@ -233,9 +234,6 @@ struct SettingsView: View { if showAlwaysOnBlindSpotMonitorToggle { SettingsToggleRow(label: "Always On Blind-Spot Monitor", isOn: $alwaysOnBlindSpotMonitor) } - if showDarkModeToggle { - SettingsToggleRow(label: "Dark Mode", isOn: $darkMode) - } if showRenderQualityControl { renderQualityRow } diff --git a/dashpilot-ios/dashpilot/UI/ThemePickerView.swift b/dashpilot-ios/dashpilot/UI/ThemePickerView.swift index ec4f0f8..08ca049 100644 --- a/dashpilot-ios/dashpilot/UI/ThemePickerView.swift +++ b/dashpilot-ios/dashpilot/UI/ThemePickerView.swift @@ -101,18 +101,16 @@ struct ThemePickerView: View { } } - @ViewBuilder private func thumbnail(for dashboard: DashboardConfig) -> some View { - if let name = dashboard.screenshotName, UIImage(named: name) != nil { - Image(name) - .resizable() - .scaledToFill() - .aspectRatio(16.0 / 9.0, contentMode: .fit) - .clipped() - } else { - Rectangle() - .fill(Color(white: 0.16)) - .aspectRatio(16.0 / 9.0, contentMode: .fit) - } + Color(white: 0.16) + .aspectRatio(16.0 / 9.0, contentMode: .fit) + .overlay { + if let name = dashboard.screenshotName, UIImage(named: name) != nil { + Image(name) + .resizable() + .scaledToFill() + } + } + .clipped() } }