From 2e3c12fed339c8bf3dc966217cbdf4c385fb98a1 Mon Sep 17 00:00:00 2001 From: Shav Kinderlehrer Date: Fri, 15 Dec 2023 10:41:00 -0500 Subject: Add settings view + fix signin flow --- Jel/Controllers/SettingsController.swift | 44 ++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 Jel/Controllers/SettingsController.swift (limited to 'Jel/Controllers/SettingsController.swift') diff --git a/Jel/Controllers/SettingsController.swift b/Jel/Controllers/SettingsController.swift new file mode 100644 index 0000000..2b912c4 --- /dev/null +++ b/Jel/Controllers/SettingsController.swift @@ -0,0 +1,44 @@ +// +// SettingsController.swift +// Jel +// +// Created by zerocool on 12/13/23. +// + +import Foundation + +enum AppearanceState: Int, CaseIterable, Identifiable, CustomStringConvertible { + case automatic + case light + case dark + + var id: Self { self } + + var description: String { + switch self { + case .light: + return "Light" + case .dark: + return "Dark" + case .automatic: + return "Automatic" + } + } +} + +class SettingsController: ObservableObject { + static let shared: SettingsController = SettingsController() + + @Published var appearance: AppearanceState = .automatic + + private let defaults = UserDefaults.standard + + func save() { + defaults.set(self.appearance.rawValue, forKey: "Settings_appearance") + } + + func load() { + let oldAppearance = defaults.integer(forKey: "Settings_appearance") + self.appearance = AppearanceState(rawValue: oldAppearance) ?? .automatic + } +} -- cgit v1.2.3