Meshtastic-Apple/Meshtastic/Extensions/UserDefaults.swift
Garth Vander Houwen e7a5aa40f0 Group box for Position Altitude Chart on the node map
Save Prefered node id so messages show up when not connected via ble
2023-11-20 13:20:55 -08:00

193 lines
4.9 KiB
Swift

//
// UserDefaults.swift
// Meshtastic
//
// Copyright(c) Garth Vander Houwen 4/24/23.
//
import Foundation
extension UserDefaults {
enum Keys: String, CaseIterable {
case enableRangeTest
case meshtasticUsername
case preferredPeripheralId
case preferredPeripheralNum
case provideLocation
case provideLocationInterval
case mapLayer
case meshMapRecentering
case meshMapShowNodeHistory
case meshMapShowRouteLines
case enableMapConvexHull
case enableMapTraffic
case enableMapPointsOfInterest
case enableOfflineMaps
case mapTileServer
case mapTilesAboveLabels
case mapUseLegacy
}
func reset() {
Keys.allCases.forEach { removeObject(forKey: $0.rawValue) }
}
static var blockRangeTest: Bool {
get {
UserDefaults.standard.bool(forKey: "blockRangeTest")
} set {
UserDefaults.standard.set(newValue, forKey: "blockRangeTest")
}
}
static var meshtasticUsername: String {
get {
UserDefaults.standard.string(forKey: "meshtasticUsername") ?? ""
}
set {
UserDefaults.standard.set(newValue, forKey: "meshtasticUsername")
}
}
static var preferredPeripheralId: String {
get {
UserDefaults.standard.string(forKey: "preferredPeripheralId") ?? ""
}
set {
UserDefaults.standard.set(newValue, forKey: "preferredPeripheralId")
}
}
static var preferredPeripheralNum: Int {
get {
UserDefaults.standard.integer(forKey: "preferredPeripheralNum")
}
set {
UserDefaults.standard.set(newValue, forKey: "preferredPeripheralNum")
}
}
static var provideLocation: Bool {
get {
UserDefaults.standard.bool(forKey: "provideLocation")
} set {
UserDefaults.standard.set(newValue, forKey: "provideLocation")
}
}
static var provideLocationInterval: Int {
get {
UserDefaults.standard.integer(forKey: "provideLocationInterval")
}
set {
UserDefaults.standard.set(newValue, forKey: "provideLocationInterval")
}
}
static var mapLayer: MapLayer {
get {
MapLayer(rawValue: UserDefaults.standard.string(forKey: "mapLayer") ?? MapLayer.standard.rawValue) ?? MapLayer.standard
}
set {
UserDefaults.standard.set(newValue.rawValue, forKey: "mapLayer")
}
}
static var enableMapRecentering: Bool {
get {
UserDefaults.standard.bool(forKey: "meshMapRecentering")
}
set {
UserDefaults.standard.set(newValue, forKey: "meshMapRecentering")
}
}
static var enableMapNodeHistoryPins: Bool {
get {
UserDefaults.standard.bool(forKey: "meshMapShowNodeHistory")
}
set {
UserDefaults.standard.set(newValue, forKey: "meshMapShowNodeHistory")
}
}
static var enableMapRouteLines: Bool {
get {
UserDefaults.standard.bool(forKey: "meshMapShowRouteLines")
}
set {
UserDefaults.standard.set(newValue, forKey: "meshMapShowRouteLines")
}
}
static var enableMapConvexHull: Bool {
get {
UserDefaults.standard.bool(forKey: "enableMapConvexHull")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableMapConvexHull")
}
}
static var enableMapTraffic: Bool {
get {
UserDefaults.standard.bool(forKey: "enableMapTraffic")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableMapTraffic")
}
}
static var enableMapPointsOfInterest: Bool {
get {
UserDefaults.standard.bool(forKey: "enableMapPointsOfInterest")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableMapPointsOfInterest")
}
}
static var enableOfflineMaps: Bool {
get {
UserDefaults.standard.bool(forKey: "enableOfflineMaps")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableOfflineMaps")
}
}
static var enableOfflineMapsMBTiles: Bool {
get {
UserDefaults.standard.bool(forKey: "enableOfflineMapsMBTiles")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableOfflineMapsMBTiles")
}
}
static var mapTileServer: MapTileServer {
get {
MapTileServer(rawValue: UserDefaults.standard.string(forKey: "mapTileServer") ?? MapTileServer.openStreetMap.rawValue) ?? MapTileServer.openStreetMap
}
set {
UserDefaults.standard.set(newValue.rawValue, forKey: "mapTileServer")
}
}
static var enableOverlayServer: Bool {
get {
UserDefaults.standard.bool(forKey: "enableOverlayServer")
}
set {
UserDefaults.standard.set(newValue, forKey: "enableOverlayServer")
}
}
static var mapOverlayServer: MapOverlayServer {
get {
MapOverlayServer(rawValue: UserDefaults.standard.string(forKey: "mapOverlayServer") ?? MapOverlayServer.baseReReflectivityCurrent.rawValue) ?? MapOverlayServer.baseReReflectivityCurrent
}
set {
UserDefaults.standard.set(newValue.rawValue, forKey: "mapOverlayServer")
}
}
static var mapTilesAboveLabels: Bool {
get {
UserDefaults.standard.bool(forKey: "mapTilesAboveLabels")
}
set {
UserDefaults.standard.set(newValue, forKey: "mapTilesAboveLabels")
}
}
static var mapUseLegacy: Bool {
get {
UserDefaults.standard.bool(forKey: "mapUseLegacy")
}
set {
UserDefaults.standard.set(newValue, forKey: "mapUseLegacy")
}
}
}