56 lines
1.8 KiB
Swift
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)
|
|
}
|
|
}
|
|
}
|