// // EQNSettingRealTimeAlert.swift // Earthquake Network // // Created by Andrea Busi on 10/06/24. // Copyright © 2024 Earthquake Network. All rights reserved. // import Foundation @objc class EQNSettingRealTimeAlert: NSObject { @objc(sharedInstance) static let shared = EQNSettingRealTimeAlert() @objc var isAbilitato: Bool @objc var isCriticalAlertsEnabled: Bool @objc var sismiDaNotificare: String @objc var raggioSismiLievi: String @objc var raggioSismiForti: String private static let DefaultSismiDaNotificare = "0" private static let DefaultRaggioSismiLievi = "250" private static let DefaultRaggioSismiForti = "500" private static let DefaultDistanzaMassima = EQNData.DefaultSettingUserReportNotificationRadius.value // MARK: - Init override init() { let defaults = UserDefaults.standard self.isAbilitato = defaults.bool(forKey: UserDefaults.AllertaSismicaAbilitato) self.sismiDaNotificare = defaults.object(forKey: UserDefaults.AllertaSismicaSismiDaNotificare, or: Self.DefaultSismiDaNotificare) self.raggioSismiLievi = defaults.object(forKey: UserDefaults.AllertaSismicaRaggioSismiLievi, or: Self.DefaultRaggioSismiLievi) self.raggioSismiForti = defaults.object(forKey: UserDefaults.AllertaSismicaRaggioSismiForti, or: Self.DefaultRaggioSismiForti) let sharedDefaults = UserDefaults.appGroup isCriticalAlertsEnabled = sharedDefaults?.bool(forKey: UserDefaults.AllertaSismicaCriticalAlerts) ?? false } // MARK: - Public func saveUserInfo() { let defaults = UserDefaults.standard defaults.set(isAbilitato, forKey: UserDefaults.AllertaSismicaAbilitato) defaults.set(sismiDaNotificare, forKey: UserDefaults.AllertaSismicaSismiDaNotificare) defaults.set(raggioSismiLievi, forKey: UserDefaults.AllertaSismicaRaggioSismiLievi) defaults.set(raggioSismiForti, forKey: UserDefaults.AllertaSismicaRaggioSismiForti) if let sharedDefaults = UserDefaults.appGroup { sharedDefaults.set(isCriticalAlertsEnabled, forKey: UserDefaults.AllertaSismicaCriticalAlerts) } } @objc class func saveDefaultValues() { shared.isAbilitato = true shared.isCriticalAlertsEnabled = false shared.sismiDaNotificare = Self.DefaultSismiDaNotificare shared.raggioSismiLievi = Self.DefaultRaggioSismiLievi shared.raggioSismiForti = Self.DefaultRaggioSismiForti shared.saveUserInfo() } }