Fix display consistency with the HR measurement when measurements are already running when the app is open.
This commit is contained in:
parent
eb1209e638
commit
a7114f21b7
|
@ -29,11 +29,16 @@ namespace {
|
||||||
|
|
||||||
HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::HeartRateController& heartRateController, System::SystemTask &systemTask) :
|
HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::HeartRateController& heartRateController, System::SystemTask &systemTask) :
|
||||||
Screen(app), heartRateController{heartRateController}, 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);
|
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_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_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_label_set_text(label_hr, "000");
|
||||||
lv_obj_align(label_hr, nullptr, LV_ALIGN_CENTER, 0, -40);
|
lv_obj_align(label_hr, nullptr, LV_ALIGN_CENTER, 0, -40);
|
||||||
|
|
||||||
|
@ -41,7 +46,6 @@ HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::Heart
|
||||||
lv_label_set_text(label_bpm, "Heart rate BPM");
|
lv_label_set_text(label_bpm, "Heart rate BPM");
|
||||||
lv_obj_align(label_bpm, label_hr, LV_ALIGN_OUT_TOP_MID, 0, -20);
|
lv_obj_align(label_bpm, label_hr, LV_ALIGN_OUT_TOP_MID, 0, -20);
|
||||||
|
|
||||||
|
|
||||||
label_status = lv_label_create(lv_scr_act(), nullptr);
|
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_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_label_set_text(label_status, ToString(Pinetime::Controllers::HeartRateController::States::NotEnoughData));
|
||||||
|
@ -55,7 +59,9 @@ HeartRate::HeartRate(Pinetime::Applications::DisplayApp *app, Controllers::Heart
|
||||||
lv_obj_align(btn_startStop, nullptr, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
|
lv_obj_align(btn_startStop, nullptr, LV_ALIGN_IN_BOTTOM_MID, 0, 0);
|
||||||
|
|
||||||
label_startStop = lv_label_create(btn_startStop, nullptr);
|
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() {
|
HeartRate::~HeartRate() {
|
||||||
|
|
Loading…
Reference in a new issue