diff --git a/apps/daysl/app-icon.js b/apps/daysl/app-icon.js new file mode 100644 index 000000000..485478c58 --- /dev/null +++ b/apps/daysl/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwMB//D/4CgwHDFYPDgICBAoQCB/4CKADmAAgcBIARCCAqQAXF/4v24CtDgYFR")) \ No newline at end of file diff --git a/apps/daysl/app.js b/apps/daysl/app.js new file mode 100644 index 000000000..56f85e615 --- /dev/null +++ b/apps/daysl/app.js @@ -0,0 +1,67 @@ +g.clear(); +Bangle.loadWidgets(); +Bangle.drawWidgets(); + +const storage = require('Storage'); +let settings; + +function updateSettings() { + storage.write('daysleft.json', settings); +} + +function resetSettings() { + settings = { + day : 17, + month : 6, + year: 1981 + }; + updateSettings(); +} + +settings = storage.readJSON('daysleft.json',1); +if (!settings) resetSettings(); + +function showMenu() { + const datemenu = { + '': { + 'title': 'Set Date', + 'predraw': function() { + datemenu.Date.value = settings.day; + datemenu.Month.value = settings.month; + datemenu.Year.value = settings.year; + } + }, + 'Day': { + value: settings.day, + min: 1, + max: 31, + step: 1, + onchange: v => { + settings.day = v; + updateSettings(); + } + }, + 'Month': { + value: settings.month, + min: 1, + max: 12, + step: 1, + onchange: v => { + settings.month = v; + updateSettings(); + } + }, + 'Year': { + value: settings.year, + step: 1, + onchange: v => { + settings.year = v; + updateSettings(); + } + } + }; + datemenu['-Exit-'] = ()=>{load();}; + return E.showMenu(datemenu); +} + +showMenu(); \ No newline at end of file diff --git a/apps/daysl/app.png b/apps/daysl/app.png new file mode 100644 index 000000000..703e5c366 Binary files /dev/null and b/apps/daysl/app.png differ diff --git a/apps/daysl/widget.js b/apps/daysl/widget.js new file mode 100644 index 000000000..5a3c170c2 --- /dev/null +++ b/apps/daysl/widget.js @@ -0,0 +1,33 @@ +const storage = require('Storage'); +let settings; + +function updateSettings() { + storage.write('daysleft.json', settings); + } + + function resetSettings() { + settings = { + day : 17, + month : 6, + year: 1981 + }; + updateSettings(); + } + + settings = storage.readJSON('daysleft.json',1); + if (!settings) resetSettings(); + + var dd = settings.day+1, + mm = settings.month-1, + yy = settings.year; + + const oneDay = 24 * 60 * 60 * 1000; // hours*minutes*seconds*milliseconds + const targetDate = new Date(yy, mm, dd); + const today = new Date(); + const diffDays = Math.round(Math.abs((targetDate - today) / oneDay)); + +WIDGETS["daysl"]={area:"tl",width:40,draw:function(){ + + g.setFont("6x8", 1); + g.drawString(diffDays,this.x+12,this.y+12); +}}; \ No newline at end of file