diff options
Diffstat (limited to 'src/displayapp/screens/HeartRate.cpp')
| -rw-r--r-- | src/displayapp/screens/HeartRate.cpp | 115 |
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"); -} |
