|
|
@@ -14,12 +14,34 @@ import EventKitUI
|
|
|
class SettingsViewController: FormViewController {
|
|
|
|
|
|
var appStateController: AppStateController?
|
|
|
+
|
|
|
+ func showHideNSDetails() {
|
|
|
+ var isHidden = false
|
|
|
+ var isEnabled = true
|
|
|
+ if UserDefaultsRepository.url.value == "" {
|
|
|
+ isHidden = true
|
|
|
+ isEnabled = false
|
|
|
+ }
|
|
|
+
|
|
|
+ if let row1 = form.rowBy(tag: "informationDisplaySettings") as? ButtonRow {
|
|
|
+ row1.hidden = .function(["hide"], {form in
|
|
|
+ return isHidden
|
|
|
+ })
|
|
|
+ row1.evaluateHidden()
|
|
|
+ }
|
|
|
+
|
|
|
+ guard let nightscoutTab = self.tabBarController?.tabBar.items![3] else { return }
|
|
|
+ nightscoutTab.isEnabled = isEnabled
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
override func viewDidLoad() {
|
|
|
super.viewDidLoad()
|
|
|
if UserDefaultsRepository.forceDarkMode.value {
|
|
|
overrideUserInterfaceStyle = .dark
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
|
|
|
form
|
|
|
+++ Section(header: "Nightscout Settings", footer: "Changing Nightscout settings requires an app restart.")
|
|
|
@@ -32,6 +54,7 @@ class SettingsViewController: FormViewController {
|
|
|
}.onChange { row in
|
|
|
guard let value = row.value else {
|
|
|
UserDefaultsRepository.url.value = ""
|
|
|
+ self.showHideNSDetails()
|
|
|
return }
|
|
|
// check the format of the URL entered by the user and trim away any spaces or "/" at the end
|
|
|
var urlNSInput = value.replacingOccurrences(of: "\\s+$", with: "", options: .regularExpression)
|
|
|
@@ -41,7 +64,8 @@ class SettingsViewController: FormViewController {
|
|
|
UserDefaultsRepository.url.value = urlNSInput.lowercased()
|
|
|
// set the row value back to the correctly formatted URL so that the user immediately sees how it should have been written
|
|
|
row.value = UserDefaultsRepository.url.value
|
|
|
- }
|
|
|
+ self.showHideNSDetails()
|
|
|
+ }
|
|
|
<<< TextRow(){ row in
|
|
|
row.title = "NS Token"
|
|
|
row.placeholder = "Leave blank if not using tokens"
|
|
|
@@ -109,7 +133,7 @@ class SettingsViewController: FormViewController {
|
|
|
}
|
|
|
), onDismiss: nil)
|
|
|
}
|
|
|
- <<< ButtonRow() {
|
|
|
+ <<< ButtonRow("graphSettings") {
|
|
|
$0.title = "Graph Settings"
|
|
|
$0.presentationMode = .show(
|
|
|
controllerProvider: .callback(builder: {
|
|
|
@@ -119,7 +143,7 @@ class SettingsViewController: FormViewController {
|
|
|
}
|
|
|
), onDismiss: nil)
|
|
|
}
|
|
|
- <<< ButtonRow() {
|
|
|
+ <<< ButtonRow("informationDisplaySettings") {
|
|
|
$0.title = "Information Display Settings"
|
|
|
$0.presentationMode = .show(
|
|
|
controllerProvider: .callback(builder: {
|
|
|
@@ -131,9 +155,9 @@ class SettingsViewController: FormViewController {
|
|
|
|
|
|
}
|
|
|
|
|
|
- +++ Section("Watch App Settings")
|
|
|
+ +++ Section("Integrations")
|
|
|
<<< ButtonRow() {
|
|
|
- $0.title = "Configure Watch App"
|
|
|
+ $0.title = "Apple Watch and Carplay"
|
|
|
$0.presentationMode = .show(
|
|
|
controllerProvider: .callback(builder: {
|
|
|
let controller = WatchSettingsViewController()
|
|
|
@@ -156,6 +180,10 @@ class SettingsViewController: FormViewController {
|
|
|
), onDismiss: nil)
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ showHideNSDetails()
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
}
|