From 6959d8c043013550a7a3e4e6588b234d3bb942b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9C=D0=B0=D1=80=D0=BA=D0=BE=D0=B2=20=D0=94=D0=BC=D0=B8?= =?UTF-8?q?=D1=82=D1=80=D0=B8=D0=B9?= <13werwolf13@mail.ru> Date: Wed, 2 Feb 2022 09:11:46 +0500 Subject: [PATCH] Update src/displayapp/screens/WatchFaceTerminal.cpp Co-authored-by: NeroBurner --- src/displayapp/screens/WatchFaceTerminal.cpp | 70 +++++--------------- 1 file changed, 15 insertions(+), 55 deletions(-) diff --git a/src/displayapp/screens/WatchFaceTerminal.cpp b/src/displayapp/screens/WatchFaceTerminal.cpp index 6062ab72..7a2ca7a5 100644 --- a/src/displayapp/screens/WatchFaceTerminal.cpp +++ b/src/displayapp/screens/WatchFaceTerminal.cpp @@ -156,65 +156,25 @@ void WatchFaceTerminal::Refresh() { uint8_t minute = time.minutes().count(); uint8_t second = time.seconds().count(); - char minutesChar[6]; - sprintf(minutesChar, "%02d", static_cast(minute)); - - char hoursChar[8]; - - char ampmChar[3]; - if (settingsController.GetClockType() == Controllers::Settings::ClockType::H24) { - sprintf(hoursChar, "%02d", hour); - } else { - if (hour == 0 && hour != 12) { - hour = 12; - sprintf(ampmChar, "AM"); - } else if (hour == 12 && hour != 0) { - hour = 12; - sprintf(ampmChar, "PM"); - } else if (hour < 12 && hour != 0) { - sprintf(ampmChar, "AM"); - } else if (hour > 12 && hour != 0) { - hour = hour - 12; - sprintf(ampmChar, "PM"); - } - sprintf(hoursChar, "%02d", hour); - } - - char secondsChar[5]; - sprintf(secondsChar, "%02d", static_cast(second)); - - auto batteryValue = static_cast(batteryController.PercentRemaining()); - char battStr[24]; - sprintf(battStr, "[BATT]#387b54 %d%\%#", batteryValue); - lv_label_set_text(batteryPercent, battStr); - - if (hoursChar[0] != displayedChar[0] || hoursChar[1] != displayedChar[1] || minutesChar[0] != displayedChar[2] || - minutesChar[1] != displayedChar[3] || secondsChar[0] != displayedChar[4] || secondsChar[1] != displayedChar[5]) { - displayedChar[0] = hoursChar[0]; - displayedChar[1] = hoursChar[1]; - displayedChar[2] = minutesChar[0]; - displayedChar[3] = minutesChar[1]; - displayedChar[4] = secondsChar[0]; - displayedChar[5] = secondsChar[1]; + if (displayedHour != hour || displayedMinute != minute || displayedSecond != second) { + displayedHour = hour; + displayedMinute = minute; + displayedSecond = second; if (settingsController.GetClockType() == Controllers::Settings::ClockType::H12) { - if (hoursChar[0] == '0') { - hoursChar[0] = ' '; + char ampmChar[3] = "AM"; + if (hour == 0) { + hour = 12; + } else if (hour == 12) { + ampmChar[0] = 'P'; + } else if (hour > 12) { + hour = hour - 12; + ampmChar[0] = 'P'; } + lv_label_set_text_fmt(label_time, "[TIME]#11cc55 %02d:%02d:%02d %s#", hour, minute, second, ampmChar); + } else { + lv_label_set_text_fmt(label_time, "[TIME]#11cc55 %02d:%02d:%02d", hour, minute, second); } - - char timeStr[42]; - sprintf(timeStr, - "[TIME]#11cc55 %c%c:%c%c:%c%c %s#", - hoursChar[0], - hoursChar[1], - minutesChar[0], - minutesChar[1], - secondsChar[0], - secondsChar[1], - ampmChar); - - lv_label_set_text(label_time, timeStr); } if ((year != currentYear) || (month != currentMonth) || (dayOfWeek != currentDayOfWeek) || (day != currentDay)) {