AppStateController.swift 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. case show30MinLineChanged = 16384
  30. case show90MinLineChanged = 32768
  31. }
  32. // General Settings Flags
  33. enum GeneralSettingsChangeEnum: Int {
  34. case colorBGTextChange = 1
  35. case speakBGChange = 2
  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. case showDisplayNameChange = 8192
  46. }
  47. class AppStateController {
  48. // add app states & methods here
  49. // General Settings States
  50. var generalSettingsChanged : Bool = false
  51. var generalSettingsChanges : Int = 0
  52. // Chart Settings State
  53. var chartSettingsChanged : Bool = false // settings change has ocurred
  54. var chartSettingsChanges: Int = 0 // what settings have changed
  55. // Info Data Settings State; no need for flags
  56. var infoDataSettingsChanged: Bool = false
  57. }