Skip to content

Commit fae22f5

Browse files
authored
Merge pull request #247 from loopandlearn/show-name
Implement Dynamic Server Text Update & Add 'Show App Name' Setting
2 parents 1914188 + b5a8145 commit fae22f5

File tree

5 files changed

+90
-63
lines changed

5 files changed

+90
-63
lines changed

LoopFollow/Controllers/AppStateController.swift

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,20 @@ enum ChartSettingsChangeEnum: Int {
3636

3737
// General Settings Flags
3838
enum GeneralSettingsChangeEnum: Int {
39-
case colorBGTextChange = 1
40-
case speakBGChange = 2
41-
case backgroundRefreshFrequencyChange = 4
42-
case backgroundRefreshChange = 8
43-
case appBadgeChange = 16
44-
case dimScreenWhenIdleChange = 32
45-
case forceDarkModeChang = 64
46-
case persistentNotificationChange = 128
47-
case persistentNotificationLastBGTimeChange = 256
48-
case screenlockSwitchStateChange = 512
39+
case colorBGTextChange = 1
40+
case speakBGChange = 2
41+
case backgroundRefreshFrequencyChange = 4
42+
case backgroundRefreshChange = 8
43+
case appBadgeChange = 16
44+
case dimScreenWhenIdleChange = 32
45+
case forceDarkModeChang = 64
46+
case persistentNotificationChange = 128
47+
case persistentNotificationLastBGTimeChange = 256
48+
case screenlockSwitchStateChange = 512
4949
case showStatsChange = 1024
5050
case showSmallGraphChange = 2048
5151
case useIFCCChange = 4096
52+
case showDisplayNameChange = 8192
5253
}
5354

5455
class AppStateController {

LoopFollow/Controllers/Nightscout/BGData.swift

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,14 @@ extension MainViewController {
204204
viewUpdateNSBG(sourceName: sourceName)
205205
}
206206

207+
func updateServerText(with serverText: String? = nil) {
208+
if UserDefaultsRepository.showDisplayName.value, let displayName = Bundle.main.object(forInfoDictionaryKey: "CFBundleDisplayName") as? String {
209+
self.serverText.text = displayName
210+
} else if let serverText = serverText {
211+
self.serverText.text = serverText
212+
}
213+
}
214+
207215
// NS BG Data Front end updater
208216
func viewUpdateNSBG (sourceName: String) {
209217
DispatchQueue.main.async {
@@ -229,7 +237,7 @@ extension MainViewController {
229237
userUnit = " mmol/L"
230238
}
231239

232-
self.serverText.text = sourceName
240+
self.updateServerText(with: sourceName)
233241

234242
var snoozerBG = ""
235243
var snoozerDirection = ""

LoopFollow/ViewControllers/GeneralSettingsViewController.swift

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,20 @@ class GeneralSettingsViewController: FormViewController {
151151
NotificationCenter.default.post(name: Notification.Name("toggleSpeakBG"), object: nil)
152152
}
153153

154-
+++ ButtonRow() {
154+
<<< SwitchRow("showDisplayName") { row in
155+
row.title = "Show Display Name"
156+
row.value = UserDefaultsRepository.showDisplayName.value
157+
}.onChange { [weak self] row in
158+
guard let value = row.value else { return }
159+
UserDefaultsRepository.showDisplayName.value = value
160+
161+
if let appState = self!.appStateController {
162+
appState.generalSettingsChanged = true
163+
appState.generalSettingsChanges |= GeneralSettingsChangeEnum.showDisplayNameChange.rawValue
164+
}
165+
}
166+
167+
+++ ButtonRow() {
155168
$0.title = "DONE"
156169
}.onCellSelection { (row, arg) in
157170
self.dismiss(animated:true, completion: nil)

LoopFollow/ViewControllers/MainViewController.swift

Lines changed: 55 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -296,61 +296,65 @@ class MainViewController: UIViewController, UITableViewDataSource, ChartViewDele
296296
// check the app state
297297
// TODO: move to a function ?
298298
if let appState = self.appStateController {
299-
300-
if appState.chartSettingsChanged {
301-
302-
// can look at settings flags to be more fine tuned
303-
self.updateBGGraphSettings()
304-
305-
if ChartSettingsChangeEnum.smallGraphHeight.rawValue != 0 {
306-
smallGraphHeightConstraint.constant = CGFloat(UserDefaultsRepository.smallGraphHeight.value)
307-
self.view.layoutIfNeeded()
308-
}
309-
310-
// reset the app state
311-
appState.chartSettingsChanged = false
312-
appState.chartSettingsChanges = 0
313-
}
314-
if appState.generalSettingsChanged {
315-
316-
// settings for appBadge changed
317-
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.appBadgeChange.rawValue != 0 {
318-
319-
}
320-
321-
// settings for textcolor changed
322-
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.colorBGTextChange.rawValue != 0 {
323-
self.setBGTextColor()
324-
}
325299

326-
// settings for showStats changed
327-
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showStatsChange.rawValue != 0 {
328-
statsView.isHidden = !UserDefaultsRepository.showStats.value
300+
if appState.chartSettingsChanged {
301+
302+
// can look at settings flags to be more fine tuned
303+
self.updateBGGraphSettings()
304+
305+
if ChartSettingsChangeEnum.smallGraphHeight.rawValue != 0 {
306+
smallGraphHeightConstraint.constant = CGFloat(UserDefaultsRepository.smallGraphHeight.value)
307+
self.view.layoutIfNeeded()
308+
}
309+
310+
// reset the app state
311+
appState.chartSettingsChanged = false
312+
appState.chartSettingsChanges = 0
329313
}
330-
331-
// settings for useIFCC changed
332-
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.useIFCCChange.rawValue != 0 {
333-
updateStats()
314+
if appState.generalSettingsChanged {
315+
316+
// settings for appBadge changed
317+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.appBadgeChange.rawValue != 0 {
318+
319+
}
320+
321+
// settings for textcolor changed
322+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.colorBGTextChange.rawValue != 0 {
323+
self.setBGTextColor()
324+
}
325+
326+
// settings for showStats changed
327+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showStatsChange.rawValue != 0 {
328+
statsView.isHidden = !UserDefaultsRepository.showStats.value
329+
}
330+
331+
// settings for useIFCC changed
332+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.useIFCCChange.rawValue != 0 {
333+
updateStats()
334+
}
335+
336+
// settings for showSmallGraph changed
337+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showSmallGraphChange.rawValue != 0 {
338+
BGChartFull.isHidden = !UserDefaultsRepository.showSmallGraph.value
339+
}
340+
341+
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showDisplayNameChange.rawValue != 0 {
342+
self.updateServerText()
343+
}
344+
345+
// reset the app state
346+
appState.generalSettingsChanged = false
347+
appState.generalSettingsChanges = 0
334348
}
335-
336-
// settings for showSmallGraph changed
337-
if appState.generalSettingsChanges & GeneralSettingsChangeEnum.showSmallGraphChange.rawValue != 0 {
338-
BGChartFull.isHidden = !UserDefaultsRepository.showSmallGraph.value
349+
if appState.infoDataSettingsChanged {
350+
createDerivedData()
351+
self.infoTable.reloadData()
352+
353+
// reset
354+
appState.infoDataSettingsChanged = false
339355
}
340-
341-
// reset the app state
342-
appState.generalSettingsChanged = false
343-
appState.generalSettingsChanges = 0
344-
}
345-
if appState.infoDataSettingsChanged {
346-
createDerivedData()
347-
self.infoTable.reloadData()
348-
349-
// reset
350-
appState.infoDataSettingsChanged = false
351-
}
352-
353-
// add more processing of the app state
356+
357+
// add more processing of the app state
354358
}
355359
}
356360

LoopFollow/repository/UserDefaults.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ class UserDefaultsRepository {
7575
static let useIFCC = UserDefaultsValue<Bool>(key: "useIFCC", default: false)
7676
static let showSmallGraph = UserDefaultsValue<Bool>(key: "showSmallGraph", default: true)
7777
static let speakBG = UserDefaultsValue<Bool>(key: "speakBG", default: false)
78+
static let showDisplayName = UserDefaultsValue<Bool>(key: "showDisplayName", default: false)
7879
static let backgroundRefreshFrequency = UserDefaultsValue<Double>(key: "backgroundRefreshFrequency", default: 1)
7980
static let backgroundRefresh = UserDefaultsValue<Bool>(key: "backgroundRefresh", default: true)
8081
static let appBadge = UserDefaultsValue<Bool>(key: "appBadge", default: true)

0 commit comments

Comments
 (0)