From b3da3806b26dd31030f27242e03b37a2cae6b0e1 Mon Sep 17 00:00:00 2001 From: Purple-Tentacle <59914607+Purple-Tentacle@users.noreply.github.com> Date: Tue, 31 Mar 2020 23:17:46 +0200 Subject: [PATCH] Add files via upload --- apps/daysl/app-icon.js | 1 + apps/daysl/app.js | 67 +++++++++++++++++++++++++++++++++++++++++ apps/daysl/app.png | Bin 0 -> 287 bytes apps/daysl/widget.js | 33 ++++++++++++++++++++ 4 files changed, 101 insertions(+) create mode 100644 apps/daysl/app-icon.js create mode 100644 apps/daysl/app.js create mode 100644 apps/daysl/app.png create mode 100644 apps/daysl/widget.js 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 0000000000000000000000000000000000000000..703e5c366c7bf7ad21000427fcda514c599770e9 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCwj^(N7l!{JxM1({$v}}So-U3d z8I5me#&R7p5NO#Sa({0_`o~!QM>A{tzh7V%b-AVTw>V}dKa+0mG|6diL}q0?|5iBP z?M>|3y6qb})+aM(sNkBS}c2hbYH*&({pXdV!AtoieEjy zqOicMf4Y&u%DNxM7cMo5I9lls3Wq0ILOq^~M<+Qy%=WYrg*P-hA)%`}SKf zFXYTmuzqy+mSp7bO8tk{3Cvk@K(_T3JM{9dDCAqQkZ f><_XV7){G>e{|lg^4F>a=syNeS3j3^P6<)Rx literal 0 HcmV?d00001 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