Files
eqn.ios/Sources/Earthquake Network/Models/AppPreferences.swift
T
2025-03-06 15:49:26 +01:00

56 lines
1.8 KiB
Swift

//
// AppPreferences.swift
// Earthquake Network
//
// Created by Andrea Busi on 17/11/22.
// Copyright © 2022 Earthquake Network. All rights reserved.
//
import Foundation
@objc
class AppPreferences: NSObject {
@objc
static let shared = AppPreferences()
// MARK: - Public
/// Defines if time has to be shown on map annotations in User Reports
var userReportExpandedView: Bool {
get { UserDefaults.standard.bool(forKey: UserDefaults.UserReportExpandedView) }
set { UserDefaults.standard.set(newValue, forKey: UserDefaults.UserReportExpandedView) }
}
/// Defines if options has to be shown on seismic cards
@objc
var alertsShowAllCards: Bool {
get { UserDefaults.standard.bool(forKey: UserDefaults.AlertsShowCardOptions) }
set { UserDefaults.standard.set(newValue, forKey: UserDefaults.AlertsShowCardOptions) }
}
var mapPinStyle: MapPinStyle {
get {
let saved = UserDefaults.standard.integer(forKey: UserDefaults.MapPinStyle)
return MapPinStyle(rawValue: saved) ?? .circle
}
set {
UserDefaults.standard.set(newValue.rawValue, forKey: UserDefaults.MapPinStyle)
}
}
var seismicNetworksInformations: [SeismicNetworkTableViewCell.InformationType] {
get {
if let saved = UserDefaults.standard.array(forKey: UserDefaults.SeismicNetworksCardInformations) as? [Int] {
let informations = saved.compactMap { SeismicNetworkTableViewCell.InformationType(rawValue: $0) }
return informations
}
return [.buttons, .distance, .coordinate, .population, .intensityMap]
}
set {
UserDefaults.standard.set(newValue.map { $0.rawValue }, forKey: UserDefaults.SeismicNetworksCardInformations)
}
}
}