diff options
| author | Riku Isokoski <riksu9000@gmail.com> | 2023-03-03 12:20:18 +0200 |
|---|---|---|
| committer | Riku Isokoski <riksu9000@gmail.com> | 2023-03-15 08:30:03 +0200 |
| commit | 11ade64166c8900abb5574dd9d4aa2ae597f69c5 (patch) | |
| tree | fa7d056e375ce12837a435d0b784c2cc8a451d73 /src | |
| parent | e55a76f740561378479eda5ff8c32e09db9f1693 (diff) | |
WatchFaceAnalog: Simplify date update check
Diffstat (limited to 'src')
| -rw-r--r-- | src/displayapp/screens/WatchFaceAnalog.cpp | 14 | ||||
| -rw-r--r-- | src/displayapp/screens/WatchFaceAnalog.h | 6 |
2 files changed, 5 insertions, 15 deletions
diff --git a/src/displayapp/screens/WatchFaceAnalog.cpp b/src/displayapp/screens/WatchFaceAnalog.cpp index ad66be15..76d01cf1 100644 --- a/src/displayapp/screens/WatchFaceAnalog.cpp +++ b/src/displayapp/screens/WatchFaceAnalog.cpp @@ -223,20 +223,12 @@ void WatchFaceAnalog::Refresh() { } currentDateTime = dateTimeController.CurrentDateTime(); - if (currentDateTime.IsUpdated()) { - Pinetime::Controllers::DateTime::Months month = dateTimeController.Month(); - uint8_t day = dateTimeController.Day(); - Pinetime::Controllers::DateTime::Days dayOfWeek = dateTimeController.DayOfWeek(); - UpdateClock(); - if ((month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) { - lv_label_set_text_fmt(label_date_day, "%s\n%02i", dateTimeController.DayOfWeekShortToString(), day); - - currentMonth = month; - currentDayOfWeek = dayOfWeek; - currentDay = day; + currentDate = std::chrono::time_point_cast<days>(currentDateTime.Get()); + if (currentDate.IsUpdated()) { + lv_label_set_text_fmt(label_date_day, "%s\n%02i", dateTimeController.DayOfWeekShortToString(), dateTimeController.Day()); } } } diff --git a/src/displayapp/screens/WatchFaceAnalog.h b/src/displayapp/screens/WatchFaceAnalog.h index cbb0b2cb..b32293da 100644 --- a/src/displayapp/screens/WatchFaceAnalog.h +++ b/src/displayapp/screens/WatchFaceAnalog.h @@ -37,15 +37,13 @@ namespace Pinetime { private: uint8_t sHour, sMinute, sSecond; - Pinetime::Controllers::DateTime::Months currentMonth = Pinetime::Controllers::DateTime::Months::Unknown; - Pinetime::Controllers::DateTime::Days currentDayOfWeek = Pinetime::Controllers::DateTime::Days::Unknown; - uint8_t currentDay = 0; - DirtyValue<uint8_t> batteryPercentRemaining {0}; DirtyValue<bool> isCharging {}; DirtyValue<bool> bleState {}; DirtyValue<std::chrono::time_point<std::chrono::system_clock, std::chrono::nanoseconds>> currentDateTime; DirtyValue<bool> notificationState {false}; + using days = std::chrono::duration<int32_t, std::ratio<86400>>; // TODO: days is standard in c++20 + DirtyValue<std::chrono::time_point<std::chrono::system_clock, days>> currentDate; lv_obj_t* hour_body; lv_obj_t* hour_body_trace; |
