LiveActivitySettingsStateModel.swift 1.1 KB

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