AppStateController.swift 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. //
  2. // AppStateController.swift
  3. // LoopFollow
  4. //
  5. // Created by Jose Paredes on 7/17/20.
  6. // Copyright © 2020 Jon Fawcett. All rights reserved.
  7. //
  8. import Foundation
  9. // App Sate used used to changes to the app view controllers (Settings, for example)
  10. // Recommended way of utilizing is when viewVillAppear(..) is called,
  11. // look in the app state to see if further action must be t
  12. // Setup App States to comminicate between views
  13. // Graph Setup Flags
  14. enum ChartSettingsChangeEnum: Int {
  15. case chartScaleXChanged = 1
  16. case showDotsChanged = 2
  17. case showLinesChanged = 4
  18. case offsetCarbsBolusChanged = 8
  19. case hoursToLoadChanged = 16
  20. case predictionToLoadChanged = 32
  21. case minBasalScaleChanged = 64
  22. case minBGScaleChanged = 128
  23. case overrideDisplayLocationChanged = 256
  24. case lowLineChanged = 512
  25. case highLineChanged = 1024
  26. case smallGraphHeight = 2048
  27. case showDIALinesChanged = 4096
  28. case showMidnightLinesChanged = 8192
  29. }
  30. // General Settings Flags
  31. enum GeneralSettingsChangeEnum: Int {
  32. case colorBGTextChange = 1
  33. case speakBGChange = 2
  34. case backgroundRefreshFrequencyChange = 4
  35. case backgroundRefreshChange = 8
  36. case appBadgeChange = 16
  37. case dimScreenWhenIdleChange = 32
  38. case forceDarkModeChang = 64
  39. case persistentNotificationChange = 128
  40. case persistentNotificationLastBGTimeChange = 256
  41. case screenlockSwitchStateChange = 512
  42. case showStatsChange = 1024
  43. case showSmallGraphChange = 2048
  44. case useIFCCChange = 4096
  45. }
  46. class AppStateController {
  47. // add app states & methods here
  48. // General Settings States
  49. var generalSettingsChanged : Bool = false
  50. var generalSettingsChanges : Int = 0
  51. // Chart Settings State
  52. var chartSettingsChanged : Bool = false // settings change has ocurred
  53. var chartSettingsChanges: Int = 0 // what settings have changed
  54. // Info Data Settings State; no need for flags
  55. var infoDataSettingsChanged: Bool = false
  56. }