66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Swift
		
	
	
| //
 | |
| //  UserDefaults.swift
 | |
| //  GuruAnalytics
 | |
| //
 | |
| //  Created by mayue on 2022/11/21.
 | |
| //
 | |
| 
 | |
| import Foundation
 | |
| 
 | |
| internal enum UserDefaults {
 | |
|     
 | |
|     static let defaults = Foundation.UserDefaults(suiteName: "com.guru.guru_analytics_lib")
 | |
|     
 | |
|     static var eventsServerHost: String? {
 | |
|         
 | |
|         get {
 | |
|             return defaults?.value(forKey: eventsServerHostKey) as? String
 | |
|         }
 | |
|         
 | |
|         set {
 | |
|             var host = newValue
 | |
|             let h_sch = "http://"
 | |
|             let hs_sch = "https://"
 | |
|             host?.deletePrefix(h_sch)
 | |
|             host?.deletePrefix(hs_sch)
 | |
|             host?.trimmed(in: .whitespacesAndNewlines.union(.init(charactersIn: "/")))
 | |
|             defaults?.set(host, forKey: eventsServerHostKey)
 | |
|         }
 | |
|         
 | |
|     }
 | |
|     
 | |
|     static var fgAccumulatedDuration: Int64 {
 | |
|         get {
 | |
|             return defaults?.value(forKey: fgDurationKey) as? Int64 ?? 0
 | |
|         }
 | |
|         
 | |
|         set {
 | |
|             defaults?.set(newValue, forKey: fgDurationKey)
 | |
|         }
 | |
|     }
 | |
|     
 | |
| }
 | |
| 
 | |
| extension UserDefaults {
 | |
|     
 | |
|     static var firstOpenTimeKey: String {
 | |
|         return "app.first.open.timestamp"
 | |
|     }
 | |
|     
 | |
|     static var dbVersionKey: String {
 | |
|         return "db.version"
 | |
|     }
 | |
|     
 | |
|     static var hostsMapKey: String {
 | |
|         return "hosts.map"
 | |
|     }
 | |
|     
 | |
|     static var eventsServerHostKey: String {
 | |
|         return "events.server.host"
 | |
|     }
 | |
|     
 | |
|     static var fgDurationKey: String {
 | |
|         return "fg.duration.ms"
 | |
|     }
 | |
| }
 |