refactor: Store first app start using a user default

This commit is contained in:
Andrea Busi
2024-10-17 16:04:56 +02:00
parent ce0e17a0c5
commit ef5db97854
3 changed files with 20 additions and 1 deletions
@@ -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
@@ -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)
}
}
}
@@ -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