fixed incorrect hour drawn
parent
117a7aa552
commit
d2692aa36c
|
|
@ -41,23 +41,25 @@ const minutesByQuarterString = {
|
||||||
|
|
||||||
const width = g.getWidth();
|
const width = g.getWidth();
|
||||||
const height = g.getHeight();
|
const height = g.getHeight();
|
||||||
let idTimeout = null;
|
let drawTimeout;
|
||||||
|
|
||||||
const getNearestHour = (hours, minutes) => {
|
const getNearestHour = (hours, minutes) => {
|
||||||
if (minutes > 49){
|
if (minutes > 54) {
|
||||||
return hours + 1;
|
return hours + 1;
|
||||||
}
|
}
|
||||||
return hours;
|
return hours;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getApproximatePrefix = (minutes, minutesByQuarter) => {
|
const getApproximatePrefix = (minutes, minutesByQuarter) => {
|
||||||
if (minutes === minutesByQuarter){
|
if (minutes === minutesByQuarter) {
|
||||||
return " exactly";
|
return " exactly";
|
||||||
} else if (minutesByQuarter - minutes < -5){
|
} else if (minutesByQuarter - minutes < -54) {
|
||||||
|
return " nearly";
|
||||||
|
} else if (minutesByQuarter - minutes < -5) {
|
||||||
return " after";
|
return " after";
|
||||||
} else if (minutesByQuarter - minutes < 0){
|
} else if (minutesByQuarter - minutes < 0) {
|
||||||
return " just after";
|
return " just after";
|
||||||
} else if (minutesByQuarter - minutes > 5){
|
} else if (minutesByQuarter - minutes > 5) {
|
||||||
return " before";
|
return " before";
|
||||||
} else {
|
} else {
|
||||||
return " nearly";
|
return " nearly";
|
||||||
|
|
@ -65,51 +67,61 @@ const getApproximatePrefix = (minutes, minutesByQuarter) => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const getMinutesByQuarter = minutes => {
|
const getMinutesByQuarter = minutes => {
|
||||||
if (minutes < 10){
|
if (minutes < 10) {
|
||||||
return 0;
|
return 0;
|
||||||
} else if (minutes < 20) {
|
} else if (minutes < 20) {
|
||||||
return 15;
|
return 15;
|
||||||
} else if (minutes < 40){
|
} else if (minutes < 40) {
|
||||||
return 30;
|
return 30;
|
||||||
} else {
|
} else if (minutes < 55) {
|
||||||
return 45;
|
return 45;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// schedule a draw for the next minute
|
||||||
|
function queueDraw() {
|
||||||
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
drawTimeout = setTimeout(function () {
|
||||||
|
drawTimeout = undefined;
|
||||||
|
drawTime();
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
}
|
||||||
|
|
||||||
const drawTime = () => {
|
const drawTime = () => {
|
||||||
//Grab time vars
|
//Grab time vars
|
||||||
var date = Date();
|
var date = Date();
|
||||||
var hour = date.getHours();
|
var hour = date.getHours();
|
||||||
var minutes = date.getMinutes();
|
var minutes = date.getMinutes();
|
||||||
var minutesByQuarter = getMinutesByQuarter(minutes);
|
var minutesByQuarter = getMinutesByQuarter(minutes);
|
||||||
|
|
||||||
//reset graphics
|
//reset graphics
|
||||||
g.clear();
|
g.clear();
|
||||||
g.reset();
|
g.reset();
|
||||||
|
|
||||||
//Build watch face
|
//Build watch face
|
||||||
g.setBgColor(0,0,0);
|
g.setBgColor(0, 0, 0);
|
||||||
g.clearRect(0, 0, width, height);
|
g.clearRect(0, 0, width, height);
|
||||||
g.setFont("Vector", 22);
|
g.setFont("Vector", 22);
|
||||||
g.setColor(1,1,1);
|
g.setColor(1, 1, 1);
|
||||||
g.drawString("It's" + getApproximatePrefix(minutes, minutesByQuarter), (width - g.stringWidth("It's" + getApproximatePrefix(minutes, minutesByQuarter)))/2, height * 0.25, false);
|
g.drawString("It's" + getApproximatePrefix(minutes, minutesByQuarter), (width - g.stringWidth("It's" + getApproximatePrefix(minutes, minutesByQuarter))) / 2, height * 0.25, false);
|
||||||
g.setFont("Vector", 30);
|
g.setFont("Vector", 30);
|
||||||
g.drawString(numbers[getNearestHour(hour, minutes)], (width - g.stringWidth(numbers[getNearestHour(hour, minutes)]))/2, height * 0.45, false);
|
g.drawString(numbers[getNearestHour(hour, minutes)], (width - g.stringWidth(numbers[getNearestHour(hour, minutes)])) / 2, height * 0.45, false);
|
||||||
g.setFont("Vector", 22);
|
g.setFont("Vector", 22);
|
||||||
g.drawString(minutesByQuarterString[minutesByQuarter], (width - g.stringWidth(minutesByQuarterString[minutesByQuarter]))/2, height * 0.7, false);
|
g.drawString(minutesByQuarterString[minutesByQuarter], (width - g.stringWidth(minutesByQuarterString[minutesByQuarter])) / 2, height * 0.7, false);
|
||||||
let d = Date();
|
|
||||||
let t = d.getSeconds()*1000 + d.getMilliseconds();
|
queueDraw();
|
||||||
idTimeout = setTimeout(drawTime, 60000 - t);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
g.clear();
|
g.clear();
|
||||||
drawTime();
|
drawTime();
|
||||||
|
|
||||||
Bangle.on('lcdPower', function(on){
|
Bangle.on('lcdPower', function (on) {
|
||||||
if (on) {
|
if (on) {
|
||||||
drawTime();
|
drawTime();
|
||||||
} else {
|
} else {
|
||||||
if(idTimeout) {
|
if (idTimeout) {
|
||||||
clearTimeout(idTimeout);
|
clearTimeout(idTimeout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue