89 lines
3.0 KiB
Swift
89 lines
3.0 KiB
Swift
//
|
|
// EQNUserDefaultsCommand.swift
|
|
// Earthquake Network
|
|
//
|
|
// Created by Busi Andrea on 26/09/2020.
|
|
// Copyright © 2020 Earthquake Network. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import CoreLocation
|
|
|
|
|
|
public class EQNUserDefaultsCommand: EQNCommandProtocol {
|
|
|
|
// MARK: - Public
|
|
|
|
func execute() {
|
|
print("[EQNUserDefaultsCommand] Start execute")
|
|
|
|
applyDefaultSettings()
|
|
|
|
migrationV5_8()
|
|
migrationFirstAppStat()
|
|
}
|
|
|
|
// MARK: - Private
|
|
|
|
private func applyDefaultSettings() {
|
|
|
|
// seismic card settings
|
|
if UserDefaults.standard.array(forKey: EQNUserDefaultKeySesmicInformations) == nil {
|
|
let informations: [SeismicNetworkTableViewCell.InformationType] = [.buttons, .distance, .coordinate, .population]
|
|
UserDefaults.standard.set(informations.map { $0.rawValue }, forKey: EQNUserDefaultKeySesmicInformations)
|
|
}
|
|
}
|
|
|
|
private func migrationV5_8() {
|
|
let migrationPerformed = UserDefaults.standard.bool(forKey: UserDefaults.AppMigrationV5_8)
|
|
if migrationPerformed {
|
|
print("[EQNUserDefaultsCommand] Migration v5.8 already performed")
|
|
return
|
|
}
|
|
|
|
// delete old notification settings
|
|
let userDefaults = UserDefaults.standard
|
|
[
|
|
"NOTIFICHE_ATTIVA_RETI_SISMICHE_VICINE", "NOTIFICHE_ATTIVA_RETI_TERREMOTI_FORTI",
|
|
"NOTIFICHE_ATTIVA_RETI_ENERGIA_FORTI", "NOTIFICHE_ATTIVA_RETI_LISTA_ENTI"
|
|
].forEach { key in
|
|
userDefaults.removeObject(forKey: key)
|
|
}
|
|
|
|
// delete old filter values
|
|
[
|
|
"EQN_ETA_MASSIMA", "EQN_SISMI_FORTI_ABILITATI", "EQN_SISMI_FORTI",
|
|
"EQN_SISMI_QUALSIASI_MAGNITUDO", "EQN_SISMI_MODIFICA_IMPOSTAZIONI"
|
|
].forEach { key in
|
|
userDefaults.removeObject(forKey: key)
|
|
}
|
|
|
|
// delete old "real time alert" settings
|
|
[
|
|
"NOTIFICHE_ALLERA_SISMICA_IMPOSTA_VOLUME", "NOTIFICHE_ALLERA_SISMICA_TESTA_ALLARME",
|
|
"NOTIFICHE_ALLERA_SISMICA_ABILITA_INTERVALLO", "NOTIFICHE_ALLERA_SISMICA_ORA_INIZIO",
|
|
"NOTIFICHE_ALLERA_SISMICA_ORA_INIZIO"
|
|
].forEach { key in
|
|
userDefaults.removeObject(forKey: key)
|
|
}
|
|
|
|
userDefaults.set(true, forKey: UserDefaults.AppMigrationV5_8)
|
|
}
|
|
|
|
private func migrationFirstAppStat() {
|
|
// before v5.8.2, first app start was defined using Firebase Token
|
|
let userDefaults = UserDefaults.standard
|
|
let firstAppStartExecuted = userDefaults.bool(forKey: UserDefaults.FirstAppStartExecuted)
|
|
if firstAppStartExecuted {
|
|
print("[EQNUserDefaultsCommand] First app start already executed")
|
|
return
|
|
}
|
|
|
|
let firebaseToken = userDefaults.object(forKey: UserDefaults.UserDataFirebaseToken) as? String
|
|
if firebaseToken != nil {
|
|
print("[EQNUserDefaultsCommand] First app start migrated")
|
|
userDefaults.set(true, forKey: UserDefaults.FirstAppStartExecuted)
|
|
}
|
|
}
|
|
}
|