aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRiku Isokoski <riksu9000@gmail.com>2023-03-03 12:20:18 +0200
committerRiku Isokoski <riksu9000@gmail.com>2023-03-15 08:30:03 +0200
commit11ade64166c8900abb5574dd9d4aa2ae597f69c5 (patch)
treefa7d056e375ce12837a435d0b784c2cc8a451d73 /src
parente55a76f740561378479eda5ff8c32e09db9f1693 (diff)
WatchFaceAnalog: Simplify date update check
Diffstat (limited to 'src')
-rw-r--r--src/displayapp/screens/WatchFaceAnalog.cpp14
-rw-r--r--src/displayapp/screens/WatchFaceAnalog.h6
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;