Explorar o código

Sub views for settings

Jose Paredes %!s(int64=6) %!d(string=hai) anos
pai
achega
e78cb4ef69

+ 16 - 0
LoopFollow.xcodeproj/project.pbxproj

@@ -11,6 +11,10 @@
 		DD152D3B24C01B2300361FA2 /* InfoDisplaySettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD152D3A24C01B2300361FA2 /* InfoDisplaySettingsViewController.swift */; };
 		DD98F54424BCEFEE0007425A /* ShareClientExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD98F54324BCEFEE0007425A /* ShareClientExtension.swift */; };
 		DDCF979424C0D380002C9752 /* UIViewExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979324C0D380002C9752 /* UIViewExtension.swift */; };
+		DDCF979624C1443C002C9752 /* GeneralSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979524C1443C002C9752 /* GeneralSettingsViewController.swift */; };
+		DDCF979824C1489C002C9752 /* GraphSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979724C1489C002C9752 /* GraphSettingsViewController.swift */; };
+		DDCF979A24C14DB4002C9752 /* WatchSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */; };
+		DDCF979C24C14EFB002C9752 /* DebugSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDCF979B24C14EFB002C9752 /* DebugSettingsViewController.swift */; };
 		FC16A97A24996673003D6245 /* NightScout.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC16A97924996673003D6245 /* NightScout.swift */; };
 		FC16A97B249966A3003D6245 /* AlarmSound.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC7CE589248ABEA3001F83B8 /* AlarmSound.swift */; };
 		FC16A97D24996747003D6245 /* Alarms.swift in Sources */ = {isa = PBXBuildFile; fileRef = FC16A97C24996747003D6245 /* Alarms.swift */; };
@@ -168,6 +172,10 @@
 		DD152D3A24C01B2300361FA2 /* InfoDisplaySettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoDisplaySettingsViewController.swift; sourceTree = "<group>"; };
 		DD98F54324BCEFEE0007425A /* ShareClientExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShareClientExtension.swift; sourceTree = "<group>"; };
 		DDCF979324C0D380002C9752 /* UIViewExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIViewExtension.swift; sourceTree = "<group>"; };
+		DDCF979524C1443C002C9752 /* GeneralSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GeneralSettingsViewController.swift; sourceTree = "<group>"; };
+		DDCF979724C1489C002C9752 /* GraphSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GraphSettingsViewController.swift; sourceTree = "<group>"; };
+		DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchSettingsViewController.swift; sourceTree = "<group>"; };
+		DDCF979B24C14EFB002C9752 /* DebugSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugSettingsViewController.swift; sourceTree = "<group>"; };
 		ECA3EFB4037410B4973BB632 /* Pods-LoopFollow.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LoopFollow.debug.xcconfig"; path = "Target Support Files/Pods-LoopFollow/Pods-LoopFollow.debug.xcconfig"; sourceTree = "<group>"; };
 		FC16A97924996673003D6245 /* NightScout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NightScout.swift; sourceTree = "<group>"; };
 		FC16A97C24996747003D6245 /* Alarms.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Alarms.swift; sourceTree = "<group>"; };
@@ -595,6 +603,10 @@
 				FCC6884F248935D800A0279D /* AlarmViewController.swift */,
 				FC7CE59E248D8D23001F83B8 /* SnoozeViewController.swift */,
 				DD152D3A24C01B2300361FA2 /* InfoDisplaySettingsViewController.swift */,
+				DDCF979524C1443C002C9752 /* GeneralSettingsViewController.swift */,
+				DDCF979724C1489C002C9752 /* GraphSettingsViewController.swift */,
+				DDCF979924C14DB4002C9752 /* WatchSettingsViewController.swift */,
+				DDCF979B24C14EFB002C9752 /* DebugSettingsViewController.swift */,
 			);
 			path = ViewControllers;
 			sourceTree = "<group>";
@@ -842,6 +854,7 @@
 				FC7CE59F248D8D23001F83B8 /* SnoozeViewController.swift in Sources */,
 				FCC6886724898F8000A0279D /* UserDefaultsValue.swift in Sources */,
 				FC97881E2485969B00A7906C /* NightScoutViewController.swift in Sources */,
