diff --git a/Sources/Earthquake Network/Constants.swift b/Sources/Earthquake Network/Constants.swift index 5df6c99..1307cc5 100644 --- a/Sources/Earthquake Network/Constants.swift +++ b/Sources/Earthquake Network/Constants.swift @@ -37,6 +37,7 @@ extension UserDefaults { static let UserReportCodeStatus = "CODE_MESSAGE_EQN" // Proprietà e preferenze dell'utente + static let FirstAppStartExecuted = "EQNUserDefaultFirstAppStartExecuted" /// Ultima posizione conosciuta dell'utente static let UserDataLastLocation = "EQNLast_Location" /// Token Firebase dell'utente corrente diff --git a/Sources/Earthquake Network/Models/Commands/EQNUserDefaultsCommand.swift b/Sources/Earthquake Network/Models/Commands/EQNUserDefaultsCommand.swift index f46d3e4..ec82474 100644 --- a/Sources/Earthquake Network/Models/Commands/EQNUserDefaultsCommand.swift +++ b/Sources/Earthquake Network/Models/Commands/EQNUserDefaultsCommand.swift @@ -20,6 +20,7 @@ public class EQNUserDefaultsCommand: EQNCommandProtocol { applyDefaultSettings() migrationV5_8() + migrationFirstAppStat() } // MARK: - Private @@ -68,4 +69,20 @@ public class EQNUserDefaultsCommand: EQNCommandProtocol { 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) + } + } } diff --git a/Sources/Earthquake Network/Models/EQNUserData.swift b/Sources/Earthquake Network/Models/EQNUserData.swift index ad6cfe7..c36a96b 100644 --- a/Sources/Earthquake Network/Models/EQNUserData.swift +++ b/Sources/Earthquake Network/Models/EQNUserData.swift @@ -19,7 +19,8 @@ import CoreLocation @objc var isFirstStart: Bool { - firebaseToken == nil + let firstAppStartExecuted = UserDefaults.standard.bool(forKey: UserDefaults.FirstAppStartExecuted) + return !firstAppStartExecuted } // MARK: - Firebase Token