Update src/displayapp/screens/WatchFaceTerminal.cpp

Co-authored-by: NeroBurner <pyro4hell@gmail.com>
This commit is contained in:
Марков Дмитрий 2022-02-02 09:11:46 +05:00 committed by GitHub
parent 4d850281be
commit 6959d8c043
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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<int>(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<int>(second));
auto batteryValue = static_cast<uint8_t>(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)) {