Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.

Commit

Permalink
Added in the settings for taking the heart rate over an average amoun…
Browse files Browse the repository at this point in the history
…t of time. Need to implement the functionality
  • Loading branch information
david-mcqueen committed Sep 21, 2015
1 parent e284f90 commit 965366c
Show file tree
Hide file tree
Showing 8 changed files with 132 additions and 37 deletions.
93 changes: 82 additions & 11 deletions Heart Rate Monitor - Audio/Base.lproj/Pulser.storyboard

Large diffs are not rendered by default.

13 changes: 12 additions & 1 deletion Heart Rate Monitor - Audio/Classes/UserSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ class UserSettings {
var HealthkitIntervalMinutes: Double;
var UserZones: [Zone];
var CurrentZone: HeartRateZone;
var AverageBPM: Bool;
var AverageBPMInterval: Double;

init(){
//Default user settings
Expand All @@ -27,6 +29,8 @@ class UserSettings {
HealthkitIntervalMinutes = 1.0;
UserZones = [];
CurrentZone = HeartRateZone.Rest;
AverageBPM = false;
AverageBPMInterval = 10.0;
}

func shouldAnnounceAudio()->Bool{
Expand All @@ -42,11 +46,14 @@ class UserSettings {
return convertDoubleToFloat(self.HealthkitIntervalMinutes);
}

func getAverageBPMIntervalasFloat()-> Float{
return convertDoubleToFloat(self.AverageBPMInterval);
}

private func convertDoubleToFloat(input: Double)->Float{
return Float(input);
}


func getAudioIntervalSeconds()->Double{
return convertMinuteToSeconds(self.AudioIntervalMinutes)
}
Expand All @@ -55,6 +62,10 @@ class UserSettings {
return convertMinuteToSeconds(self.HealthkitIntervalMinutes)
}

func getAverageBPMIntervalSeconds()->Double{
return self.AverageBPMInterval;
}

func allZonesToString()->String{
var zonesAsString: String = "";

Expand Down
2 changes: 2 additions & 0 deletions Heart Rate Monitor - Audio/Enums/UserDefaultKeys.swift
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ enum UserDefaultKeys: String{
case AudioInterval = "SettingsAudioInterval";
case HealthKitInterval = "SettingsHealthkitInterval";
case SaveAudioZoneChange = "SettingsAnnounceAudioZones";
case SaveAverageBPM = "SettingsSaveAverageBPM";
case AverageBPM = "SettingsAverageBPMInterval";

case ZoneRest = "SettingsZoneRest";
case ZoneOne = "SettingsZoneOne";
Expand Down
21 changes: 21 additions & 0 deletions Heart Rate Monitor - Audio/SettingsViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,10 @@ class SettingsViewController: UITableViewController, UITableViewDelegate {
@IBOutlet weak var healthkitSlider: UISlider!
@IBOutlet weak var healthkitMinutes: UILabel!

@IBOutlet weak var averageBPMSwitch: UISwitch!
@IBOutlet weak var averageBPMSlider: UISlider!
@IBOutlet weak var averageBPMSeconds: UILabel!

weak var delegate: UserSettingsDelegate?;

var setUserSettings: UserSettings?;
Expand Down Expand Up @@ -51,15 +55,22 @@ class SettingsViewController: UITableViewController, UITableViewDelegate {
var healthkitSave = setUserSettings?.SaveHealthkit;
var audioInterval = setUserSettings?.getAudioIntervalasFloat();
var healthkitInterval = setUserSettings?.getHealthkitIntervalasFloat();
var averageBPMSecondsActual = setUserSettings?.getAverageBPMIntervalasFloat();
var averageBPM = setUserSettings?.AverageBPM;

audioAnnouncementSwitch.on = audioAnnounce!;
audioAnnouncementZoneSwitch.on = audioAnnounceZones!;
healthkitSwitch.on = healthkitSave!;
averageBPMSwitch.on = averageBPM!;

averageBPMSlider.value = averageBPMSecondsActual!;
audioSlider.value = audioInterval!;
healthkitSlider.value = healthkitInterval!;


populateSliderFields(audioSlider, _text: audioMinutes);
populateSliderFields(healthkitSlider, _text: healthkitMinutes);
populateSliderFields(averageBPMSlider, _text: averageBPMSeconds);

}

Expand All @@ -76,6 +87,14 @@ class SettingsViewController: UITableViewController, UITableViewDelegate {
populateSliderFields(self.healthkitSlider, _text: self.healthkitMinutes);
setUserSettings?.HealthkitIntervalMinutes = Double(self.healthkitSlider.value);
}
@IBAction func averageBPMSliderChanged(sender: AnyObject) {
populateSliderFields(self.averageBPMSlider, _text: self.averageBPMSeconds)
setUserSettings?.AverageBPMInterval = Double(self.averageBPMSlider.value);

}
@IBAction func averageBPMSwitchChanged(sender: AnyObject) {
setUserSettings?.AverageBPM = averageBPMSwitch.on;
}

@IBAction func audioSwitchChanged(sender: AnyObject) {
setUserSettings?.AnnounceAudio = audioAnnouncementSwitch.on;
Expand Down Expand Up @@ -167,6 +186,8 @@ class SettingsViewController: UITableViewController, UITableViewDelegate {
return 1
}
case 3:
return (averageBPMSwitch.on ? 2 : 1);
case 4:
return 2;
default:
return 1;
Expand Down
11 changes: 10 additions & 1 deletion Heart Rate Monitor - Audio/Utilities.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ func writeBPM(BPMInput: Double){
NSLog("BPM was saved OK");
})
}else{
NSLog("Failed to save Weight. Error: \(error)");
NSLog("Failed to save BPM. Error: \(error)");
}
})

Expand All @@ -70,6 +70,8 @@ func saveUserSettings(newUserSettings: UserSettings){
NSUserDefaults.standardUserDefaults().setObject(newUserSettings.SaveHealthkit, forKey: UserDefaultKeys.SaveHealthKit.rawValue);
NSUserDefaults.standardUserDefaults().setObject(newUserSettings.getAudioIntervalasFloat(), forKey: UserDefaultKeys.AudioInterval.rawValue);
NSUserDefaults.standardUserDefaults().setObject(newUserSettings.getHealthkitIntervalasFloat(), forKey: UserDefaultKeys.HealthKitInterval.rawValue);
NSUserDefaults.standardUserDefaults().setObject(newUserSettings.AverageBPM, forKey: UserDefaultKeys.SaveAverageBPM.rawValue);
NSUserDefaults.standardUserDefaults().setObject(newUserSettings.getAverageBPMIntervalasFloat(), forKey: UserDefaultKeys.AverageBPM.rawValue)
NSUserDefaults.standardUserDefaults().synchronize();
saveUserZones(newUserSettings);
}
Expand Down Expand Up @@ -102,6 +104,13 @@ func loadUserSettings()->UserSettings{
if let savedValue: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey(UserDefaultKeys.HealthKitInterval.rawValue) {
savedUser.HealthkitIntervalMinutes = savedValue as! Double;
}
if let savedValue: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey(UserDefaultKeys.SaveAverageBPM.rawValue) {
savedUser.AverageBPM = savedValue as! Bool;
}
if let savedValue: AnyObject = NSUserDefaults.standardUserDefaults().objectForKey(UserDefaultKeys.AverageBPM.rawValue) {
savedUser.AverageBPMInterval = savedValue as! Double;
}


savedUser.UserZones = loadUserZones().UserZones;

Expand Down
10 changes: 2 additions & 8 deletions Pulser.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,11 @@
55E979811AC57D4700E19DBF /* Utilities.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Utilities.swift; sourceTree = "<group>"; };
55E979831AC57D7600E19DBF /* UserHeartRate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserHeartRate.swift; sourceTree = "<group>"; };
55E979851AC57E4700E19DBF /* Zone.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Zone.swift; sourceTree = "<group>"; };
79A34DC31B409B6200C93722 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Pulser.strings; sourceTree = "<group>"; };
79A34DC41B409B6200C93722 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
79A34DC61B409BDF00C93722 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Pulser.strings; sourceTree = "<group>"; };
79A34DC71B409BF000C93722 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Pulser.strings; sourceTree = "<group>"; };
79A34DC81B409BF000C93722 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
79A34DCA1B409BFA00C93722 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/LaunchScreen.strings; sourceTree = "<group>"; };
79A34DCE1B409C4B00C93722 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = "<group>"; };
79A34DD01B409C4D00C93722 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
79A34DD11B409C4E00C93722 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
79A34DD21B409C5100C93722 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
/* End PBXFileReference section */

Expand Down Expand Up @@ -492,9 +488,7 @@
isa = PBXVariantGroup;
children = (
5597BE471A681A0800A59921 /* Base */,
79A34DC31B409B6200C93722 /* fr */,
79A34DC61B409BDF00C93722 /* en */,
79A34DC71B409BF000C93722 /* de */,
);
name = Pulser.storyboard;
sourceTree = "<group>";
Expand All @@ -514,8 +508,6 @@
isa = PBXVariantGroup;
children = (
79A34DCE1B409C4B00C93722 /* en */,
79A34DD01B409C4D00C93722 /* fr */,
79A34DD11B409C4E00C93722 /* de */,
79A34DD21B409C5100C93722 /* Base */,
);
name = Localizable.strings;
Expand Down Expand Up @@ -665,6 +657,7 @@
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(PROJECT_DIR)",
);
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
Expand All @@ -685,6 +678,7 @@
FRAMEWORK_SEARCH_PATHS = (
"$(SDKROOT)/Developer/Library/Frameworks",
"$(inherited)",
"$(PROJECT_DIR)",
);
INFOPLIST_FILE = "Heart Rate Monitor - AudioTests/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,42 +11,30 @@
<key>IDESourceControlProjectOriginsDictionary</key>
<dict>
<key>3810A386E5FEC0296224D592FAFE69EED1B91AEC</key>
<string>https://github.com/david-mcqueen/Heart-Rate-Monitor.git</string>
<key>89DEA3F5F9568CF75855BA588A653ED890DBDD26</key>
<string>https://github.com/david-mcqueen/Swift.git</string>
<string>https://github.com/david-mcqueen/Pulser.git</string>
</dict>
<key>IDESourceControlProjectPath</key>
<string>Pulser.xcodeproj</string>
<key>IDESourceControlProjectRelativeInstallPathDictionary</key>
<dict>
<key>3810A386E5FEC0296224D592FAFE69EED1B91AEC</key>
<string>../..</string>
<key>89DEA3F5F9568CF75855BA588A653ED890DBDD26</key>
<string>../../..</string>
</dict>
<key>IDESourceControlProjectURL</key>
<string>https://github.com/david-mcqueen/Heart-Rate-Monitor.git</string>
<string>https://github.com/david-mcqueen/Pulser.git</string>
<key>IDESourceControlProjectVersion</key>
<integer>111</integer>
<key>IDESourceControlProjectWCCIdentifier</key>
<string>3810A386E5FEC0296224D592FAFE69EED1B91AEC</string>
<key>IDESourceControlProjectWCConfigurations</key>
<array>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>89DEA3F5F9568CF75855BA588A653ED890DBDD26</string>
<key>IDESourceControlWCCName</key>
<string></string>
</dict>
<dict>
<key>IDESourceControlRepositoryExtensionIdentifierKey</key>
<string>public.vcs.git</string>
<key>IDESourceControlWCCIdentifierKey</key>
<string>3810A386E5FEC0296224D592FAFE69EED1B91AEC</string>
<key>IDESourceControlWCCName</key>
<string>Heart%20Rate%20Monitor%20-%20Audio</string>
<string>Pulser</string>
</dict>
</array>
</dict>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES"
language = "en"
region = "GB">
<BuildableProductRunnable
runnableDebuggingMode = "0">
Expand Down

0 comments on commit 965366c

Please sign in to comment.