LALivenessStore.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // LoopFollow
  2. // LALivenessStore.swift
  3. import Foundation
  4. enum LALivenessStore {
  5. private static let defaults = UserDefaults(suiteName: AppGroupID.baseBundleID)
  6. private enum Key {
  7. static let lastExtensionSeenAt = "la.liveness.lastExtensionSeenAt"
  8. static let lastExtensionSeq = "la.liveness.lastExtensionSeq"
  9. static let lastExtensionProducedAt = "la.liveness.lastExtensionProducedAt"
  10. }
  11. static func markExtensionRender(seq: Int, producedAt: Date) {
  12. defaults?.set(Date().timeIntervalSince1970, forKey: Key.lastExtensionSeenAt)
  13. defaults?.set(seq, forKey: Key.lastExtensionSeq)
  14. defaults?.set(producedAt.timeIntervalSince1970, forKey: Key.lastExtensionProducedAt)
  15. }
  16. static var lastExtensionSeenAt: TimeInterval {
  17. defaults?.double(forKey: Key.lastExtensionSeenAt) ?? 0
  18. }
  19. static var lastExtensionSeq: Int {
  20. defaults?.integer(forKey: Key.lastExtensionSeq) ?? 0
  21. }
  22. static var lastExtensionProducedAt: TimeInterval {
  23. defaults?.double(forKey: Key.lastExtensionProducedAt) ?? 0
  24. }
  25. static func clear() {
  26. defaults?.removeObject(forKey: Key.lastExtensionSeenAt)
  27. defaults?.removeObject(forKey: Key.lastExtensionSeq)
  28. defaults?.removeObject(forKey: Key.lastExtensionProducedAt)
  29. }
  30. }