Files
eqn.ios/Sources/Earthquake Network/Models/Settings/EQNSettingRealTimeAlert.swift
T
2024-06-10 22:14:01 +02:00

65 lines
2.5 KiB
Swift

//
// 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()
}
}