+				DDCF979824C1489C002C9752 /* GraphSettingsViewController.swift in Sources */,
 				FC3AE7B5249E8E0E00AAE1E0 /* LoopFollow.xcdatamodeld in Sources */,
 				FCC6886F2489A53800A0279D /* AppConstants.swift in Sources */,
 				FC16A97A24996673003D6245 /* NightScout.swift in Sources */,
@@ -856,7 +869,9 @@
 				FCC6886524898EEE00A0279D /* UserDefaults.swift in Sources */,
 				FC16A97F249969E2003D6245 /* Graphs.swift in Sources */,
 				DD152D3B24C01B2300361FA2 /* InfoDisplaySettingsViewController.swift in Sources */,
+				DDCF979C24C14EFB002C9752 /* DebugSettingsViewController.swift in Sources */,
 				FC97881C2485969B00A7906C /* MainViewController.swift in Sources */,
+				DDCF979624C1443C002C9752 /* GeneralSettingsViewController.swift in Sources */,
 				FCC0FAC224922A22003E610E /* DictionaryKeyPath.swift in Sources */,
 				FC9788182485969B00A7906C /* AppDelegate.swift in Sources */,
 				FCC6886B24898FD800A0279D /* ObservationToken.swift in Sources */,
@@ -867,6 +882,7 @@
 				FC1BDD2B24A22650001B652C /* Stats.swift in Sources */,
 				FC1BDD2D24A23204001B652C /* StatsView.swift in Sources */,
 				FCE537BC249A4D7D00F80BF8 /* carbBolusArrays.swift in Sources */,
+				DDCF979A24C14DB4002C9752 /* WatchSettingsViewController.swift in Sources */,
 				FC16A98124996C07003D6245 /* DateTime.swift in Sources */,
 				FC3CAB022493B6220068A152 /* BackgroundTaskAudio.swift in Sources */,
 			);

+ 6 - 5
LoopFollow/Controllers/Graphs.swift

@@ -10,10 +10,9 @@ import Foundation
 import Charts
 import UIKit
 
