E.setFlags({pretokenise:1}); var startapp; try { startapp = require('Storage').readJSON('+start'); } catch (e) {} if (startapp) { eval(require("Storage").read(startapp.src)); } else { setWatch(function displayMenu() { Bangle.setLCDOffset(0); // remove notifications Bangle.setLCDMode("direct"); g.clear(); // attempt to remove any currently-running code clearInterval(); clearWatch(); Bangle.removeAllListeners(); NRF.removeAllListeners(); Bluetooth.removeAllListeners(); E.removeAllListeners(); delete GB; delete WIDGETS; delete WIDGETPOS; delete drawWidgets; var s = require("Storage"); var apps = s.list().filter(a=>a[0]=='+').map(app=>{ try { return s.readJSON(app); } catch (e) { return {name:"DEAD: "+app.substr(1)} } }).filter(app=>app.type=="app" || app.type=="clock" || !app.type); apps.sort((a,b)=>{ var n=(0|a.sortorder)-(0|b.sortorder); if (n) return n; // do sortorder first if (a.nameb.name) return 1; return 0; }); var selected = 0; var menuScroll = 0; var menuShowing = false; function drawMenu() { g.setFont("6x8",2); g.setFontAlign(-1,0); var n = 3; if (selected>=n+menuScroll) menuScroll = 1+selected-n; if (selectedn+menuScroll) g.fillPoly([120,239,100,219,140,219]); else g.clearRect(100,219,140,239); for (var i=0;i0) { selected--; drawMenu(); } }, BTN1, {repeat:true}); setWatch(function() { if (selected+1a[0]=='=').forEach(widget=>eval(require("Storage").read(widget))); setTimeout(drawWidgets,100); // load clock if specified var clockApp = settings.clock; if (clockApp) clockApp = require("Storage").read(clockApp) if (!clockApp) { var clockApps = require("Storage").list().filter(a=>a[0]=='+').map(app=>{ try { return require("Storage").readJSON(app); } catch (e) {} }).filter(app=>app.type=="clock").sort((a, b) => a.sortorder - b.sortorder); if (clockApps && clockApps.length > 0) clockApp = require("Storage").read(clockApps[0].src); delete clockApps; } if (clockApp) eval(clockApp); else E.showMessage("No Clock Found"); delete clockApp; }