summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/HeartRate.cpp
diff options
context:
space:
mode:
authorJF <jf@codingfield.com>2021-04-21 18:19:57 (GMT)
committerGitea <gitea@fake.local>2021-04-21 18:19:57 (GMT)
commita80e782f267cd2424d22da23d809c0c6a8ff8761 (patch)
treeca2bdb100ea98d361296a61352679f63a507f955 /src/displayapp/screens/HeartRate.cpp
parent24d3eea4fba05d774ace794eb8c9b21b8f2aa8c6 (diff)
parentfefb429fb4bf1020553900d9e514d3baa9040325 (diff)
Merge branch 'develop' of JF/PineTime into master
Diffstat (limited to 'src/displayapp/screens/HeartRate.cpp')
-rw-r--r--src/displayapp/screens/HeartRate.cpp46
1 files changed, 26 insertions, 20 deletions
diff --git a/src/displayapp/screens/HeartRate.cpp b/src/displayapp/screens/HeartRate.cpp
index 401d57d..e735c18 100644
--- a/src/displayapp/screens/HeartRate.cpp
+++ b/src/displayapp/screens/HeartRate.cpp
@@ -27,52 +27,59 @@ namespace {
}
}
-HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::HeartRateController& heartRateController) : Screen(app), heartRateController{heartRateController} {
-
- label_hr = lv_label_create(lv_scr_act(), NULL);
+HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::HeartRateController& heartRateController, System::SystemTask &systemTask) :
+ Screen(app), heartRateController{heartRateController}, systemTask{systemTask} {
+ bool isHrRunning = heartRateController.State() != Controllers::HeartRateController::States::Stopped;
+ label_hr = lv_label_create(lv_scr_act(), nullptr);
+
+ lv_obj_set_style_local_text_font(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_76);
- lv_obj_set_style_local_text_font(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_extrabold_compressed);
+ if(isHrRunning)
+ lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN);
+ else
+ lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
- lv_obj_align(label_hr, lv_scr_act(), LV_ALIGN_CENTER, -70, -40);
lv_label_set_text(label_hr, "000");
+ lv_obj_align(label_hr, nullptr, LV_ALIGN_CENTER, 0, -40);
- label_bpm = lv_label_create(lv_scr_act(), NULL);
- lv_label_set_text(label_bpm, "Heart rate BPM");
+ label_bpm = lv_label_create(lv_scr_act(), nullptr);
+ lv_label_set_text(label_bpm, "Heart rate BPM");
lv_obj_align(label_bpm, label_hr, LV_ALIGN_OUT_TOP_MID, 0, -20);
-
- label_status = lv_label_create(lv_scr_act(), NULL);
+ label_status = lv_label_create(lv_scr_act(), nullptr);
+ lv_obj_set_style_local_text_color(label_status, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hex(0x222222));
lv_label_set_text(label_status, ToString(Pinetime::Controllers::HeartRateController::States::NotEnoughData));
lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
- btn_startStop = lv_btn_create(lv_scr_act(), NULL);
+ btn_startStop = lv_btn_create(lv_scr_act(), nullptr);
btn_startStop->user_data = this;
lv_obj_set_height(btn_startStop, 50);
lv_obj_set_event_cb(btn_startStop, btnStartStopEventHandler);
lv_obj_align(btn_startStop, nullptr, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
label_startStop = lv_label_create(btn_startStop, nullptr);
- UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped);
+ UpdateStartStopButton(isHrRunning);
+ if(isHrRunning)
+ systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping);
}
HeartRate::~HeartRate() {
lv_obj_clean(lv_scr_act());
+ systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping);
}
bool HeartRate::Refresh() {
- char hr[4];
auto state = heartRateController.State();
switch(state) {
case Controllers::HeartRateController::States::NoTouch:
case Controllers::HeartRateController::States::NotEnoughData:
- case Controllers::HeartRateController::States::Stopped:
+ //case Controllers::HeartRateController::States::Stopped:
lv_label_set_text(label_hr, "000");
break;
default:
- sprintf(hr, "%03d", heartRateController.HeartRate());
- lv_label_set_text(label_hr, hr);
+ lv_label_set_text_fmt(label_hr, "%03d", heartRateController.HeartRate());
}
lv_label_set_text(label_status, ToString(state));
@@ -81,20 +88,19 @@ bool HeartRate::Refresh() {
return running;
}
-bool HeartRate::OnButtonPushed() {
- running = false;
- return true;
-}
-
void HeartRate::OnStartStopEvent(lv_event_t event) {
if (event == LV_EVENT_CLICKED) {
if(heartRateController.State() == Controllers::HeartRateController::States::Stopped) {
heartRateController.Start();
UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped);
+ systemTask.PushMessage(Pinetime::System::SystemTask::Messages::DisableSleeping);
+ lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN);
}
else {
heartRateController.Stop();
UpdateStartStopButton(heartRateController.State() != Controllers::HeartRateController::States::Stopped);
+ systemTask.PushMessage(Pinetime::System::SystemTask::Messages::EnableSleeping);
+ lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
}
}
}