Show the current date as a widget in tha Patriot clock

pull/2742/head
Gordon Williams 2023-05-10 10:29:00 +01:00
parent 9541d3a076
commit cccce9318e
3 changed files with 27 additions and 8 deletions

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Show the date inside the widget bar

View File

@ -14,7 +14,7 @@ Graphics.prototype.setFontAudiowide = function() {
let options = require("Storage").readJSON("patriotclk.opts",1)||{}; let options = require("Storage").readJSON("patriotclk.opts",1)||{};
// timeout used to update every minute // timeout used to update every minute
let drawTimeout; let drawTimeout, widgetTimeout;
// draw everything // draw everything
let draw = function() { let draw = function() {
@ -55,17 +55,35 @@ Graphics.prototype.setFontAudiowide = function() {
}, 60000 - (Date.now() % 60000)); }, 60000 - (Date.now() % 60000));
}; };
// Clear the screen once, at startup
g.clear();
// draw immediately at first, queue update
draw();
// Show launcher when middle button pressed // Show launcher when middle button pressed
Bangle.setUI({mode:"clock", remove:function() { //f ree memory Bangle.setUI({mode:"clock", remove:function() { //f ree memory
if (drawTimeout) clearTimeout(drawTimeout); if (drawTimeout) clearTimeout(drawTimeout);
if (widgetTimeout) clearTimeout(widgetTimeout);
require("widget_utils").show();
var e = WIDGETS["patriot"];
g.reset().clearRect(e.x,e.y,e.x+63,e.y+23);
delete WIDGETS["patriot"];
delete Graphics.prototype.setFontAudiowide; delete Graphics.prototype.setFontAudiowide;
require("widget_utils").cleanup();
}}); }});
// Load widgets (make them swipeable) // Load widgets (make them swipeable)
Bangle.loadWidgets(); Bangle.loadWidgets();
WIDGETS["patriot"] = {
area:"tl",
width: 64, // how wide is the widget? You can change this and call Bangle.drawWidgets() to re-layout
draw : function(e) {
g.reset().clearRect(e.x,e.y,e.x+63,e.y+23);
var d = new Date();
g.setFont("6x8").setFontAlign(-1,0).drawString(require("locale").dow(d,0), e.x+2, e.y+8);
g.setFont("6x8").setFontAlign(-1,0).drawString(require("locale").date(d).trim(), e.x+2, e.y+16);
widgetTimeout = setTimeout(function() { // redraw every hour (it's just easier that working out timezones)
widgetTimeout = undefined;
WIDGETS["patriot"].draw(WIDGETS["patriot"]);
}, 3600000 - (Date.now() % 3600000));
}
};
require("widget_utils").swipeOn(); require("widget_utils").swipeOn();
// Clear the screen once, at startup
g.clear();
// draw immediately at first, queue update
draw();
} }

View File

@ -1,8 +1,8 @@
{ "id": "patriotclk", { "id": "patriotclk",
"name": "Patriotic Clock", "name": "Patriotic Clock",
"shortName":"Patriot", "shortName":"Patriot",
"version":"0.01", "version":"0.02",
"description": "Show your Patriotism with your Country's flag as a clock face (configurable)", "description": "Show your Patriotism with your Country's flag as a clock face (configurable). Swipe down to show widgets and date.",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"type": "clock", "type": "clock",