Skip to content

Commit

Permalink
3.0.0 New heart rate chart in summary screen following Garmin nice la…
Browse files Browse the repository at this point in the history
…yout from latest devices. Increased font size for session selection and meditate session. Also removed unsed code.
  • Loading branch information
dliedke committed Aug 17, 2022
1 parent 29bbc58 commit c7cb4b0
Show file tree
Hide file tree
Showing 29 changed files with 242 additions and 266 deletions.
41 changes: 34 additions & 7 deletions HrvAlgorithms/sources/activity/HrActivity.mc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ using Toybox.Sensor;
module HrvAlgorithms {
class HrActivity {
function initialize(fitSessionSpec) {
//DEBUG
//PopulateFakeHRHistory();

me.mFitSession = ActivityRecording.createSession(fitSessionSpec);
me.createMinHrDataField();
me.onBeforeStart(me.mFitSession);
Expand Down Expand Up @@ -75,20 +78,41 @@ module HrvAlgorithms {
private const MinHrFieldId = 0;
private var mMinHrField;
private var mMinHr;

private var mHRHistory = [];

//DEBUG - start - test the heart rate chart instantaneously for X minutes
// also change min/max HR fixed in class HeartRateGraphView and
// call this method in initialize() of this class
/*var numMinutes = 10;
var mHRHistory1Min = [55,55,55,55,56,56,56,56,56,58,58,58,62,62,62,65,65,65,65,70,70,70,70,72,72,72,72,73,73,73,73,74,74,76,76,76,76,78,78,78,78,120,130,125,123,110,100,90,78,77,77,74,74,72,72,67,67,67,67,67];
private function PopulateFakeHRHistory() {
for (var f=1;f<=numMinutes;f++) {
for (var i=0;i<mHRHistory1Min.size();i++)
{
mHRHistory.add(mHRHistory1Min[i]);
}
}
}*/
//DEBUG - end

function refreshActivityStats() {
//if (me.mFitSession.isRecording() == false) {
// return;
//}

var activityInfo = Activity.getActivityInfo();
if (activityInfo == null) {
return;
}

if (activityInfo.currentHeartRate != null && (me.mMinHr == null || me.mMinHr > activityInfo.currentHeartRate)) {
me.mMinHr = activityInfo.currentHeartRate;
}
if (me.mFitSession.isRecording()) {

if (activityInfo.currentHeartRate != null && (me.mMinHr == null || me.mMinHr > activityInfo.currentHeartRate)) {
me.mMinHr = activityInfo.currentHeartRate;
}

mHRHistory.add(activityInfo.currentHeartRate);
}

me.onRefreshHrActivityStats(activityInfo, me.mMinHr);
}

Expand All @@ -106,6 +130,9 @@ module HrvAlgorithms {
summary.averageHr = activityInfo.averageHeartRate;
summary.minHr = me.mMinHr;
summary.elapsedTimeSeconds = activityInfo.elapsedTime / 1000;

summary.hrHistory = me.mHRHistory;

return summary;
}

Expand Down
1 change: 1 addition & 0 deletions HrvAlgorithms/sources/activity/HrSummary.mc
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ module HrvAlgorithms {
var averageHr;
var minHr;
var elapsedTimeSeconds;
var hrHistory;
}
}
2 changes: 1 addition & 1 deletion Meditate/manifest.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<!-- This is a generated file. It is highly recommended that you DO NOT edit this file. -->
<iq:manifest xmlns:iq="http://www.garmin.com/xml/connectiq" version="3">
<iq:application entry="MeditateApp" id="57843a03841b4410aff4e4c427c42caf" launcherIcon="@Drawables.launcherIcon" minSdkVersion="1.4.0" name="@Strings.AppName" type="watch-app" version="2.8.0">
<iq:application entry="MeditateApp" id="57843a03841b4410aff4e4c427c42caf" launcherIcon="@Drawables.launcherIcon" minSdkVersion="1.4.0" name="@Strings.AppName" type="watch-app" version="3.0.0">
<iq:products>
<iq:product id="fr235"/>
</iq:products>
Expand Down
2 changes: 1 addition & 1 deletion Meditate/resources/constants.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<property id="summaryHrvValueXPos" type="number">70</property>
<property id="summaryLinesYOffset" type="number">10</property>
<property id="meditateActivityIconsXPos" type="number">86</property>
<property id="meditateActivityIconsYOffset" type="number">5</property>
<property id="meditateActivityIconsYOffset" type="number">-10</property>
<property id="meditateActivityXHrvTextOffset" type="number">20</property>
<property id="detailsModelLineHeight" type="number">27</property>
<property id="detailsModelIconHeight" type="number">32</property>
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions Meditate/resources/menus/intervalAlerts/intervalTypeMenu.xml

This file was deleted.

This file was deleted.

4 changes: 0 additions & 4 deletions Meditate/resources/menus/session/activityTypeMenu.xml

This file was deleted.

8 changes: 0 additions & 8 deletions Meditate/resources/menus/session/addEditSessionMenu.xml

This file was deleted.

5 changes: 0 additions & 5 deletions Meditate/resources/menus/session/hrvTrackingMenu.xml

This file was deleted.

6 changes: 0 additions & 6 deletions Meditate/resources/menus/session/sessionSettingsMenu.xml

This file was deleted.

11 changes: 0 additions & 11 deletions Meditate/resources/menus/session/vibePatternMenu.xml

This file was deleted.

26 changes: 0 additions & 26 deletions Meditate/resources/strings/hrvFitContributionsStrings.xml

This file was deleted.

95 changes: 0 additions & 95 deletions Meditate/resources/strings/strings.xml
Original file line number Diff line number Diff line change
@@ -1,103 +1,8 @@
<strings>
<string id="AppName">Meditate</string>

<string id="ConfirmSaveHeader">Save Session?</string>

<string id="confirmDeleteSessionHeader">Delete Session?</string>

<string id="confirmDeleteAllIntervalAlertsHeader">Delete All Alerts?</string>

<string id="SummaryTitle">Summary</string>

<string id="menuSessionSettings_Title">Session Settings</string>
<string id="menuSessionSettings_addNew">Add New</string>
<string id="menuSessionSettings_edit">Edit</string>
<string id="menuSessionSettings_delete">Delete</string>
<string id="menuSessionSettings_globalSettings">Global Settings</string>

<string id="menuGlobalSettings_title">Global Settings</string>
<string id="menuGlobalSettings_newHrvTracking">HRV Tracking</string>
<string id="menuGlobalSettings_newActivityType">New Activity Type</string>
<string id="menuGlobalSettings_confirmSaveActivity">Confirm Save</string>
<string id="menuGlobalSettings_multiSession">Multi-Session</string>

<string id="menuNewActivityTypeOptions_title">New Activity Type</string>
<string id="menuNewActivityTypeOptions_meditating">Meditate</string>
<string id="menuNewActivityTypeOptions_yoga">Yoga</string>

<string id="activityTypeMenu_title">Activity Type</string>
<string id="activityTypeMenu_meditating">Meditate</string>
<string id="activityTypeMenu_yoga">Yoga</string>

<string id="menuNewHrvTrackingOptions_title">Hrv Tracking</string>
<string id="menuNewHrvTrackingOptions_on">On (Default)</string>
<string id="menuNewHrvTrackingOptions_onDetailed">On Detailed</string>
<string id="menuNewHrvTrackingOptions_off">Off</string>

<string id="menuHrvTrackingOptions_title">Hrv Tracking</string>
<string id="menuHrvTrackingOptions_on">On (Default)</string>
<string id="menuHrvTrackingOptions_onDetailed">On Detailed</string>
<string id="menuHrvTrackingOptions_off">Off</string>

<string id="menuConfirmSaveActivityOptions_title">Confirm Save</string>
<string id="menuConfirmSaveActivityOptions_ask">Ask (Default)</string>
<string id="menuConfirmSaveActivityOptions_autoYes">Auto Yes</string>
<string id="menuConfirmSaveActivityOptions_autoNo">Auto No</string>

<string id="menuMultiSessionOptions_title">Multi-Session</string>
<string id="menuMultiSessionOptions_yes">Yes</string>
<string id="menuMultiSessionOptions_no">No (Default)</string>

<string id="menuIntervalAlertSettings_Title">Interval Alerts</string>
<string id="menuIntervalAlertSettings_addNew">Add New</string>
<string id="menuIntervalAlertSettings_edit">Edit</string>
<string id="menuIntervalAlertSettings_deleteAll">Delete All</string>

<string id="summaryRollupMenu_title">Sessions Summary</string>
<string id="summaryRollupMenuOption_exit">Exit</string>

<string id="confirmDeleteIntervalAlertHeader">Delete Alert?</string>

<string id="addEditIntervalAlertMenu_title">Alert</string>
<string id="addEditIntervalAlertMenu_time">Time</string>
<string id="addEditIntervalAlertMenu_color">Color</string>
<string id="addEditIntervalAlertMenu_vibePattern">Vibe</string>
<string id="addEditIntervalAlertMenu_delete">Delete</string>

<string id="addEditSessionMenu_title">Session</string>
<string id="addEditSessionMenu_time">Time</string>
<string id="addEditSessionMenu_color">Color</string>
<string id="addEditSessionMenu_vibePattern">Sound</string>
<string id="addEditSessionMenu_intervalAlerts">Interval Alerts</string>
<string id="addEditSessionMenu_activityType">Activity Type</string>
<string id="addEditSessionMenu_hrvTracking">HRV Tracking</string>

<string id="intervalAlertTransparentColorText">Transparent</string>

<string id="vibePatternMenu_title">Sound</string>
<string id="vibePatternMenu_longPulsating">ALARM</string>
<string id="vibePatternMenu_longContinuous">SUCCESS</string>
<string id="vibePatternMenu_longAscending">ALERT_HI</string>
<string id="vibePatternMenu_mediumPulsating">TIME_ALERT</string>
<string id="vibePatternMenu_mediumContinuous">LOUD_BEEP</string>
<string id="vibePatternMenu_mediumAscending">START</string>
<string id="vibePatternMenu_shortPulsating">LOW_BATTERY</string>
<string id="vibePatternMenu_shortContinuous">CANARY</string>
<string id="vibePatternMenu_shortAscending">ALERT_LO</string>

<string id="intervalVibePatternMenu_title">Sound</string>
<string id="intervalVibePatternMenu_shorterContinuous">CANARY</string>
<string id="intervalVibePatternMenu_shorterAscending">ALERT_LO</string>
<string id="intervalVibePatternMenu_blip">MSG</string>

<string id="intervalTypeMenu_title">Interval Alert Type</string>
<string id="intervalTypeMenu_oneOff">One-off H:MM</string>
<string id="intervalTypeMenu_repeat">Every MM:SS</string>

<string id="editIntervalAlertsMenu_title">Edit Interval Alerts</string>

<string id="activityDelayedFinishingText">Finishing...</string>

<string id="meditateActivityPaused">[Paused]</string>

</strings>
6 changes: 3 additions & 3 deletions Meditate/source/activity/MeditateView.mc
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class MeditateView extends Ui.View {
});
}

private static const TextFont = Gfx.FONT_SMALL;
private static const TextFont = Gfx.FONT_MEDIUM;

private function renderBackground(dc) {
dc.setColor(Gfx.COLOR_TRANSPARENT, Gfx.COLOR_BLACK);
Expand All @@ -46,13 +46,13 @@ class MeditateView extends Ui.View {
private function renderHrStatusLayout(dc) {
var xPosText = dc.getWidth() / 2;
var yPosText = getYPosOffsetFromCenter(dc, 1);
me.mHrStatusText = createMeditateText(Gfx.COLOR_WHITE, TextFont, xPosText + 6, yPosText + 4, Gfx.TEXT_JUSTIFY_CENTER);
me.mHrStatusText = createMeditateText(Gfx.COLOR_WHITE, TextFont, xPosText + 8, yPosText - 10, Gfx.TEXT_JUSTIFY_CENTER);

var hrStatusX = App.getApp().getProperty("meditateActivityIconsXPos");
var iconsYOffset = App.getApp().getProperty("meditateActivityIconsYOffset");
var hrStatusY = getYPosOffsetFromCenter(dc, 1) + iconsYOffset;
me.mHrStatus = new ScreenPicker.Icon({
:font => Gfx.FONT_SMALL,
:font => Gfx.FONT_MEDIUM,
:symbol => "HR:",
:color=>Graphics.COLOR_RED,
:xPos => hrStatusX,
Expand Down
18 changes: 1 addition & 17 deletions Meditate/source/sessionSettings/SessionModel.mc
Original file line number Diff line number Diff line change
Expand Up @@ -95,24 +95,8 @@ class SessionModel {
me.activityType = "Meditate";
}

// 45min
if (index == 6) {
me.time = 45 * 60;
me.color = Gfx.COLOR_GREEN;
me.vibePattern = VibePattern.LongContinuous;
me.activityType = "Meditate";
}

// 1h
if (index == 7) {
me.time = 60 * 60;
me.color = Gfx.COLOR_YELLOW;
me.vibePattern = VibePattern.LongContinuous;
me.activityType = "Meditate";
}

// 15s for testing
if (index == 8) {
if (index == 6) {
me.time = 15;
me.color = Gfx.COLOR_GREEN;
me.vibePattern = VibePattern.LongContinuous;
Expand Down
Loading

0 comments on commit c7cb4b0

Please sign in to comment.