From 5e19e042c0b8307dc84719180bc2575ed239de3a Mon Sep 17 00:00:00 2001 From: Eve C Date: Tue, 16 Jul 2024 08:36:01 +0200 Subject: [PATCH] new file: doc/lvgl_align.png add ref for alignment names in lvgl modified: src/displayapp/apps/CMakeLists.txt uncomment wome watchfaces modified: src/displayapp/screens/WatchFaceCasioStyleG7710.cpp add alarm, overlaps with heartbeat modified: src/displayapp/screens/WatchFaceCasioStyleG7710.h new file: todo.log --- doc/lvgl_align.png | Bin 0 -> 42761 bytes src/displayapp/apps/CMakeLists.txt | 4 +- .../screens/WatchFaceCasioStyleG7710.cpp | 56 ++++++++++++++++++ .../screens/WatchFaceCasioStyleG7710.h | 7 +++ todo.log | 3 + 5 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 doc/lvgl_align.png create mode 100644 todo.log diff --git a/doc/lvgl_align.png b/doc/lvgl_align.png new file mode 100644 index 0000000000000000000000000000000000000000..189c573e2ebff463282f65fdea50170a4de793d0 GIT binary patch literal 42761 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 #include "displayapp/screens/BatteryIcon.h" #include "displayapp/screens/BleIcon.h" +#include "displayapp/screens/AlarmIcon.h" #include "displayapp/screens/NotificationIcon.h" #include "displayapp/screens/Symbols.h" #include "components/battery/BatteryController.h" #include "components/ble/BleController.h" +#include "components/alarm/AlarmController.h" #include "components/ble/NotificationManager.h" #include "components/heartrate/HeartRateController.h" #include "components/motion/MotionController.h" @@ -17,6 +19,7 @@ using namespace Pinetime::Applications::Screens; WatchFaceCasioStyleG7710::WatchFaceCasioStyleG7710(Controllers::DateTime& dateTimeController, const Controllers::Battery& batteryController, const Controllers::Ble& bleController, + Controllers::AlarmController& alarmController, Controllers::NotificationManager& notificatioManager, Controllers::Settings& settingsController, Controllers::HeartRateController& heartRateController, @@ -27,6 +30,7 @@ WatchFaceCasioStyleG7710::WatchFaceCasioStyleG7710(Controllers::DateTime& dateTi dateTimeController {dateTimeController}, batteryController {batteryController}, bleController {bleController}, + alarmController {alarmController}, notificatioManager {notificatioManager}, settingsController {settingsController}, heartRateController {heartRateController}, @@ -168,6 +172,23 @@ WatchFaceCasioStyleG7710::WatchFaceCasioStyleG7710(Controllers::DateTime& dateTi lv_label_set_text_static(stepIcon, Symbols::shoe); lv_obj_align(stepIcon, stepValue, LV_ALIGN_OUT_LEFT_MID, -5, 0); + alarmIcon = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(alarmIcon, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, color_text); + lv_label_set_text_static(alarmIcon, Symbols::notbell); + lv_obj_align(alarmIcon, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 5, -2); + + labelAlarm = lv_label_create(lv_scr_act(), nullptr); + lv_obj_set_style_local_text_color(labelAlarm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, color_text); +// lv_obj_set_style_local_text_font(labelAlarm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + lv_obj_align(labelAlarm, alarmIcon, LV_ALIGN_OUT_RIGHT_MID, 3, 0); + lv_label_set_text_static(labelAlarm, "00:00"); + + labelTimeAmPmAlarm = lv_label_create(lv_scr_act(), nullptr); +// lv_obj_set_style_local_text_font(labelTimeAmPmAlarm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + lv_label_set_text_static(labelTimeAmPmAlarm, ""); + lv_obj_set_style_local_text_color(labelTimeAmPmAlarm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, color_text); + lv_obj_align(labelTimeAmPmAlarm, labelAlarm, LV_ALIGN_OUT_RIGHT_MID, 3, 0); + taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); Refresh(); } @@ -310,6 +331,41 @@ void WatchFaceCasioStyleG7710::Refresh() { lv_obj_realign(stepValue); lv_obj_realign(stepIcon); } + alarmState = alarmController.State()==Pinetime::Controllers::AlarmController::AlarmState::Set; + // sets the icon as bell or barred bell + lv_label_set_text_static(alarmIcon, AlarmIcon::GetIcon(alarmState)); + //displays the time of the alarm or nothing if the alarm is not set + if (alarmState) { + uint8_t alarmHours = alarmController.Hours(); + uint8_t alarmMinutes = alarmController.Minutes(); + //handles the am pm format. + if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { + char ampmChar[3] = "AM"; + if (alarmHours == 0) { + alarmHours = 12; + } else if (alarmHours == 12) { + ampmChar[0]='P'; + } else if (alarmHours > 12) { + alarmHours = alarmHours - 12; + ampmChar[0]='P'; + } + lv_label_set_text(labelTimeAmPmAlarm, ampmChar); +// lv_obj_set_style_local_text_font(labelTimeAmPmAlarm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, font_teko); + lv_obj_align(labelTimeAmPmAlarm, labelAlarm, LV_ALIGN_OUT_RIGHT_MID, 3, 0); + } + + lv_label_set_text_fmt(labelAlarm, "%02d:%02d", alarmHours, alarmMinutes); + + lv_obj_align(alarmIcon, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 5, -2); + lv_obj_align(labelAlarm, alarmIcon, LV_ALIGN_OUT_RIGHT_MID, 3, 0); + + } + else { + lv_label_set_text_static(labelAlarm, Symbols::none); + lv_obj_align(alarmIcon, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 5, -2); + lv_obj_align(labelAlarm, alarmIcon, LV_ALIGN_OUT_RIGHT_MID, 3, 0); + } + } bool WatchFaceCasioStyleG7710::IsAvailable(Pinetime::Controllers::FS& filesystem) { diff --git a/src/displayapp/screens/WatchFaceCasioStyleG7710.h b/src/displayapp/screens/WatchFaceCasioStyleG7710.h index 0f46a692..7d429451 100644 --- a/src/displayapp/screens/WatchFaceCasioStyleG7710.h +++ b/src/displayapp/screens/WatchFaceCasioStyleG7710.h @@ -30,6 +30,7 @@ namespace Pinetime { WatchFaceCasioStyleG7710(Controllers::DateTime& dateTimeController, const Controllers::Battery& batteryController, const Controllers::Ble& bleController, + Controllers::AlarmController& alarmController, Controllers::NotificationManager& notificatioManager, Controllers::Settings& settingsController, Controllers::HeartRateController& heartRateController, @@ -46,6 +47,7 @@ namespace Pinetime { Utility::DirtyValue powerPresent {}; Utility::DirtyValue bleState {}; Utility::DirtyValue bleRadioEnabled {}; + bool alarmState {}; Utility::DirtyValue> currentDateTime {}; Utility::DirtyValue stepCount {}; Utility::DirtyValue heartbeat {}; @@ -76,6 +78,9 @@ namespace Pinetime { lv_obj_t* line_day_of_year; lv_obj_t* backgroundLabel; lv_obj_t* bleIcon; + lv_obj_t* labelAlarm; + lv_obj_t* labelTimeAmPmAlarm; + lv_obj_t* alarmIcon; lv_obj_t* batteryPlug; lv_obj_t* label_battery_value; lv_obj_t* heartbeatIcon; @@ -90,6 +95,7 @@ namespace Pinetime { Controllers::DateTime& dateTimeController; const Controllers::Battery& batteryController; const Controllers::Ble& bleController; + Controllers::AlarmController& alarmController; Controllers::NotificationManager& notificatioManager; Controllers::Settings& settingsController; Controllers::HeartRateController& heartRateController; @@ -111,6 +117,7 @@ namespace Pinetime { return new Screens::WatchFaceCasioStyleG7710(controllers.dateTimeController, controllers.batteryController, controllers.bleController, + controllers.alarmController, controllers.notificationManager, controllers.settingsController, controllers.heartRateController, diff --git a/todo.log b/todo.log new file mode 100644 index 00000000..e7d50d9f --- /dev/null +++ b/todo.log @@ -0,0 +1,3 @@ +replace alarm info by timer info when timer is ongoing +add a shortcut for a 1min timer on the right +