@@ -15,7 +15,7 @@ namespace {
1515 const int secs = (timeElapsedSecs) % 60 ;
1616 const int mins = (timeElapsedSecs / 60 ) % 60 ;
1717 const int hours = (timeElapsedSecs / 60 ) / 60 ;
18- return TimeSeparated {hours, mins, secs, hundredths};
18+ return TimeSeparated {hours, mins, secs, hundredths, timeElapsedSecs };
1919 }
2020
2121 void PlayPauseEventHandler (lv_obj_t * obj, lv_event_t event) {
@@ -145,11 +145,14 @@ void StopWatch::DisplayCleared() {
145145
146146void StopWatch::RenderTime () {
147147 TimeSeparated elapsedTime = ConvertTicksToTimeSegments (stopWatchController.GetElapsedTime ());
148- SetHoursVisible (elapsedTime.hours != 0 );
149- if (!hoursVisible) {
150- lv_label_set_text_fmt (time, " %02d:%02d" , elapsedTime.mins , elapsedTime.secs );
151- } else {
152- lv_label_set_text_fmt (time, " %02d:%02d:%02d" , elapsedTime.hours , elapsedTime.mins , elapsedTime.secs );
148+ renderedSeconds = elapsedTime.epochSecs ;
149+ if (renderedSeconds.IsUpdated ()) {
150+ SetHoursVisible (elapsedTime.hours != 0 );
151+ if (!hoursVisible) {
152+ lv_label_set_text_fmt (time, " %02d:%02d" , elapsedTime.mins , elapsedTime.secs );
153+ } else {
154+ lv_label_set_text_fmt (time, " %02d:%02d:%02d" , elapsedTime.hours , elapsedTime.mins , elapsedTime.secs );
155+ }
153156 }
154157 lv_label_set_text_fmt (msecTime, " %02d" , elapsedTime.hundredths );
155158}
0 commit comments