Improved smpltmr clock info to be not specialiset for bw clock.
parent
3809c91f1f
commit
ae84bc9a18
|
|
@ -217,57 +217,57 @@ function drawCursor(){
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function drawCmd(cmd){
|
function drawCmd(cmd){
|
||||||
var c = 0;
|
var c = 0;
|
||||||
var x = 10;
|
var x = 10;
|
||||||
var y = 28;
|
var y = 28;
|
||||||
|
|
||||||
g.setColor("#0f0");
|
g.setColor("#0f0");
|
||||||
g.drawString("bjs", x+c, y);
|
g.drawString("bjs", x+c, y);
|
||||||
c += g.stringWidth("bjs");
|
c += g.stringWidth("bjs");
|
||||||
|
|
||||||
g.setColor(g.theme.fg);
|
g.setColor(g.theme.fg);
|
||||||
g.drawString(":", x+c, y);
|
g.drawString(":", x+c, y);
|
||||||
c += g.stringWidth(":");
|
c += g.stringWidth(":");
|
||||||
|
|
||||||
g.setColor("#0ff");
|
g.setColor("#0ff");
|
||||||
g.drawString("$ ", x+c, y);
|
g.drawString("$ ", x+c, y);
|
||||||
c += g.stringWidth("$ ");
|
c += g.stringWidth("$ ");
|
||||||
|
|
||||||
g.setColor(g.theme.fg);
|
g.setColor(g.theme.fg);
|
||||||
g.drawString(cmd, x+c, y);
|
g.drawString(cmd, x+c, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
function twoD(str){
|
function twoD(str){
|
||||||
return ("0" + str).slice(-2)
|
return ("0" + str).slice(-2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
* Listener
|
* Listener
|
||||||
*/
|
*/
|
||||||
// timeout used to update every minute
|
// timeout used to update every minute
|
||||||
var drawTimeout;
|
var drawTimeout;
|
||||||
|
|
||||||
// schedule a draw for the next minute
|
// schedule a draw for the next minute
|
||||||
function queueDraw() {
|
function queueDraw() {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(function() {
|
drawTimeout = setTimeout(function() {
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
draw();
|
draw();
|
||||||
}, 60000 - (Date.now() % 60000));
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Stop updates when LCD is off, restart when on
|
// Stop updates when LCD is off, restart when on
|
||||||
Bangle.on('lcdPower',on=>{
|
Bangle.on('lcdPower',on=>{
|
||||||
if (on) {
|
if (on) {
|
||||||
draw(); // draw immediately, queue redraw
|
draw(); // draw immediately, queue redraw
|
||||||
} else { // stop draw timer
|
} else { // stop draw timer
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Bangle.on('lock', function(isLocked) {
|
Bangle.on('lock', function(isLocked) {
|
||||||
|
|
@ -275,97 +275,97 @@ Bangle.on('lock', function(isLocked) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Bangle.on('charging',function(charging) {
|
Bangle.on('charging',function(charging) {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
|
|
||||||
settings.menuPosX=0;
|
settings.menuPosX=0;
|
||||||
settings.menuPosY=0;
|
settings.menuPosY=0;
|
||||||
|
|
||||||
draw();
|
draw();
|
||||||
});
|
});
|
||||||
|
|
||||||
var lock_input = 0;
|
var lock_input = 0;
|
||||||
|
|
||||||
Bangle.on('touch', function(btn, e){
|
Bangle.on('touch', function(btn, e){
|
||||||
if(lock_input > 0){
|
if(lock_input > 0){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lock_input = 0;
|
lock_input = 0;
|
||||||
|
|
||||||
var left = parseInt(g.getWidth() * 0.22);
|
var left = parseInt(g.getWidth() * 0.22);
|
||||||
var right = g.getWidth() - left;
|
var right = g.getWidth() - left;
|
||||||
var upper = parseInt(g.getHeight() * 0.22) + 20;
|
var upper = parseInt(g.getHeight() * 0.22) + 20;
|
||||||
var lower = g.getHeight() - upper;
|
var lower = g.getHeight() - upper;
|
||||||
|
|
||||||
var is_upper = e.y < upper;
|
var is_upper = e.y < upper;
|
||||||
var is_lower = e.y > lower;
|
var is_lower = e.y > lower;
|
||||||
var is_left = e.x < left && !is_upper && !is_lower;
|
var is_left = e.x < left && !is_upper && !is_lower;
|
||||||
var is_right = e.x > right && !is_upper && !is_lower;
|
var is_right = e.x > right && !is_upper && !is_lower;
|
||||||
var is_center = !is_upper && !is_lower && !is_left && !is_right;
|
var is_center = !is_upper && !is_lower && !is_left && !is_right;
|
||||||
|
|
||||||
var oldYScreen = parseInt(settings.menuPosY/4);
|
var oldYScreen = parseInt(settings.menuPosY/4);
|
||||||
if(is_lower){
|
if(is_lower){
|
||||||
if(settings.menuPosY >= menu[settings.menuPosX].items.length-1){
|
if(settings.menuPosY >= menu[settings.menuPosX].items.length-1){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.buzz(40, 0.6);
|
Bangle.buzz(40, 0.6);
|
||||||
settings.menuPosY++;
|
settings.menuPosY++;
|
||||||
if(parseInt(settings.menuPosY/4) == oldYScreen){
|
if(parseInt(settings.menuPosY/4) == oldYScreen){
|
||||||
drawCursor();
|
drawCursor();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(is_upper){
|
if(is_upper){
|
||||||
if(e.y < 20){ // Reserved for widget clicks
|
if(e.y < 20){ // Reserved for widget clicks
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(settings.menuPosY <= 0){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Bangle.buzz(40, 0.6);
|
|
||||||
settings.menuPosY--;
|
|
||||||
settings.menuPosY = settings.menuPosY < 0 ? 0 : settings.menuPosY;
|
|
||||||
|
|
||||||
if(parseInt(settings.menuPosY/4) == oldYScreen){
|
|
||||||
drawCursor();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_right){
|
|
||||||
Bangle.buzz(40, 0.6);
|
|
||||||
settings.menuPosX = (settings.menuPosX+1) % menu.length;
|
|
||||||
settings.menuPosY = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_left){
|
|
||||||
Bangle.buzz(40, 0.6);
|
|
||||||
settings.menuPosY = 0;
|
|
||||||
settings.menuPosX = settings.menuPosX-1;
|
|
||||||
settings.menuPosX = settings.menuPosX < 0 ? menu.length-1 : settings.menuPosX;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(is_center){
|
|
||||||
if(!canRunMenuItem()){
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
runMenuItem();
|
|
||||||
}
|
|
||||||
|
|
||||||
draw();
|
if(settings.menuPosY <= 0){
|
||||||
});
|
return;
|
||||||
|
}
|
||||||
|
Bangle.buzz(40, 0.6);
|
||||||
|
settings.menuPosY--;
|
||||||
|
settings.menuPosY = settings.menuPosY < 0 ? 0 : settings.menuPosY;
|
||||||
|
|
||||||
E.on("kill", function(){
|
if(parseInt(settings.menuPosY/4) == oldYScreen){
|
||||||
try{
|
drawCursor();
|
||||||
storage.write(SETTINGS_FILE, settings);
|
return;
|
||||||
} catch(ex){
|
}
|
||||||
// If this fails, we still kill the app...
|
}
|
||||||
}
|
|
||||||
});
|
if(is_right){
|
||||||
|
Bangle.buzz(40, 0.6);
|
||||||
|
settings.menuPosX = (settings.menuPosX+1) % menu.length;
|
||||||
|
settings.menuPosY = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(is_left){
|
||||||
|
Bangle.buzz(40, 0.6);
|
||||||
|
settings.menuPosY = 0;
|
||||||
|
settings.menuPosX = settings.menuPosX-1;
|
||||||
|
settings.menuPosX = settings.menuPosX < 0 ? menu.length-1 : settings.menuPosX;
|
||||||
|
}
|
||||||
|
|
||||||
|
if(is_center){
|
||||||
|
if(!canRunMenuItem()){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
runMenuItem();
|
||||||
|
}
|
||||||
|
|
||||||
|
draw();
|
||||||
|
});
|
||||||
|
|
||||||
|
E.on("kill", function(){
|
||||||
|
try{
|
||||||
|
storage.write(SETTINGS_FILE, settings);
|
||||||
|
} catch(ex){
|
||||||
|
// If this fails, we still kill the app...
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/************************************************
|
/************************************************
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
0.01: Release
|
0.01: Release
|
||||||
0.02: Rewrite with new interface
|
0.02: Rewrite with new interface
|
||||||
0.03: Added clock infos to expose timer functionality to clocks.
|
0.03: Added clock infos to expose timer functionality to clocks.
|
||||||
|
0.04: Improvements of clock infos.
|
||||||
|
|
@ -69,7 +69,7 @@
|
||||||
img: img,
|
img: img,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: "Timer",
|
name: null,
|
||||||
get: () => ({ text: getAlarmMinutesText() + (isAlarmEnabled() ? " min" : ""), img: null}),
|
get: () => ({ text: getAlarmMinutesText() + (isAlarmEnabled() ? " min" : ""), img: null}),
|
||||||
show: function() { smpltmrItems.items[0].emit("redraw"); },
|
show: function() { smpltmrItems.items[0].emit("redraw"); },
|
||||||
hide: function () {},
|
hide: function () {},
|
||||||
|
|
@ -78,17 +78,18 @@
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
var offsets = [+1,+5,-1,-5];
|
var offsets = [+5,-5];
|
||||||
offsets.forEach((o, i) => {
|
offsets.forEach((o, i) => {
|
||||||
smpltmrItems.items = smpltmrItems.items.concat({
|
smpltmrItems.items = smpltmrItems.items.concat({
|
||||||
name: String(o),
|
name: null,
|
||||||
get: () => ({ text: getAlarmMinutesText() + " (" + (o > 0 ? "+" : "") + o + ")", img: null}),
|
get: () => ({ text: (o > 0 ? "+" : "") + o + " min.", img: null}),
|
||||||
show: function() { smpltmrItems.items[i+1].emit("redraw"); },
|
show: function() { smpltmrItems.items[i+1].emit("redraw"); },
|
||||||
hide: function () {},
|
hide: function () {},
|
||||||
run: function() {
|
run: function() {
|
||||||
if(o > 0) increaseAlarm(o);
|
if(o > 0) increaseAlarm(o);
|
||||||
else decreaseAlarm(Math.abs(o));
|
else decreaseAlarm(Math.abs(o));
|
||||||
this.show();
|
this.show();
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "smpltmr",
|
"id": "smpltmr",
|
||||||
"name": "Simple Timer",
|
"name": "Simple Timer",
|
||||||
"shortName": "Simple Timer",
|
"shortName": "Simple Timer",
|
||||||
"version": "0.03",
|
"version": "0.04",
|
||||||
"description": "A very simple app to start a timer.",
|
"description": "A very simple app to start a timer.",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "tool,alarm,timer",
|
"tags": "tool,alarm,timer",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue