commit
7a236dd9d3
|
|
@ -7,3 +7,4 @@
|
||||||
0.25: Fixed a bug that would let widgets change the color of the clock.
|
0.25: Fixed a bug that would let widgets change the color of the clock.
|
||||||
0.26: Time formatted to locale
|
0.26: Time formatted to locale
|
||||||
0.27: Fixed the timing code, which sometimes did not update for one minute
|
0.27: Fixed the timing code, which sometimes did not update for one minute
|
||||||
|
0.28: More config options for cleaner look, enabled fast loading
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
||||||
|
# New Features:
|
||||||
|
- Fast load! (only works if your launcher uses widgets)
|
||||||
|
- widgets, date and weekday are individually configurable
|
||||||
|
- you can hide widgets, date and weekday for a cleaner look when the watch is locked
|
||||||
|
|
||||||
|
Contact me for bug reports or feature requests: ContourClock@gmx.de
|
||||||
|
|
@ -1,35 +1,64 @@
|
||||||
var digits = [];
|
{
|
||||||
var drawTimeout;
|
let digits = [];
|
||||||
var fontName="";
|
let drawTimeout;
|
||||||
var settings = require('Storage').readJSON("contourclock.json", true) || {};
|
let fontName="";
|
||||||
if (settings.fontIndex==undefined) {
|
let settings = require('Storage').readJSON("contourclock.json", true) || {};
|
||||||
|
if (settings.fontIndex==undefined) {
|
||||||
settings.fontIndex=0;
|
settings.fontIndex=0;
|
||||||
require('Storage').writeJSON("myapp.json", settings);
|
settings.widgets=true;
|
||||||
}
|
settings.hide=false;
|
||||||
|
settings.weekday=true;
|
||||||
|
settings.hideWhenLocked=false;
|
||||||
|
settings.date=true; require('Storage').writeJSON("myapp.json", settings);
|
||||||
|
}
|
||||||
|
|
||||||
function queueDraw() {
|
let queueDraw = function() {
|
||||||
setTimeout(function() {
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
drawTimeout = setTimeout(function() {
|
||||||
|
drawTimeout = undefined;
|
||||||
draw();
|
draw();
|
||||||
queueDraw();
|
queueDraw();
|
||||||
}, 60000 - (Date.now() % 60000));
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
};
|
||||||
|
|
||||||
function draw() {
|
let draw = function() {
|
||||||
var date = new Date();
|
var date = new Date();
|
||||||
// Draw day of the week
|
// Draw day of the week
|
||||||
g.reset();
|
g.reset();
|
||||||
|
if ((!settings.hideWhenLocked) || (!Bangle.isLocked())) {
|
||||||
|
// Draw day of the week
|
||||||
g.setFont("Teletext10x18Ascii");
|
g.setFont("Teletext10x18Ascii");
|
||||||
g.clearRect(0,138,g.getWidth()-1,176);
|
g.clearRect(0,138,g.getWidth()-1,176);
|
||||||
g.setFontAlign(0,1).drawString(require("locale").dow(date).toUpperCase(),g.getWidth()/2,g.getHeight()-18);
|
if (settings.weekday) g.setFontAlign(0,1).drawString(require("locale").dow(date).toUpperCase(),g.getWidth()/2,g.getHeight()-18);
|
||||||
// Draw Date
|
// Draw Date
|
||||||
g.setFontAlign(0,1).drawString(require('locale').date(new Date(),1),g.getWidth()/2,g.getHeight());
|
if (settings.date) g.setFontAlign(0,1).drawString(require('locale').date(new Date(),1),g.getWidth()/2,g.getHeight());
|
||||||
|
}
|
||||||
require('contourclock').drawClock(settings.fontIndex);
|
require('contourclock').drawClock(settings.fontIndex);
|
||||||
}
|
};
|
||||||
|
|
||||||
require("FontTeletext10x18Ascii").add(Graphics);
|
require("FontTeletext10x18Ascii").add(Graphics);
|
||||||
Bangle.setUI("clock");
|
g.clear();
|
||||||
g.clear();
|
|
||||||
Bangle.loadWidgets();
|
draw();
|
||||||
Bangle.drawWidgets();
|
if (settings.hideWhenLocked) Bangle.on('lock', function (locked) {
|
||||||
queueDraw();
|
if (!locked) require("widget_utils").show();
|
||||||
draw();
|
else {
|
||||||
|
g.clear();
|
||||||
|
if (settings.hide) require("widget_utils").swipeOn();
|
||||||
|
else require("widget_utils").hide();
|
||||||
|
}
|
||||||
|
draw();
|
||||||
|
});
|
||||||
|
Bangle.setUI({mode:"clock", remove:function() {
|
||||||
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
if (settings.widgets && settings.hide) require("widget_utils").show();
|
||||||
|
g.reset();
|
||||||
|
g.clear();
|
||||||
|
}});
|
||||||
|
if (settings.widgets) {
|
||||||
|
Bangle.loadWidgets();
|
||||||
|
if (settings.hide) require("widget_utils").swipeOn();
|
||||||
|
else Bangle.drawWidgets();
|
||||||
|
}
|
||||||
|
queueDraw();
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,73 @@
|
||||||
(function(back) {
|
(function(back) {
|
||||||
Bangle.removeAllListeners('drag');
|
|
||||||
Bangle.setUI("");
|
Bangle.setUI("");
|
||||||
var settings = require('Storage').readJSON('contourclock.json', true) || {};
|
var 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.hide=false;
|
||||||
|
settings.weekday=true;
|
||||||
|
settings.date=true;
|
||||||
|
settings.hideWhenLocked=false;
|
||||||
require('Storage').writeJSON("myapp.json", settings);
|
require('Storage').writeJSON("myapp.json", settings);
|
||||||
}
|
}
|
||||||
|
function mainMenu() {
|
||||||
|
E.showMenu({
|
||||||
|
"" : { "title" : "ContourClock" },
|
||||||
|
"< Back" : () => back(),
|
||||||
|
'Widgets': {
|
||||||
|
value: (settings.widgets !== undefined ? settings.widgets : true),
|
||||||
|
onchange : v => {settings.widgets=v; require('Storage').writeJSON('contourclock.json', settings);}
|
||||||
|
},
|
||||||
|
'hide Widgets': {
|
||||||
|
value: (settings.hide !== undefined ? settings.hide : false),
|
||||||
|
onchange : v => {settings.hide=v; require('Storage').writeJSON('contourclock.json', settings);}
|
||||||
|
},
|
||||||
|
'Weekday': {
|
||||||
|
value: (settings.weekday !== undefined ? settings.weekday : true),
|
||||||
|
onchange : v => {settings.weekday=v; require('Storage').writeJSON('contourclock.json', settings);}
|
||||||
|
},
|
||||||
|
'Date': {
|
||||||
|
value: (settings.date !== undefined ? settings.date : true),
|
||||||
|
onchange : v => {settings.date=v; require('Storage').writeJSON('contourclock.json', settings);}
|
||||||
|
},
|
||||||
|
'Hide when locked': {
|
||||||
|
value: (settings.hideWhenLocked !== undefined ? settings.hideWhenLocked : false),
|
||||||
|
onchange : v => {settings.hideWhenLocked=v; require('Storage').writeJSON('contourclock.json', settings);}
|
||||||
|
},
|
||||||
|
'set Font': () => fontMenu()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
function fontMenu() {
|
||||||
|
Bangle.setUI("");
|
||||||
savedIndex=settings.fontIndex;
|
savedIndex=settings.fontIndex;
|
||||||
saveListener = setWatch(function() { //save changes and return to settings menu
|
saveListener = setWatch(function() { //save changes and return to settings menu
|
||||||
require('Storage').writeJSON('contourclock.json', settings);
|
require('Storage').writeJSON('contourclock.json', settings);
|
||||||
Bangle.removeAllListeners('swipe');
|
Bangle.removeAllListeners('swipe');
|
||||||
Bangle.removeAllListeners('lock');
|
Bangle.removeAllListeners('lock');
|
||||||
clearWatch(saveListener);
|
mainMenu();
|
||||||
g.clear();
|
|
||||||
back();
|
|
||||||
}, BTN, { repeat:false, edge:'falling' });
|
}, BTN, { repeat:false, edge:'falling' });
|
||||||
lockListener = Bangle.on('lock', function () { //discard changes and return to clock
|
lockListener = Bangle.on('lock', function () { //discard changes and return to clock
|
||||||
settings.fontIndex=savedIndex;
|
settings.fontIndex=savedIndex;
|
||||||
require('Storage').writeJSON('contourclock.json', settings);
|
require('Storage').writeJSON('contourclock.json', settings);
|
||||||
Bangle.removeAllListeners('swipe');
|
Bangle.removeAllListeners('swipe');
|
||||||
Bangle.removeAllListeners('lock');
|
Bangle.removeAllListeners('lock');
|
||||||
clearWatch(saveListener);
|
mainMenu();
|
||||||
g.clear();
|
|
||||||
load();
|
|
||||||
});
|
});
|
||||||
swipeListener = Bangle.on('swipe', function (direction) {
|
swipeListener = Bangle.on('swipe', function (direction) {
|
||||||
var fontName = require('contourclock').drawClock(settings.fontIndex+direction);
|
var fontName = require('contourclock').drawClock(settings.fontIndex+direction);
|
||||||
if (fontName) {
|
if (fontName) {
|
||||||
settings.fontIndex+=direction;
|
settings.fontIndex+=direction;
|
||||||
g.clearRect(0,0,g.getWidth()-1,16);
|
g.clearRect(0,g.getHeight()-36,g.getWidth()-1,g.getHeight()-36+16);
|
||||||
g.setFont('6x8:2x2').setFontAlign(0,-1).drawString(fontName,g.getWidth()/2,0);
|
g.setFont('6x8:2x2').setFontAlign(0,-1).drawString(fontName,g.getWidth()/2,g.getHeight()-36);
|
||||||
} else {
|
} else {
|
||||||
require('contourclock').drawClock(settings.fontIndex);
|
require('contourclock').drawClock(settings.fontIndex);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
g.reset();
|
g.reset();
|
||||||
g.clear();
|
g.clearRect(0,24,g.getWidth()-1,g.getHeight()-1);
|
||||||
g.setFont('6x8:2x2').setFontAlign(0,-1);
|
g.setFont('6x8:2x2').setFontAlign(0,-1);
|
||||||
g.drawString(require('contourclock').drawClock(settings.fontIndex),g.getWidth()/2,0);
|
g.drawString(require('contourclock').drawClock(settings.fontIndex),g.getWidth()/2,g.getHeight()-36);
|
||||||
g.drawString('Swipe - change',g.getWidth()/2,g.getHeight()-36);
|
g.drawString('Button to save',g.getWidth()/2,g.getHeight()-18);
|
||||||
g.drawString('BTN - save',g.getWidth()/2,g.getHeight()-18);
|
}
|
||||||
|
mainMenu();
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
{ "id": "contourclock",
|
{ "id": "contourclock",
|
||||||
"name": "Contour Clock",
|
"name": "Contour Clock",
|
||||||
"shortName" : "Contour Clock",
|
"shortName" : "Contour Clock",
|
||||||
"version":"0.27",
|
"version":"0.28",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"description": "A Minimalist clockface with large Digits. Now with more fonts!",
|
"readme": "README.md",
|
||||||
|
"description": "A Minimalist clockface with large Digits.",
|
||||||
"screenshots" : [{"url":"cc-screenshot-1.png"},{"url":"cc-screenshot-2.png"}],
|
"screenshots" : [{"url":"cc-screenshot-1.png"},{"url":"cc-screenshot-2.png"}],
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
"custom": "custom.html",
|
"custom": "custom.html",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue