65 lines
2.5 KiB
Swift
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()
|
|
}
|
|
}
|