aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/StopWatch.cpp
diff options
context:
space:
mode:
authorcodingjourney <coding@journey.sk>2024-12-12 08:20:57 +0100
committerJF <JF002@users.noreply.github.com>2025-11-04 21:25:31 +0100
commit8a5c637eb7210aa6a69f90567c55ee2b1afd5706 (patch)
treee960276a6993559a5aa1ffaa5bb8720be34129da /src/displayapp/screens/StopWatch.cpp
parent11436090f77ef2c6c706a6dc847c5709c40da383 (diff)
prevent unnecessary redrawing of the time label
Diffstat (limited to 'src/displayapp/screens/StopWatch.cpp')
-rw-r--r--src/displayapp/screens/StopWatch.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/displayapp/screens/StopWatch.cpp b/src/displayapp/screens/StopWatch.cpp
index 506a317b..fffedcc3 100644
--- a/src/displayapp/screens/StopWatch.cpp
+++ b/src/displayapp/screens/StopWatch.cpp
@@ -15,7 +15,7 @@ namespace {
const int secs = (timeElapsedSecs) % 60;
const int mins = (timeElapsedSecs / 60) % 60;
const int hours = (timeElapsedSecs / 60) / 60;
- return TimeSeparated {hours, mins, secs, hundredths};
+ return TimeSeparated {hours, mins, secs, hundredths, timeElapsedSecs};
}
void PlayPauseEventHandler(lv_obj_t* obj, lv_event_t event) {
@@ -145,11 +145,14 @@ void StopWatch::DisplayCleared() {
void StopWatch::RenderTime() {
TimeSeparated elapsedTime = ConvertTicksToTimeSegments(stopWatchController.GetElapsedTime());
- SetHoursVisible(elapsedTime.hours != 0);
- if (!hoursVisible) {
- lv_label_set_text_fmt(time, "%02d:%02d", elapsedTime.mins, elapsedTime.secs);
- } else {
- lv_label_set_text_fmt(time, "%02d:%02d:%02d", elapsedTime.hours, elapsedTime.mins, elapsedTime.secs);
+ renderedSeconds = elapsedTime.epochSecs;
+ if (renderedSeconds.IsUpdated()) {
+ SetHoursVisible(elapsedTime.hours != 0);
+ if (!hoursVisible) {
+ lv_label_set_text_fmt(time, "%02d:%02d", elapsedTime.mins, elapsedTime.secs);
+ } else {
+ lv_label_set_text_fmt(time, "%02d:%02d:%02d", elapsedTime.hours, elapsedTime.mins, elapsedTime.secs);
+ }
}
lv_label_set_text_fmt(msecTime, "%02d", elapsedTime.hundredths);
}