Fixes broken suffix
parent
c971a7cd0e
commit
123cd79a5d
|
|
@ -30,15 +30,16 @@ Graphics.prototype.setFontRighteous = function () {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Load and set default settings
|
// Load and set default appSettings
|
||||||
let teletextColors = ["#000", "#f00", "#0f0", "#ff0", "#00f", "#f0f", "#0ff", "#fff"];
|
let teletextColors = ["#000", "#f00", "#0f0", "#ff0", "#00f", "#f0f", "#0ff", "#fff"];
|
||||||
let settings = Object.assign({
|
let appSettings = Object.assign({
|
||||||
color: teletextColors[6],
|
color: teletextColors[6],
|
||||||
theme: 'light',
|
theme: 'light',
|
||||||
enableSuffix: true,
|
enableSuffix: true,
|
||||||
enableLeadingZero: false,
|
enableLeadingZero: false,
|
||||||
}, require('Storage').readJSON("shadowclk.json", true) || {});
|
}, require('Storage').readJSON("shadowclk.json", true) || {});
|
||||||
|
|
||||||
|
// Draw the time and date
|
||||||
(function() {
|
(function() {
|
||||||
let drawTimeout;
|
let drawTimeout;
|
||||||
|
|
||||||
|
|
@ -52,55 +53,47 @@ let settings = Object.assign({
|
||||||
var is12HourFormat = settings["12hour"];
|
var is12HourFormat = settings["12hour"];
|
||||||
var hour = date.getHours();
|
var hour = date.getHours();
|
||||||
var minutes = String(date.getMinutes()).padStart(2, '0');
|
var minutes = String(date.getMinutes()).padStart(2, '0');
|
||||||
|
|
||||||
// Handle 12-hour format
|
// Handle 12-hour format
|
||||||
if (is12HourFormat) {
|
if (is12HourFormat) {
|
||||||
hour = hour % 12 || 12; // Convert 0 to 12 for 12-hour format
|
hour = hour % 12 || 12; // Convert 0 to 12 for 12-hour format
|
||||||
} else {
|
} else if (appSettings.enableLeadingZero) {
|
||||||
// If the leading zero option is enabled and hour is less than 10, add leading zero
|
hour = hour.toString().padStart(2, '0');
|
||||||
if (appSettings.enableLeadingZero && hour < 10) {
|
|
||||||
hour = '0' + hour;
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var timeStr = hour + ':' + minutes;
|
var timeStr = hour + ':' + minutes;
|
||||||
|
|
||||||
// Handle midnight in 12-hour format specifically
|
// Handle midnight in 12-hour format specifically
|
||||||
if (is12HourFormat && hour === 0) {
|
if (is12HourFormat && hour === 0) {
|
||||||
timeStr = '12' + timeStr.substring(2);
|
timeStr = '12' + timeStr.substring(2);
|
||||||
}
|
}
|
||||||
|
// Print time in selected color and then the outline
|
||||||
var color = appSettings.color;
|
var color = appSettings.color;
|
||||||
g.setFontAlign(0, 0).setFont("LondrinaSolid").setColor(color).drawString(timeStr, x - 1, y);
|
g.setFontAlign(0, 0).setFont("LondrinaSolid").setColor(color).drawString(timeStr, x - 1, y);
|
||||||
g.reset().setFontAlign(0, 0).setFont("LondrinaShadow").drawString(timeStr, x - 1, y);
|
g.reset().setFontAlign(0, 0).setFont("LondrinaShadow").drawString(timeStr, x - 1, y);
|
||||||
|
// Get full date and handle formatting
|
||||||
var locale = require("locale");
|
var locale = require("locale");
|
||||||
var dayOfMonth = date.getDate();
|
var dayOfMonth = date.getDate();
|
||||||
var month = locale.month(date, 1).slice(0, 1).toUpperCase() + locale.month(date, 1).slice(1).toLowerCase();
|
var month = locale.month(date, 1).slice(0, 1).toUpperCase() + locale.month(date, 1).slice(1).toLowerCase();
|
||||||
var year = date.getFullYear();
|
var year = date.getFullYear();
|
||||||
var dayOfMonthStr = dayOfMonth.toString();
|
var dayOfMonthStr = dayOfMonth.toString();
|
||||||
if (settings.enableSuffix) {
|
if (appSettings.enableSuffix) {
|
||||||
|
var suffix = "";
|
||||||
if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) {
|
if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) {
|
||||||
dayOfMonthStr += "st";
|
suffix = "st";
|
||||||
} else if (dayOfMonth === 2 || dayOfMonth === 22) {
|
} else if (dayOfMonth === 2 || dayOfMonth === 22) {
|
||||||
dayOfMonthStr += "nd";
|
suffix = "nd";
|
||||||
} else if (dayOfMonth === 3 || dayOfMonth === 23) {
|
} else if (dayOfMonth === 3 || dayOfMonth === 23) {
|
||||||
dayOfMonthStr += "rd";
|
suffix = "rd";
|
||||||
} else {
|
} else {
|
||||||
dayOfMonthStr += "th";
|
suffix = "th";
|
||||||
}
|
}
|
||||||
|
dayOfMonthStr += suffix;
|
||||||
}
|
}
|
||||||
var dayOfWeek = locale.dow(date, 0).slice(0, 1).toUpperCase() + locale.dow(date, 0).slice(1).toLowerCase();
|
var dayOfWeek = locale.dow(date, 0).slice(0, 1).toUpperCase() + locale.dow(date, 0).slice(1).toLowerCase();
|
||||||
var dateStr = month + " " + dayOfMonthStr + ", " + year + "\n" + dayOfWeek;
|
var dateStr = month + " " + dayOfMonthStr + ", " + year + "\n" + dayOfWeek;
|
||||||
g.setFontAlign(0, 0).setFont("Righteous").drawString(dateStr, x, y + 56);
|
g.setFontAlign(0, 0).setFont("Righteous").drawString(dateStr, x, y + 56);
|
||||||
|
// Time interval set to redraw every 60 seconds
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(() => {
|
drawTimeout = setTimeout(draw, 60000 - (Date.now() % 60000));
|
||||||
drawTimeout = undefined;
|
|
||||||
draw();
|
|
||||||
}, 60000 - (Date.now() % 60000));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.setUI({
|
Bangle.setUI({
|
||||||
mode: "clock",
|
mode: "clock",
|
||||||
remove: function() {
|
remove: function() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue