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" | ||
|  |     } | ||
|  | } |