-
+let ScaleXMax:Float = 150.0
 extension MainViewController {
     
-
     func chartValueSelected(_ chartView: ChartViewBase, entry: ChartDataEntry, highlight: Highlight) {
         if chartView == BGChartFull {
             BGChart.moveViewToX(entry.x)
@@ -33,8 +32,8 @@ extension MainViewController {
       
         // dont store huge values
         var scale: Float = Float(BGChart.scaleX)
-        if(scale > 18.0 ) {
-            scale = 18.0
+        if(scale > ScaleXMax ) {
+            scale = ScaleXMax
         }
         UserDefaultsRepository.chartScaleX.value = Float(scale)
     }
@@ -269,7 +268,7 @@ extension MainViewController {
         ul.limit = Double(UserDefaultsRepository.highLine.value)
         ul.lineColor = NSUIColor.systemYellow.withAlphaComponent(0.5)
         BGChart.rightAxis.addLimitLine(ul)
-        
+    
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()
@@ -328,6 +327,8 @@ extension MainViewController {
         
         BGChart.rightAxis.axisMaximum = Double(maxBG)
        
+        BGChart.setVisibleXRangeMinimum(600)
+       
         BGChart.data?.dataSets[dataIndex].notifyDataSetChanged()
         BGChart.data?.notifyDataChanged()
         BGChart.notifyDataSetChanged()

+ 110 - 0
LoopFollow/ViewControllers/DebugSettingsViewController.swift

@@ -0,0 +1,110 @@
+//
+//  DebugSettingsViewController.swift
+//  LoopFollow
+//
+//  Created by Jose Paredes on 7/16/20.
+//  Copyright © 2020 Jon Fawcett. All rights reserved.
+//
+
+import Foundation
+import Eureka
+import EventKit
+import EventKitUI
+
+class DebugSettingsViewController: FormViewController {
+   override func viewDidLoad()  {
+      super.viewDidLoad()
+      if UserDefaultsRepository.forceDarkMode.value {
+         overrideUserInterfaceStyle = .dark
+      }
+      buildDebugSettings()
+   }
+   private func buildDebugSettings() {
+        form
+            +++ Section("Debug Settings")
+
+        <<< SwitchRow("downloadBasal"){ row in
+            row.title = "Download Basal"
+            row.value = UserDefaultsRepository.downloadBasal.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.downloadBasal.value = value
+            }
+            <<< SwitchRow("graphBasal"){ row in
+            row.title = "Graph Basal"
+            row.value = UserDefaultsRepository.graphBasal.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.graphBasal.value = value
+            }
+            <<< SwitchRow("downloadBolus"){ row in
+                row.title = "Download Bolus"
+                row.value = UserDefaultsRepository.downloadBolus.value
+            }.onChange { [weak self] row in
+                        guard let value = row.value else { return }
+                        UserDefaultsRepository.downloadBolus.value = value
+                }
+           <<< SwitchRow("graphBolus"){ row in
+               row.title = "Graph Bolus"
+               row.value = UserDefaultsRepository.graphBolus.value
+           }.onChange { [weak self] row in
+                       guard let value = row.value else { return }
+                       UserDefaultsRepository.graphBolus.value = value
+               }
+            <<< SwitchRow("downloadCarbs"){ row in
+                row.title = "Download Carbs"
+                row.value = UserDefaultsRepository.downloadCarbs.value
+            }.onChange { [weak self] row in
+                        guard let value = row.value else { return }
+                        UserDefaultsRepository.downloadCarbs.value = value
+                }
+              <<< SwitchRow("graphCarbs"){ row in
+                  row.title = "Graph Carbs"
+                  row.value = UserDefaultsRepository.graphCarbs.value
+              }.onChange { [weak self] row in
+                          guard let value = row.value else { return }
+                          UserDefaultsRepository.graphCarbs.value = value
+                  }
+            
+        <<< SwitchRow("downloadPrediction"){ row in
+                 row.title = "Download Prediction"
+                 row.value = UserDefaultsRepository.downloadPrediction.value
+             }.onChange { [weak self] row in
+                         guard let value = row.value else { return }
+                         UserDefaultsRepository.downloadPrediction.value = value
+                 }
+        <<< SwitchRow("graphPrediction"){ row in
+            row.title = "Graph Prediction"
+            row.value = UserDefaultsRepository.graphPrediction.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.graphPrediction.value = value
+            }
+            <<< SwitchRow("debugLog"){ row in
+                row.title = "Show Debug Log"
+                row.value = UserDefaultsRepository.debugLog.value
+            }.onChange { [weak self] row in
+                        guard let value = row.value else { return }
+                        UserDefaultsRepository.debugLog.value = value
+                }
+        <<< StepperRow("viewRefreshDelay") { row in
+            row.title = "View Refresh Delay"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = 5
+            row.cell.stepper.maximumValue = 30
+            row.value = Double(UserDefaultsRepository.viewRefreshDelay.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return "\(Int(value))"
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.viewRefreshDelay.value = Double(value)
+        }
+        +++ ButtonRow() {
+          $0.title = "DONE"
+        }.onCellSelection { (row, arg)  in
+          self.dismiss(animated:true, completion: nil)
+        }
+    }
+}

+ 109 - 0
LoopFollow/ViewControllers/GeneralSettingsViewController.swift

@@ -0,0 +1,109 @@
+//
+//  GeneralSetingsViewController.swift
+//  LoopFollow
+//
+//  Created by Jose Paredes on 7/16/20.
+//  Copyright © 2020 Jon Fawcett. All rights reserved.
+//
+
+import Foundation
+import Eureka
+import EventKit
+import EventKitUI
+
+class GeneralSettingsViewController: FormViewController {
+   
+   override func viewDidLoad()  {
+      super.viewDidLoad()
+      if UserDefaultsRepository.forceDarkMode.value {
+         overrideUserInterfaceStyle = .dark
+      }
+      buildGeneralSettings()
+   }
+   
+   private func buildGeneralSettings() {
+      form
+        +++ Section("General Settings")
+        <<< SwitchRow("colorBGText") { row in
+        row.title = "Color Main BG Text"
+        row.value = UserDefaultsRepository.colorBGText.value
+        }.onChange { [weak self] row in
+            guard let value = row.value else { return }
+                UserDefaultsRepository.colorBGText.value = value
+            // Force main screen update
+            guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+            mainScreen.setBGTextColor()
+        }
+        <<< SwitchRow("forceDarkMode") { row in
+        row.title = "Force Dark Mode (Restart App)"
+        row.value = UserDefaultsRepository.forceDarkMode.value
+        }.onChange { [weak self] row in
+            guard let value = row.value else { return }
+                UserDefaultsRepository.forceDarkMode.value = value
+        }
+        <<< SwitchRow("persistentNotification") { row in
+        row.title = "Persistent Notification"
+        row.value = UserDefaultsRepository.persistentNotification.value
+        }.onChange { [weak self] row in
+            guard let value = row.value else { return }
+                UserDefaultsRepository.persistentNotification.value = value
+        }
+        <<< SwitchRow("screenlockSwitchState") { row in
+            row.title = "Keep Screen Active"
+            row.value = UserDefaultsRepository.screenlockSwitchState.value
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                
+                if value {
+                    UserDefaultsRepository.screenlockSwitchState.value = value
+                }
+            }
+        
+        <<< SwitchRow("backgroundRefresh"){ row in
+            row.title = "Background Refresh"
+            row.tag = "backgroundRefresh"
+            row.value = UserDefaultsRepository.backgroundRefresh.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.backgroundRefresh.value = value
+            }
+        <<< StepperRow("backgroundRefreshFrequency") { row in
+            row.title = "Refresh Minutes"
+            row.tag = "backgroundRefreshFrequency"
+            row.cell.stepper.stepValue = 0.25
+            row.cell.stepper.minimumValue = 0.25
+            row.cell.stepper.maximumValue = 10
+            row.value = Double(UserDefaultsRepository.backgroundRefreshFrequency.value)
+            row.hidden = "$backgroundRefresh == false"
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.backgroundRefreshFrequency.value = value
+        }
+            
+        <<< SwitchRow("appBadge"){ row in
+            row.title = "Display App Badge"
+            row.tag = "appBadge"
+            row.value = UserDefaultsRepository.appBadge.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.appBadge.value = value
+                    // Force main screen update
+                    guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+                    mainScreen.nightscoutLoader(forceLoad: true)
+        }
+        <<< SwitchRow("speakBG"){ row in
+            row.title = "Speak BG"
+            row.value = UserDefaultsRepository.speakBG.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.speakBG.value = value
+        }
+        
+        +++ ButtonRow() {
+          $0.title = "DONE"
+       }.onCellSelection { (row, arg)  in
+          self.dismiss(animated:true, completion: nil)
+       }
+    }
+   
+}

+ 161 - 0
LoopFollow/ViewControllers/GraphSettingsViewController.swift

@@ -0,0 +1,161 @@
+//
+//  GraphSettingsViewController.swift
+//  LoopFollow
+//
+//  Created by Jose Paredes on 7/16/20.
+//  Copyright © 2020 Jon Fawcett. All rights reserved.
+//
+
+import Foundation
+import Eureka
+import EventKit
+import EventKitUI
+
+class GraphSettingsViewController: FormViewController {
+   override func viewDidLoad()  {
+      super.viewDidLoad()
+      if UserDefaultsRepository.forceDarkMode.value {
+         overrideUserInterfaceStyle = .dark
+      }
+      buildGraphSettings()
+   }
+    private func buildGraphSettings() {
+        form
+            +++ Section("Graph Settings")
+            
+        <<< SwitchRow("switchRowDots"){ row in
+            row.title = "Display Dots"
+            row.value = UserDefaultsRepository.showDots.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.showDots.value = value
+                // Force main screen update
+                guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+                mainScreen.updateBGGraphSettings()
+            }
+        <<< SwitchRow("switchRowLines"){ row in
+            row.title = "Display Lines"
+            row.value = UserDefaultsRepository.showLines.value
+        }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.showLines.value = value
+            // Force main screen update
+            guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+            mainScreen.updateBGGraphSettings()
+                    
+        }
+            <<< SwitchRow("offsetCarbsBolus"){ row in
+                row.title = "Offset Carb/Bolus Dots"
+                row.value = UserDefaultsRepository.offsetCarbsBolus.value
+            }.onChange { [weak self] row in
+                        guard let value = row.value else { return }
+                        UserDefaultsRepository.offsetCarbsBolus.value = value
+                        
+            }
+            <<< StepperRow("predictionToLoad") { row in
+                row.title = "Hours of Prediction"
+                row.cell.stepper.stepValue = 0.25
+                row.cell.stepper.minimumValue = 0.0
+                row.cell.stepper.maximumValue = 6.0
+                row.value = Double(UserDefaultsRepository.predictionToLoad.value)
+            }.onChange { [weak self] row in
+                    guard let value = row.value else { return }
+                    UserDefaultsRepository.predictionToLoad.value = value
+            }
+        <<< StepperRow("minBGScale") { row in
+            row.title = "Min BG Scale"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = Double(UserDefaultsRepository.highLine.value)
+            row.cell.stepper.maximumValue = 400
+            row.value = Double(UserDefaultsRepository.minBGScale.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return bgUnits.toDisplayUnits(String(value))
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.minBGScale.value = Float(value)
+            }
+            <<< StepperRow("minBGValue") { row in
+                row.title = "Min BG Display"
+                row.cell.stepper.stepValue = 1
+                row.cell.stepper.minimumValue = -40
+                row.cell.stepper.maximumValue = 40
+                row.value = Double(UserDefaultsRepository.minBGValue.value)
+                row.displayValueFor = { value in
+                    guard let value = value else { return nil }
+                    return bgUnits.toDisplayUnits(String(value))
+                }
+            }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.minBGValue.value = Float(value)
+                // Force main screen update
+                guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+                mainScreen.updateBGGraphSettings()
+            }
+        <<< StepperRow("minBasalScale") { row in
+            row.title = "Min Basal Scale"
+            row.cell.stepper.stepValue = 0.5
+            row.cell.stepper.minimumValue = 0.5
+            row.cell.stepper.maximumValue = 20
+            row.value = Double(UserDefaultsRepository.minBasalScale.value)
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.minBasalScale.value = value
+        }
+        <<< StepperRow("lowLine") { row in
+            row.title = "Low BG Display Value"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = 40
+            row.cell.stepper.maximumValue = 120
+            row.value = Double(UserDefaultsRepository.lowLine.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return bgUnits.toDisplayUnits(String(value))
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.lowLine.value = Float(value)
+            // Force main screen update
+            guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+            mainScreen.updateBGGraphSettings()
+        }
+        <<< StepperRow("highLine") { row in
+            row.title = "High BG Display Value"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = 120
+            row.cell.stepper.maximumValue = 400
+            row.value = Double(UserDefaultsRepository.highLine.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return bgUnits.toDisplayUnits(String(value))
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.highLine.value = Float(value)
+            // Force main screen update
+            guard let mainScreen = self?.tabBarController!.viewControllers?[0] as? MainViewController else { return }
+            mainScreen.updateBGGraphSettings()
+        }
+        <<< StepperRow("overrideDisplayLocation") { row in
+            row.title = "Override BG Location"
+            row.cell.stepper.stepValue = 1
+            row.cell.stepper.minimumValue = Double(UserDefaultsRepository.minBGValue.value)
+            row.cell.stepper.maximumValue = Double(UserDefaultsRepository.minBGScale.value)
+            row.value = Double(UserDefaultsRepository.overrideDisplayLocation.value)
+            row.displayValueFor = { value in
+                guard let value = value else { return nil }
+                return bgUnits.toDisplayUnits(String(value))
+            }
+        }.onChange { [weak self] row in
+                guard let value = row.value else { return }
+                UserDefaultsRepository.overrideDisplayLocation.value = Float(value)
+            }
+            
+       +++ ButtonRow() {
+          $0.title = "DONE"
+       }.onCellSelection { (row, arg)  in
+          self.dismiss(animated:true, completion: nil)
+       }
+    }
+}

+ 2 - 2
LoopFollow/ViewControllers/InfoDisplaySettingsViewController.swift

@@ -55,9 +55,9 @@ class InfoDisplaySettingsViewController: FormViewController {
         createForm()
     }
     
-    func createForm() {
+    private func createForm() {
         form
-        +++ MultivaluedSection(multivaluedOptions: .Reorder, header: "Display Configuration", footer: "Arrage/Enable Information Desired") {
+        +++ MultivaluedSection(multivaluedOptions: .Reorder, header: "Information Display Settings", footer: "Arrage/Enable Information Desired") {
         
            // TODO: add the other display values
            $0.tag = "InfoDisplay"

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 42 - 404
LoopFollow/ViewControllers/SettingsViewController.swift


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 93 - 0
LoopFollow/ViewControllers/WatchSettingsViewController.swift