summaryrefslogtreecommitdiff
path: root/src/displayapp/screens/HeartRate.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/displayapp/screens/HeartRate.cpp')
-rw-r--r--src/displayapp/screens/HeartRate.cpp115
1 files changed, 0 insertions, 115 deletions
diff --git a/src/displayapp/screens/HeartRate.cpp b/src/displayapp/screens/HeartRate.cpp
deleted file mode 100644
index 513c40b..0000000
--- a/src/displayapp/screens/HeartRate.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-#include "displayapp/screens/HeartRate.h"
-#include <lvgl/lvgl.h>
-#include <components/heartrate/HeartRateController.h>
-
-#include "displayapp/DisplayApp.h"
-
-using namespace Pinetime::Applications::Screens;
-
-namespace {
- const char* ToString(Pinetime::Controllers::HeartRateController::States s) {
- switch (s) {
- case Pinetime::Controllers::HeartRateController::States::NotEnoughData:
- return "Not enough data,\nplease wait...";
- case Pinetime::Controllers::HeartRateController::States::NoTouch:
- return "No touch detected";
- case Pinetime::Controllers::HeartRateController::States::Running:
- return "Measuring...";
- case Pinetime::Controllers::HeartRateController::States::Stopped:
- return "Stopped";
- }
- return "";
- }
-
- static void btnStartStopEventHandler(lv_obj_t* obj, lv_event_t event) {
- HeartRate* screen = static_cast<HeartRate*>(obj->user_data);
- screen->OnStartStopEvent(event);
- }
-}
-
-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);
-
- 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_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(), 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(), 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(), 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(isHrRunning);
- if (isHrRunning)
- systemTask.PushMessage(Pinetime::System::Messages::DisableSleeping);
-
- taskRefresh = lv_task_create(RefreshTaskCallback, 100, LV_TASK_PRIO_MID, this);
-}
-
-HeartRate::~HeartRate() {
- lv_task_del(taskRefresh);
- lv_obj_clean(lv_scr_act());
- systemTask.PushMessage(Pinetime::System::Messages::EnableSleeping);
-}
-
-void HeartRate::Refresh() {
-
- auto state = heartRateController.State();
- switch (state) {
- case Controllers::HeartRateController::States::NoTouch:
- case Controllers::HeartRateController::States::NotEnoughData:
- // case Controllers::HeartRateController::States::Stopped:
- lv_label_set_text(label_hr, "000");
- break;
- default:
- lv_label_set_text_fmt(label_hr, "%03d", heartRateController.HeartRate());
- }
-
- lv_label_set_text(label_status, ToString(state));
- lv_obj_align(label_status, label_hr, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
-}
-
-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::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::Messages::EnableSleeping);
- lv_obj_set_style_local_text_color(label_hr, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY);
- }
- }
-}
-
-void HeartRate::UpdateStartStopButton(bool isRunning) {
- if (isRunning)
- lv_label_set_text(label_startStop, "Stop");
- else
- lv_label_set_text(label_startStop, "Start");
-}