diff --git a/SelfieCam/Shared/Extensions/Color+Codable.swift b/SelfieCam/Shared/Extensions/Color+Codable.swift deleted file mode 100644 index 7544308..0000000 --- a/SelfieCam/Shared/Extensions/Color+Codable.swift +++ /dev/null @@ -1,44 +0,0 @@ -// -// Color+Codable.swift -// CameraTester -// -// Created by Matt Bruce on 1/3/26. -// - -import SwiftUI - -// MARK: - Color Codable Extension - -extension Color: Codable { - enum CodingKeys: String, CodingKey { - case red, green, blue, opacity - } - - public init(from decoder: Decoder) throws { - let container = try decoder.container(keyedBy: CodingKeys.self) - let red = try container.decode(Double.self, forKey: .red) - let green = try container.decode(Double.self, forKey: .green) - let blue = try container.decode(Double.self, forKey: .blue) - let opacity = try container.decode(Double.self, forKey: .opacity) - - self.init(red: red, green: green, blue: blue, opacity: opacity) - } - - public func encode(to encoder: Encoder) throws { - var container = encoder.container(keyedBy: CodingKeys.self) - - // Convert Color to RGB components - let uiColor = UIColor(self) - var red: CGFloat = 0 - var green: CGFloat = 0 - var blue: CGFloat = 0 - var alpha: CGFloat = 0 - - uiColor.getRed(&red, green: &green, blue: &blue, alpha: &alpha) - - try container.encode(Double(red), forKey: .red) - try container.encode(Double(green), forKey: .green) - try container.encode(Double(blue), forKey: .blue) - try container.encode(Double(alpha), forKey: .opacity) - } -} diff --git a/SelfieCam/Shared/Models/CameraSettings.swift b/SelfieCam/Shared/Models/CameraSettings.swift index 2058f59..8fd152c 100644 --- a/SelfieCam/Shared/Models/CameraSettings.swift +++ b/SelfieCam/Shared/Models/CameraSettings.swift @@ -11,17 +11,22 @@ import SwiftUI struct CameraSettings: Codable { var photoQuality: PhotoQuality var isRingLightEnabled: Bool - var ringLightColor: Color + var ringLightColorRGB: CustomColorRGB var ringLightSize: CGFloat var ringLightOpacity: Double var flashMode: CameraFlashMode var isFlashSyncedWithRingLight: Bool + var ringLightColor: Color { + get { ringLightColorRGB.color } + set { ringLightColorRGB = CustomColorRGB(from: newValue) } + } + // Default settings static let `default` = CameraSettings( photoQuality: .high, isRingLightEnabled: true, - ringLightColor: .white, + ringLightColorRGB: .defaultWhite, ringLightSize: 25, ringLightOpacity: 1.0, flashMode: .off,