DexcomSettingsViewModel.swift 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // LoopFollow
  2. // DexcomSettingsViewModel.swift
  3. import Combine
  4. import Foundation
  5. class DexcomSettingsViewModel: ObservableObject {
  6. /// Whether this is a fresh setup (credentials were empty when view appeared)
  7. private(set) var isFreshSetup: Bool = false
  8. @Published var userName: String = Storage.shared.shareUserName.value {
  9. willSet {
  10. if newValue != userName {
  11. Storage.shared.shareUserName.value = newValue
  12. }
  13. }
  14. }
  15. @Published var password: String = Storage.shared.sharePassword.value {
  16. willSet {
  17. if newValue != password {
  18. Storage.shared.sharePassword.value = newValue
  19. }
  20. }
  21. }
  22. @Published var server: String = Storage.shared.shareServer.value {
  23. willSet {
  24. if newValue != server {
  25. Storage.shared.shareServer.value = newValue
  26. }
  27. }
  28. }
  29. /// Whether credentials are filled in
  30. var hasCredentials: Bool {
  31. !userName.isEmpty && !password.isEmpty
  32. }
  33. init() {
  34. isFreshSetup = Storage.shared.shareUserName.value.isEmpty
  35. }
  36. }