AppStateController.swift 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. }
  27. // General Settings Flags
  28. enum GeneralSettingsChangeEnum: Int {
  29. case colorBGTextChange = 1
  30. case speakBGChange = 2
  31. case backgroundRefreshFrequencyChange = 4
  32. case backgroundRefreshChange = 8
  33. case appBadgeChange = 16
  34. case dimScreenWhenIdleChange = 32
  35. case forceDarkModeChang = 64
  36. case persistentNotificationChange = 128
  37. case persistentNotificationLastBGTimeChange = 256
  38. case screenlockSwitchStateChange = 512
  39. case showStatsChange = 1024
  40. case showSmallGraphChange = 2048
  41. }
  42. class AppStateController {
  43. // add app states & methods here
  44. // General Settings States
  45. var generalSettingsChanged : Bool = false
  46. var generalSettingsChanges : Int = 0
  47. // Chart Settings State
  48. var chartSettingsChanged : Bool = false // settings change has ocurred
  49. var chartSettingsChanges: Int = 0 // what settings have changed
  50. // Info Data Settings State; no need for flags
  51. var infoDataSettingsChanged: Bool = false
  52. }