diff options
| author | Michele Bini <michele.bini@gmail.com> | 2022-04-10 04:04:38 (GMT) |
|---|---|---|
| committer | Michele Bini <michele.bini@gmail.com> | 2022-04-10 04:04:38 (GMT) |
| commit | bf92c0326a6c81eb1c344847fd677fccd4171c92 (patch) | |
| tree | 784a7ac08e1c42872532a94b1bf6d9040089de98 /src | |
| parent | 175a08f386575dced13365f179b44ea1f208a839 (diff) | |
integration fixes
Diffstat (limited to 'src')
| -rw-r--r-- | src/displayapp/screens/Alarm.cpp | 123 | ||||
| -rw-r--r-- | src/displayapp/screens/Alarm.h | 9 | ||||
| -rw-r--r-- | src/displayapp/screens/Timer.cpp | 9 | ||||
| -rw-r--r-- | src/displayapp/screens/Timer.h | 7 | ||||
| -rw-r--r-- | src/displayapp/screens/WatchFaceAnalog24.cpp | 5 | ||||
| -rw-r--r-- | src/displayapp/screens/WatchFaceAnalog24.h | 1 | ||||
| m--------- | src/libs/lvgl | 0 |
7 files changed, 56 insertions, 98 deletions
diff --git a/src/displayapp/screens/Alarm.cpp b/src/displayapp/screens/Alarm.cpp index 3ae6480..7d9824a 100644 --- a/src/displayapp/screens/Alarm.cpp +++ b/src/displayapp/screens/Alarm.cpp @@ -29,7 +29,7 @@ static void btnEventHandler(lv_obj_t* obj, lv_event_t event) { static void StopAlarmTaskCallback(lv_task_t* task) { auto* screen = static_cast<Alarm*>(task->user_data); - screen->StopAlerting(); + screen->StopAlarm(); } Alarm::Alarm(DisplayApp* app, @@ -48,13 +48,6 @@ Alarm::Alarm(DisplayApp* app, lv_obj_align(time, lv_scr_act(), LV_ALIGN_CENTER, 0, -25); - lblampm = lv_label_create(lv_scr_act(), nullptr); - lv_obj_set_style_local_text_font(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &jetbrains_mono_bold_20); - lv_obj_set_style_local_text_color(lblampm, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); - lv_label_set_text_static(lblampm, " "); - lv_label_set_align(lblampm, LV_LABEL_ALIGN_CENTER); - lv_obj_align(lblampm, lv_scr_act(), LV_ALIGN_CENTER, 0, 30); - btnHoursUp = lv_btn_create(lv_scr_act(), nullptr); btnHoursUp->user_data = this; lv_obj_set_event_cb(btnHoursUp, btnEventHandler); @@ -87,15 +80,13 @@ Alarm::Alarm(DisplayApp* app, txtMinDown = lv_label_create(btnMinutesDown, nullptr); lv_label_set_text_static(txtMinDown, "-"); - btnStop = lv_btn_create(lv_scr_act(), nullptr); - btnStop->user_data = this; - lv_obj_set_event_cb(btnStop, btnEventHandler); - lv_obj_set_size(btnStop, 115, 50); - lv_obj_align(btnStop, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); - lv_obj_set_style_local_bg_color(btnStop, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); - txtStop = lv_label_create(btnStop, nullptr); - lv_label_set_text_static(txtStop, Symbols::stop); - lv_obj_set_hidden(btnStop, true); + btnEnable = lv_btn_create(lv_scr_act(), nullptr); + btnEnable->user_data = this; + lv_obj_set_event_cb(btnEnable, btnEventHandler); + lv_obj_set_size(btnEnable, 115, 50); + lv_obj_align(btnEnable, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 0, 0); + txtEnable = lv_label_create(btnEnable, nullptr); + SetEnableButtonState(); btnRecur = lv_btn_create(lv_scr_act(), nullptr); btnRecur->user_data = this; @@ -113,25 +104,14 @@ Alarm::Alarm(DisplayApp* app, txtInfo = lv_label_create(btnInfo, nullptr); lv_label_set_text_static(txtInfo, "i"); - enableSwitch = lv_switch_create(lv_scr_act(), nullptr); - enableSwitch->user_data = this; - lv_obj_set_event_cb(enableSwitch, btnEventHandler); - lv_obj_set_size(enableSwitch, 100, 50); - // Align to the center of 115px from edge - lv_obj_align(enableSwitch, lv_scr_act(), LV_ALIGN_IN_BOTTOM_LEFT, 7, 0); - - UpdateAlarmTime(); - - if (alarmController.State() == Controllers::AlarmController::AlarmState::Alerting) { - SetAlerting(); - } else { - SetSwitchState(LV_ANIM_OFF); + if (alarmController.State() == AlarmController::AlarmState::Alerting) { + OnAlarmStart(); } } Alarm::~Alarm() { if (alarmController.State() == AlarmController::AlarmState::Alerting) { - StopAlerting(); + StopAlarm(); } lv_obj_clean(lv_scr_act()); } @@ -139,8 +119,17 @@ Alarm::~Alarm() { void Alarm::OnButtonEvent(lv_obj_t* obj, lv_event_t event) { using Pinetime::Controllers::AlarmController; if (event == LV_EVENT_CLICKED) { - if (obj == btnStop) { - StopAlerting(); + if (obj == btnEnable) { + if (alarmController.State() == AlarmController::AlarmState::Alerting) { + StopAlarm(); + return; + } + if (alarmController.State() == AlarmController::AlarmState::Set) { + alarmController.DisableAlarm(); + } else { + alarmController.ScheduleAlarm(); + } + SetEnableButtonState(); return; } if (obj == btnInfo) { @@ -151,19 +140,11 @@ void Alarm::OnButtonEvent(lv_obj_t* obj, lv_event_t event) { HideInfo(); return; } - if (obj == enableSwitch) { - if (lv_switch_get_state(enableSwitch)) { - alarmController.ScheduleAlarm(); - } else { - alarmController.DisableAlarm(); - } - return; - } // If any other button was pressed, disable the alarm // this is to make it clear that the alarm won't be set until it is turned back on if (alarmController.State() == AlarmController::AlarmState::Set) { alarmController.DisableAlarm(); - lv_switch_off(enableSwitch, LV_ANIM_ON); + SetEnableButtonState(); } if (obj == btnMinutesUp) { if (alarmMinutes >= 59) { @@ -213,7 +194,7 @@ bool Alarm::OnButtonPushed() { return true; } if (alarmController.State() == AlarmController::AlarmState::Alerting) { - StopAlerting(); + StopAlarm(); return true; } return false; @@ -225,37 +206,18 @@ bool Alarm::OnTouchEvent(Pinetime::Applications::TouchEvents event) { } void Alarm::UpdateAlarmTime() { - if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { - switch (alarmHours) { - case 0: - lv_label_set_text_static(lblampm, "AM"); - lv_label_set_text_fmt(time, "%02d:%02d", 12, alarmMinutes); - break; - case 1 ... 11: - lv_label_set_text_static(lblampm, "AM"); - lv_label_set_text_fmt(time, "%02d:%02d", alarmHours, alarmMinutes); - break; - case 12: - lv_label_set_text_static(lblampm, "PM"); - lv_label_set_text_fmt(time, "%02d:%02d", 12, alarmMinutes); - break; - case 13 ... 23: - lv_label_set_text_static(lblampm, "PM"); - lv_label_set_text_fmt(time, "%02d:%02d", alarmHours - 12, alarmMinutes); - break; - } - } else { - lv_label_set_text_fmt(time, "%02d:%02d", alarmHours, alarmMinutes); - } + lv_label_set_text_fmt(time, "%02d:%02d", alarmHours, alarmMinutes); alarmController.SetAlarmTime(alarmHours, alarmMinutes); } void Alarm::SetAlerting() { - lv_obj_set_hidden(enableSwitch, true); - lv_obj_set_hidden(btnStop, false); + SetEnableButtonState(); + OnAlarmStart(); +} + +void Alarm::OnAlarmStart() { taskStopAlarm = lv_task_create(StopAlarmTaskCallback, pdMS_TO_TICKS(60 * 1000), LV_TASK_PRIO_MID, this); systemTask.PushMessage(System::Messages::DisableSleeping); - SetEnableButtonState(); } void Alarm::StopAlarm() { @@ -268,28 +230,19 @@ void Alarm::StopAlarm() { systemTask.PushMessage(System::Messages::EnableSleeping); } -void Alarm::StopAlerting() { - alarmController.StopAlerting(); - SetSwitchState(LV_ANIM_OFF); - if (taskStopAlarm != nullptr) { - lv_task_del(taskStopAlarm); - taskStopAlarm = nullptr; - } - systemTask.PushMessage(System::Messages::EnableSleeping); - lv_obj_set_hidden(enableSwitch, false); - lv_obj_set_hidden(btnStop, true); -} - -void Alarm::SetSwitchState(lv_anim_enable_t anim) { +void Alarm::SetEnableButtonState() { switch (alarmController.State()) { case AlarmController::AlarmState::Set: - lv_switch_on(enableSwitch, anim); + lv_label_set_text(txtEnable, "ON"); + lv_obj_set_style_local_bg_color(btnEnable, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GREEN); break; case AlarmController::AlarmState::Not_Set: - lv_switch_off(enableSwitch, anim); - break; - default: + lv_label_set_text(txtEnable, "OFF"); + lv_obj_set_style_local_bg_color(btnEnable, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_GRAY); break; + case AlarmController::AlarmState::Alerting: + lv_label_set_text(txtEnable, Symbols::stop); + lv_obj_set_style_local_bg_color(btnEnable, LV_BTN_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); } } diff --git a/src/displayapp/screens/Alarm.h b/src/displayapp/screens/Alarm.h index 03dfd58..f5b54f7 100644 --- a/src/displayapp/screens/Alarm.h +++ b/src/displayapp/screens/Alarm.h @@ -36,7 +36,7 @@ namespace Pinetime { void OnButtonEvent(lv_obj_t* obj, lv_event_t event); bool OnButtonPushed() override; bool OnTouchEvent(TouchEvents event) override; - void StopAlerting(); + void StopAlarm(); private: uint8_t alarmHours; @@ -45,16 +45,17 @@ namespace Pinetime { Controllers::Settings& settingsController; System::SystemTask& systemTask; - lv_obj_t *time, *lblampm, *btnStop, *txtStop, *btnMinutesUp, *btnMinutesDown, *btnHoursUp, *btnHoursDown, *txtMinUp, - *txtMinDown, *txtHrUp, *txtHrDown, *btnRecur, *txtRecur, *btnInfo, *txtInfo, *enableSwitch; + lv_obj_t *time, *btnEnable, *txtEnable, *btnMinutesUp, *btnMinutesDown, *btnHoursUp, *btnHoursDown, *txtMinUp, *txtMinDown, + *txtHrUp, *txtHrDown, *btnRecur, *txtRecur, *btnInfo, *txtInfo; lv_obj_t* txtMessage = nullptr; lv_obj_t* btnMessage = nullptr; lv_task_t* taskStopAlarm = nullptr; enum class EnableButtonState { On, Off, Alerting }; + void SetEnableButtonState(); void SetRecurButtonState(); - void SetSwitchState(lv_anim_enable_t anim); void OnAlarmStart(); + void SetAlarm(); void ShowInfo(); void HideInfo(); void ToggleRecurrence(); diff --git a/src/displayapp/screens/Timer.cpp b/src/displayapp/screens/Timer.cpp index ca15a2f..008bec3 100644 --- a/src/displayapp/screens/Timer.cpp +++ b/src/displayapp/screens/Timer.cpp @@ -1,4 +1,5 @@ #include "displayapp/screens/Timer.h" + #include "displayapp/screens/Screen.h" #include "displayapp/screens/Symbols.h" #include <lvgl/lvgl.h> @@ -6,11 +7,11 @@ using namespace Pinetime::Applications::Screens; static void btnEventHandler(lv_obj_t* obj, lv_event_t event) { - auto* screen = static_cast<Timer*>(obj->user_data); + Timer* screen = static_cast<Timer*>(obj->user_data); screen->OnButtonEvent(obj, event); } -void Timer::CreateButtons() { +void Timer::createButtons() { btnMinutesUp = lv_btn_create(lv_scr_act(), nullptr); btnMinutesUp->user_data = this; lv_obj_set_event_cb(btnMinutesUp, btnEventHandler); @@ -98,7 +99,7 @@ Timer::Timer(DisplayApp* app, Controllers::TimerController& timerController) lv_label_set_text(txtPlayPause, overtime ? Symbols::stop : Symbols::pause); } else { lv_label_set_text(txtPlayPause, Symbols::play); - CreateButtons(); + createButtons(); } taskRefresh = lv_task_create(RefreshTaskCallback, LV_DISP_DEF_REFR_PERIOD, LV_TASK_PRIO_MID, this); } @@ -186,7 +187,7 @@ void Timer::OnButtonEvent(lv_obj_t* obj, lv_event_t event) { } } -void Timer::setDone() { +void Timer::SetDone() { lv_obj_set_style_local_text_color(time, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, LV_COLOR_RED); lv_label_set_text(txtPlayPause, Symbols::stop); } diff --git a/src/displayapp/screens/Timer.h b/src/displayapp/screens/Timer.h index 76aac58..1eee6d0 100644 --- a/src/displayapp/screens/Timer.h +++ b/src/displayapp/screens/Timer.h @@ -8,24 +8,29 @@ #include "components/timer/TimerController.h" namespace Pinetime::Applications::Screens { + class Timer : public Screen { public: enum class Modes { Normal, Done }; Timer(DisplayApp* app, Controllers::TimerController& timerController); + ~Timer() override; + void Refresh() override; void SetDone(); void OnButtonEvent(lv_obj_t* obj, lv_event_t event); private: - void CreateButtons(); bool running; uint8_t secondsToSet = 0; uint8_t minutesToSet = 0; Controllers::TimerController& timerController; + + void createButtons(); void stop(); + lv_obj_t* backgroundLabel; lv_task_t* taskRefresh; lv_obj_t *time, *btnPlayPause, *txtPlayPause, *btnMinutesUp, *btnMinutesDown, *btnSecondsUp, *btnSecondsDown, *txtMUp, *txtMDown, *txtSUp, *txtSDown; diff --git a/src/displayapp/screens/WatchFaceAnalog24.cpp b/src/displayapp/screens/WatchFaceAnalog24.cpp index 29c1095..875c0f1 100644 --- a/src/displayapp/screens/WatchFaceAnalog24.cpp +++ b/src/displayapp/screens/WatchFaceAnalog24.cpp @@ -206,9 +206,8 @@ void WatchFaceAnalog24::Refresh() { } bleState = bleController.IsConnected(); - bleRadioEnabled = bleController.IsRadioEnabled(); - if (bleState.IsUpdated() || bleRadioEnabled.IsUpdated()) { - lv_label_set_text(bleIcon, BleIcon::GetIcon(bleRadioEnabled.Get(), bleState.Get())); + if (bleState.IsUpdated()) { + lv_label_set_text(bleIcon, BleIcon::GetIcon(bleState.Get())); } notificationState = notificationManager.AreNewNotificationsAvailable(); diff --git a/src/displayapp/screens/WatchFaceAnalog24.h b/src/displayapp/screens/WatchFaceAnalog24.h index 0653bcf..5df8979 100644 --- a/src/displayapp/screens/WatchFaceAnalog24.h +++ b/src/displayapp/screens/WatchFaceAnalog24.h @@ -51,7 +51,6 @@ namespace Pinetime { DirtyValue<uint8_t> batteryPercentRemaining {0}; DirtyValue<bool> isCharging {}; DirtyValue<bool> bleState {}; - DirtyValue<bool> bleRadioEnabled {}; DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime; DirtyValue<bool> motionSensorOk {}; DirtyValue<uint32_t> stepCount {}; diff --git a/src/libs/lvgl b/src/libs/lvgl -Subproject e100d920f823e4308b8b43d7eb4130afa74f272 +Subproject 23430cf20e32294549fff9b2879a9466dacc19b |
