Update app.js
parent
84510e46cc
commit
8c7369a423
|
|
@ -1,14 +1,17 @@
|
||||||
{
|
{
|
||||||
|
const interval = 60000;
|
||||||
let digits = [];
|
let digits = [];
|
||||||
let drawTimeout;
|
let drawTimeout;
|
||||||
|
let extrasTimeout;
|
||||||
let fontName="";
|
let fontName="";
|
||||||
let settings = require('Storage').readJSON("contourclock.json", true) || {};
|
let settings = require('Storage').readJSON("contourclock.json", true) || {};
|
||||||
if (settings.fontIndex==undefined) {
|
if (settings.fontIndex==undefined) {
|
||||||
settings.fontIndex=0;
|
settings.fontIndex=0;
|
||||||
settings.widgets=true;
|
settings.widgets=true;
|
||||||
settings.hide=false;
|
|
||||||
settings.weekday=true;
|
settings.weekday=true;
|
||||||
settings.hideWhenLocked=false;
|
settings.hideWhenLocked=false;
|
||||||
|
settings.tapToShow=false;
|
||||||
|
settings.twistToShow=false;
|
||||||
settings.date=true;
|
settings.date=true;
|
||||||
require('Storage').writeJSON("contourclock.json", settings);
|
require('Storage').writeJSON("contourclock.json", settings);
|
||||||
}
|
}
|
||||||
|
|
@ -20,52 +23,76 @@
|
||||||
}
|
}
|
||||||
require("Storage").erase("contourclock-install.json");
|
require("Storage").erase("contourclock-install.json");
|
||||||
}
|
}
|
||||||
|
require("FontTeletext10x18Ascii").add(Graphics);
|
||||||
|
|
||||||
let queueDraw = function() {
|
let queueDraw = function() {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(function() {
|
drawTimeout = setTimeout(draw, interval - (Date.now() % interval));
|
||||||
drawTimeout = undefined;
|
};
|
||||||
draw();
|
let drawExtras = function() { //draw date, day of the week and widgets
|
||||||
queueDraw();
|
let date = new Date();
|
||||||
}, 60000 - (Date.now() % 60000));
|
g.setFont("Teletext10x18Ascii");
|
||||||
|
if (settings.weekday)
|
||||||
|
g.setFontAlign(0,1).drawString(require("locale").dow(date).toUpperCase(),g.getWidth()/2,g.getHeight()-18);
|
||||||
|
// Draw Date
|
||||||
|
if (settings.date)
|
||||||
|
g.setFontAlign(0,1).drawString(require('locale').date(date,1),g.getWidth()/2,g.getHeight());
|
||||||
|
require("widget_utils").show();
|
||||||
|
};
|
||||||
|
let hideExtras = function() {
|
||||||
|
g.clearRect(0,138,g.getWidth()-1,176);
|
||||||
|
require("widget_utils").hide();
|
||||||
};
|
};
|
||||||
let draw = function() {
|
let draw = function() {
|
||||||
var date = new Date();
|
//drawTimeout = undefined;
|
||||||
// Draw day of the week
|
let date = new Date();
|
||||||
|
print ("drawing time at:" +date.getHours()+":"+date.getMinutes()+":"+date.getSeconds());
|
||||||
g.reset();
|
g.reset();
|
||||||
if ((!settings.hideWhenLocked) || (!Bangle.isLocked())) {
|
if ((!settings.hideWhenLocked) || (!Bangle.isLocked())) drawExtras();
|
||||||
// Draw day of the week
|
else require("widget_utils").hide();
|
||||||
g.setFont("Teletext10x18Ascii");
|
require('contourclock').drawClock(settings.fontIndex);
|
||||||
g.clearRect(0,138,g.getWidth()-1,176);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
if (settings.weekday) g.setFontAlign(0,1).drawString(require("locale").dow(date).toUpperCase(),g.getWidth()/2,g.getHeight()-18);
|
drawTimeout = setTimeout(draw, interval - (Date.now() % interval));
|
||||||
// Draw Date
|
};
|
||||||
if (settings.date) g.setFontAlign(0,1).drawString(require('locale').date(new Date(),1),g.getWidth()/2,g.getHeight());
|
|
||||||
|
let onLock = locked => {
|
||||||
|
if (!locked) {
|
||||||
|
require("widget_utils").show();
|
||||||
|
drawExtras();
|
||||||
} else {
|
} else {
|
||||||
require("widget_utils").hide();
|
require("widget_utils").hide();
|
||||||
|
hideExtras();
|
||||||
}
|
}
|
||||||
require('contourclock').drawClock(settings.fontIndex);
|
|
||||||
};
|
};
|
||||||
require("FontTeletext10x18Ascii").add(Graphics);
|
let onTap = d => {
|
||||||
g.clear();
|
if (d.double) {
|
||||||
draw();
|
drawExtras();
|
||||||
if (settings.hideWhenLocked) Bangle.on('lock', function (locked) {
|
if (extrasTimeout) clearTimeout(extrasTimeout);
|
||||||
if (!locked) require("widget_utils").show();
|
extrasTimeout = setTimeout(hideExtras, 5000);
|
||||||
else {
|
|
||||||
g.clear();
|
|
||||||
if (settings.hide) require("widget_utils").swipeOn();
|
|
||||||
else require("widget_utils").hide();
|
|
||||||
}
|
}
|
||||||
draw();
|
};
|
||||||
});
|
let onTwist = () => {
|
||||||
|
drawExtras();
|
||||||
|
if (extrasTimeout) clearTimeout(extrasTimeout);
|
||||||
|
extrasTimeout = setTimeout(hideExtras, 5000);
|
||||||
|
};
|
||||||
|
if (settings.hideWhenLocked) {
|
||||||
|
Bangle.on('lock', onLock);
|
||||||
|
if (settings.tapToShow) Bangle.on('tap', onTap);
|
||||||
|
if (settings.twistToShow) Bangle.on('twist', onTwist);
|
||||||
|
}
|
||||||
Bangle.setUI({mode:"clock", remove:function() {
|
Bangle.setUI({mode:"clock", remove:function() {
|
||||||
|
if (onLock) Bangle.removeListener('lock',onLock);
|
||||||
|
if (onTap) Bangle.removeListener('tap', onTap);
|
||||||
|
if (onTwist) Bangle.removeListener('twist',onTwist);
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
if (settings.widgets && settings.hide) require("widget_utils").show();
|
if (extrasTimeout) clearTimeout(extrasTimeout);
|
||||||
|
if (settings.hideWhenLocked) require("widget_utils").show();
|
||||||
g.reset();
|
g.reset();
|
||||||
g.clear();
|
g.clear();
|
||||||
}});
|
}});
|
||||||
if (settings.widgets) {
|
g.clear();
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
if (settings.hide) require("widget_utils").swipeOn();
|
Bangle.drawWidgets();
|
||||||
else Bangle.drawWidgets();
|
draw();
|
||||||
}
|
|
||||||
queueDraw();
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue