SettingsStateModel.swift 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. debugOptions = settingsManager.settings.debugOptions
  11. subscribeSetting(\.closedLoop, on: $closedLoop) { closedLoop = $0 }
  12. broadcaster.register(SettingsObserver.self, observer: self)
  13. buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String ?? "Unknown"
  14. }
  15. func logItems() -> [URL] {
  16. var items: [URL] = []
  17. if fileManager.fileExists(atPath: SimpleLogReporter.logFile) {
  18. items.append(URL(fileURLWithPath: SimpleLogReporter.logFile))
  19. }
  20. if fileManager.fileExists(atPath: SimpleLogReporter.logFilePrev) {
  21. items.append(URL(fileURLWithPath: SimpleLogReporter.logFilePrev))
  22. }
  23. return items
  24. }
  25. }
  26. }
  27. extension Settings.StateModel: SettingsObserver {
  28. func settingsDidChange(_ settings: FreeAPSSettings) {
  29. closedLoop = settings.closedLoop
  30. debugOptions = settings.debugOptions
  31. }
  32. }