Jelajahi Sumber

Show App Name

Jonas Björkert 2 tahun lalu
induk
melakukan
51545052fc

+ 11 - 10
LoopFollow/Controllers/AppStateController.swift

@@ -36,19 +36,20 @@ enum ChartSettingsChangeEnum: Int {
 
 
 // General Settings Flags
 // General Settings Flags
 enum GeneralSettingsChangeEnum: Int { 
 enum GeneralSettingsChangeEnum: Int { 
-   case colorBGTextChange = 1
-   case speakBGChange = 2
-   case backgroundRefreshFrequencyChange = 4
-   case backgroundRefreshChange = 8
-   case appBadgeChange = 16
-   case dimScreenWhenIdleChange = 32
-   case forceDarkModeChang = 64
-   case persistentNotificationChange = 128
-   case persistentNotificationLastBGTimeChange = 256
-   case screenlockSwitchStateChange = 512
+    case colorBGTextChange = 1
+    case speakBGChange = 2
+    case backgroundRefreshFrequencyChange = 4
+    case backgroundRefreshChange = 8
+    case appBadgeChange = 16
+    case dimScreenWhenIdleChange = 32
+    case forceDarkModeChang = 64
+    case persistentNotificationChange = 128
+    case persistentNotificationLastBGTimeChange = 256
+    case screenlockSwitchStateChange = 512
     case showStatsChange = 1024
     case showStatsChange = 1024
     case showSmallGraphChange = 2048
     case showSmallGraphChange = 2048
     case useIFCCChange = 4096
     case useIFCCChange = 4096
+    case showAppNameChange = 8192
 }
 }
 
 
 class AppStateController {
 class AppStateController {

+ 9 - 1
LoopFollow/Controllers/Nightscout/BGData.swift

@@ -204,6 +204,14 @@ extension MainViewController {
         viewUpdateNSBG(sourceName: sourceName)
         viewUpdateNSBG(sourceName: sourceName)
     }
     }
     
     
+    func updateServerText(with serverText: String? = nil) {
+        if UserDefaultsRepository.showAppName.value, let displayName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String {
+            self.serverText.text = displayName
+        } else if let serverText = serverText {
+            self.serverText.text = serverText
+        }
+    }
+    
     // NS BG Data Front end updater
     // NS BG Data Front end updater
     func viewUpdateNSBG (sourceName: String) {
     func viewUpdateNSBG (sourceName: String) {
         DispatchQueue.main.async {
         DispatchQueue.main.async {
@@ -229,7 +237,7 @@ extension MainViewController {
                 userUnit = " mmol/L"
                 userUnit = " mmol/L"
             }
             }
             
             
-            self.serverText.text = sourceName
+            self.updateServerText(with: sourceName)
             
             
             var snoozerBG = ""
             var snoozerBG = ""
             var snoozerDirection = ""
             var snoozerDirection = ""

+ 14 - 1
LoopFollow/ViewControllers/GeneralSettingsViewController.swift

@@ -151,7 +151,20 @@ class GeneralSettingsViewController: FormViewController {
                     NotificationCenter.default.post(name: Notification.Name("toggleSpeakBG"), object: nil)
                     NotificationCenter.default.post(name: Notification.Name("toggleSpeakBG"), object: nil)
         }
         }
         
         
-        +++ ButtonRow() {
+       <<< SwitchRow("showAppName") { row in
+           row.title = "Show App Name"
+           row.value = UserDefaultsRepository.showAppName.value
+       }.onChange { [weak self] row in
+           guard let value = row.value else { return }
+           UserDefaultsRepository.showAppName.value = value
+
+           if let appState = self!.appStateController {
+               appState.generalSettingsChanged = true
+               appState.generalSettingsChanges |= GeneralSettingsChangeEnum.showAppNameChange.rawValue
+           }
+       }
+
+       +++ ButtonRow() {
           $0.title = "DONE"
           $0.title = "DONE"
        }.onCellSelection { (row, arg)  in
        }.onCellSelection { (row, arg)  in
           self.dismiss(animated:true, completion: nil)
           self.dismiss(animated:true, completion: nil)

+ 55 - 51
LoopFollow/ViewControllers/MainViewController.swift

@@ -296,61 +296,65 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
         // check the app state
         // check the app state
         // TODO: move to a function ?
         // TODO: move to a function ?
         if let appState = self.appStateController {
         if let appState = self.appStateController {
-        
-           if appState.chartSettingsChanged {
-              
-              // can look at settings flags to be more fine tuned
-              self.updateBGGraphSettings()
-            
-            if ChartSettingsChangeEnum.smallGraphHeight.rawValue != 0 {
-                smallGraphHeightConstraint.constant = CGFloat(UserDefaultsRepository.smallGraphHeight.value)
-                self.view.layoutIfNeeded()
-            }
-              
-              // reset the app state
-              appState.chartSettingsChanged = false
-              appState.chartSettingsChanges = 0
-           }
-           if appState.generalSettingsChanged {
-           
-              // settings for appBadge changed
-              if appState.generalSettingsChanges & GeneralSettingsChangeEnum.appBadgeChange.rawValue != 0 {
-                 
-              }
-              
-              // settings for textcolor changed
-              if appState.generalSettingsChanges & GeneralSettingsChangeEnum.colorBGTextChange.rawValue != 0 {
-                 self.setBGTextColor()
-              }
             
             
-            // settings for showStats changed
-            if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showStatsChange.rawValue != 0 {
-               statsView.isHidden = !UserDefaultsRepository.showStats.value
+            if appState.chartSettingsChanged {
+                
+                // can look at settings flags to be more fine tuned
+                self.updateBGGraphSettings()
+                
+                if ChartSettingsChangeEnum.smallGraphHeight.rawValue != 0 {
+                    smallGraphHeightConstraint.constant = CGFloat(UserDefaultsRepository.smallGraphHeight.value)
+                    self.view.layoutIfNeeded()
+                }
+                
+                // reset the app state
+                appState.chartSettingsChanged = false
+                appState.chartSettingsChanges = 0
             }
             }
-
-            // settings for useIFCC changed
-            if appState.generalSettingsChanges & GeneralSettingsChangeEnum.useIFCCChange.rawValue != 0 {
-                updateStats()
+            if appState.generalSettingsChanged {
+                
+                // settings for appBadge changed
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.appBadgeChange.rawValue != 0 {
+                    
+                }
+                
+                // settings for textcolor changed
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.colorBGTextChange.rawValue != 0 {
+                    self.setBGTextColor()
+                }
+                
+                // settings for showStats changed
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showStatsChange.rawValue != 0 {
+                    statsView.isHidden = !UserDefaultsRepository.showStats.value
+                }
+                
+                // settings for useIFCC changed
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.useIFCCChange.rawValue != 0 {
+                    updateStats()
+                }
+                
+                // settings for showSmallGraph changed
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showSmallGraphChange.rawValue != 0 {
+                    BGChartFull.isHidden = !UserDefaultsRepository.showSmallGraph.value
+                }
+                
+                if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showAppNameChange.rawValue != 0 {
+                    self.updateServerText()
+                }
+                
+                // reset the app state
+                appState.generalSettingsChanged = false
+                appState.generalSettingsChanges = 0
             }
             }
-
-            // settings for showSmallGraph changed
-            if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showSmallGraphChange.rawValue != 0 {
-                BGChartFull.isHidden = !UserDefaultsRepository.showSmallGraph.value
+            if appState.infoDataSettingsChanged {
+                createDerivedData()
+                self.infoTable.reloadData()
+                
+                // reset
+                appState.infoDataSettingsChanged = false
             }
             }
-              
-              // reset the app state
-              appState.generalSettingsChanged = false
-              appState.generalSettingsChanges = 0
-           }
-           if appState.infoDataSettingsChanged {
-              createDerivedData()
-              self.infoTable.reloadData()
-              
-              // reset
-              appState.infoDataSettingsChanged = false
-           }
-           
-           // add more processing of the app state
+            
+            // add more processing of the app state
         }
         }
     }
     }
     
     

+ 1 - 0
LoopFollow/repository/UserDefaults.swift

@@ -75,6 +75,7 @@ class UserDefaultsRepository {
     static let useIFCC = UserDefaultsValue<Bool>(key: "useIFCC", default: false)
     static let useIFCC = UserDefaultsValue<Bool>(key: "useIFCC", default: false)
     static let showSmallGraph = UserDefaultsValue<Bool>(key: "showSmallGraph", default: true)
     static let showSmallGraph = UserDefaultsValue<Bool>(key: "showSmallGraph", default: true)
     static let speakBG = UserDefaultsValue<Bool>(key: "speakBG", default: false)
     static let speakBG = UserDefaultsValue<Bool>(key: "speakBG", default: false)
+    static let showAppName = UserDefaultsValue<Bool>(key: "showAppName", default: false)
     static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
     static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
     static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
     static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
     static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)
     static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)