LiveActivitySettingsStateModel.swift 840 B

123456789101112131415161718192021222324252627
  1. import Combine
  2. import SwiftUI
  3. extension LiveActivitySettings {
  4. final class StateModel: BaseStateModel<Provider> {
  5. @Injected() var settings: SettingsManager!
  6. @Injected() var storage: FileStorage!
  7. @Published var units: GlucoseUnits = .mgdL
  8. @Published var useLiveActivity = false
  9. @Published var lockScreenView: LockScreenView = .simple
  10. override func subscribe() {
  11. units = settingsManager.settings.units
  12. subscribeSetting(\.useLiveActivity, on: $useLiveActivity) { useLiveActivity = $0 }
  13. subscribeSetting(\.lockScreenView, on: $lockScreenView) { lockScreenView = $0 }
  14. }
  15. }
  16. }
  17. extension LiveActivitySettings.StateModel: SettingsObserver {
  18. func settingsDidChange(_: FreeAPSSettings) {
  19. units = settingsManager.settings.units
  20. }
  21. }