CGMViewModel.swift 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import SwiftUI
  2. extension CGM {
  3. class ViewModel<Provider>: BaseViewModel<Provider>, ObservableObject where Provider: CGMProvider {
  4. @Injected() var settingsManager: SettingsManager!
  5. @Published var cgm: CGMType = .nightscout
  6. @Published var transmitterID = ""
  7. @Published var uploadGlucose = false
  8. override func subscribe() {
  9. cgm = settingsManager.settings.cgm ?? .nightscout
  10. uploadGlucose = settingsManager.settings.uploadGlucose ?? false
  11. transmitterID = UserDefaults.standard.dexcomTransmitterID ?? ""
  12. $cgm
  13. .removeDuplicates()
  14. .sink { [weak self] value in
  15. self?.settingsManager.settings.cgm = value
  16. }
  17. .store(in: &lifetime)
  18. $uploadGlucose
  19. .removeDuplicates()
  20. .sink { [weak self] value in
  21. self?.settingsManager.settings.uploadGlucose = value
  22. }
  23. .store(in: &lifetime)
  24. }
  25. func onChangeID() {
  26. UserDefaults.standard.dexcomTransmitterID = transmitterID
  27. }
  28. }
  29. }