AppStateController.swift 1.9 KB

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