SettingsStateModel.swift 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import SwiftUI
  2. extension Settings {
  3. final class StateModel: BaseStateModel<Provider> {
  4. @Injected() private var broadcaster: Broadcaster!
  5. @Injected() private var fileManager: FileManager!
  6. @Published var closedLoop = false
  7. @Published var debugOptions = false
  8. private(set) var buildNumber = ""
  9. override func subscribe() {
  10. closedLoop = settingsManager.settings.closedLoop
  11. debugOptions = settingsManager.settings.debugOptions
  12. subscribeSetting(\.closedLoop, on: $closedLoop)
  13. broadcaster.register(SettingsObserver.self, observer: self)
  14. buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown"
  15. }
  16. func logItems() -> [URL] {
  17. var items: [URL] = []
  18. if fileManager.fileExists(atPath: SimpleLogReporter.logFile) {
  19. items.append(URL(fileURLWithPath: SimpleLogReporter.logFile))
  20. }
  21. if fileManager.fileExists(atPath: SimpleLogReporter.logFilePrev) {
  22. items.append(URL(fileURLWithPath: SimpleLogReporter.logFilePrev))
  23. }
  24. return items
  25. }
  26. }
  27. }
  28. extension Settings.StateModel: SettingsObserver {
  29. func settingsDidChange(_ settings: FreeAPSSettings) {
  30. closedLoop = settings.closedLoop
  31. debugOptions = settings.debugOptions
  32. }
  33. }