forked from FOSS/BangleApps
NCEU Start Sequence
parent
21274595f3
commit
ad1d27463b
17
apps.json
17
apps.json
|
@ -219,6 +219,23 @@
|
||||||
{"name":"*mouse","url":"animals-mouse.js","evaluate":true}
|
{"name":"*mouse","url":"animals-mouse.js","evaluate":true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "start",
|
||||||
|
"name": "NCEU Startup",
|
||||||
|
"icon": "start.png",
|
||||||
|
"description": "NodeConfEU 2019 Startup Sequence",
|
||||||
|
"tags": "start",
|
||||||
|
"storage": [
|
||||||
|
{"name":"+start","url":"start.json"},
|
||||||
|
{"name":"-start","url":"start.js"},
|
||||||
|
{"name":"*start","url":"start-icon.js"},
|
||||||
|
{"name":"*bangle","url":"start-bangle.js"},
|
||||||
|
{"name":"*nceu","url":"start-nceu.js"},
|
||||||
|
{"name":"*nfr","url":"start-nfr.js"},
|
||||||
|
{"name":"*nodew","url":"start-nodew.js"},
|
||||||
|
{"name":"*tf","url":"start-tf.js"}
|
||||||
|
]
|
||||||
|
},
|
||||||
{ "id": "qrcode",
|
{ "id": "qrcode",
|
||||||
"name": "Custom QR Code",
|
"name": "Custom QR Code",
|
||||||
"icon": "qrcode.png",
|
"icon": "qrcode.png",
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
E.setTimeZone(1);
|
E.setTimeZone(1);
|
||||||
E.setFlags({pretokenise:1});
|
E.setFlags({pretokenise:1});
|
||||||
|
var startapp;
|
||||||
|
try {
|
||||||
|
startapp = s.readJSON('+start');
|
||||||
|
} catch (e) {}
|
||||||
|
if (startapp) {
|
||||||
|
eval(require("Storage").read(startapp.src));
|
||||||
|
} else {
|
||||||
setWatch(function() {
|
setWatch(function() {
|
||||||
Bangle.setLCDMode("direct");
|
Bangle.setLCDMode("direct");
|
||||||
g.clear();
|
g.clear();
|
||||||
|
@ -8,6 +15,7 @@ setWatch(function() {
|
||||||
Bangle.removeAllListeners();
|
Bangle.removeAllListeners();
|
||||||
|
|
||||||
var s = require("Storage");
|
var s = require("Storage");
|
||||||
|
|
||||||
apps = s.list().filter(a=>a[0]=='+').map(app=>{
|
apps = s.list().filter(a=>a[0]=='+').map(app=>{
|
||||||
try { return s.readJSON(app); }
|
try { return s.readJSON(app); }
|
||||||
catch (e) { return {name:"DEAD: "+app.substr(1)} }
|
catch (e) { return {name:"DEAD: "+app.substr(1)} }
|
||||||
|
@ -75,6 +83,7 @@ var WIDGETS={};
|
||||||
function drawWidgets() {
|
function drawWidgets() {
|
||||||
Object.keys(WIDGETS).forEach(k=>WIDGETS[k].draw());
|
Object.keys(WIDGETS).forEach(k=>WIDGETS[k].draw());
|
||||||
}
|
}
|
||||||
|
|
||||||
var clockApp = require("Storage").list().filter(a=>a[0]=='+').map(app=>{
|
var clockApp = require("Storage").list().filter(a=>a[0]=='+').map(app=>{
|
||||||
try { return require("Storage").readJSON(app); }
|
try { return require("Storage").readJSON(app); }
|
||||||
catch (e) {}
|
catch (e) {}
|
||||||
|
@ -84,3 +93,4 @@ else E.showMessage("No Clock Found");
|
||||||
delete clockApp;
|
delete clockApp;
|
||||||
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
|
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
|
||||||
setTimeout(drawWidgets,100);
|
setTimeout(drawWidgets,100);
|
||||||
|
}
|
||||||
|
|
126
apps/start.js
126
apps/start.js
|
@ -36,74 +36,6 @@ function welcome() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function logos() {
|
|
||||||
var logos = [
|
|
||||||
['nfr', 20, 90, ()=>{}],
|
|
||||||
['nceu', 20, 90, ()=>{
|
|
||||||
g.setFont("6x8", 2);
|
|
||||||
g.setColor(0,0,1);
|
|
||||||
g.drawString('Welcome To', 160, 110);
|
|
||||||
g.drawString('NodeConfEU', 160, 130);
|
|
||||||
g.drawString('2019', 200, 150);
|
|
||||||
}],
|
|
||||||
['bangle', 70, 90, ()=>{}],
|
|
||||||
['nodew', 20, 90, ()=>{}],
|
|
||||||
['tf', 5, 60, ()=>{}],
|
|
||||||
];
|
|
||||||
function next() {
|
|
||||||
var n = logos.shift();
|
|
||||||
var img = require("Storage").read("*"+n[0]);
|
|
||||||
g.clear();
|
|
||||||
g.drawImage(img, n[1], n[2]);
|
|
||||||
n[3]();
|
|
||||||
g.drawImage(c([0,8,12,14,255,14,12,8]),d,116);
|
|
||||||
logos.push(n);
|
|
||||||
}
|
|
||||||
return new Promise((res) => {
|
|
||||||
next();
|
|
||||||
var i = setInterval(next, 2000);
|
|
||||||
setWatch(() => {
|
|
||||||
clearInterval(i);
|
|
||||||
clearWatch();
|
|
||||||
res();
|
|
||||||
}, BTN2, {repeat:false});var g = Graphics.getInstance();
|
|
||||||
|
|
||||||
const d = g.getWidth() - 18;
|
|
||||||
function c(a) {
|
|
||||||
return {
|
|
||||||
width: 8,
|
|
||||||
height: a.length,
|
|
||||||
bpp: 1,
|
|
||||||
buffer: (new Uint8Array(a)).buffer
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
function welcome() {
|
|
||||||
var welcomes = [
|
|
||||||
'Welcome',
|
|
||||||
'Failte',
|
|
||||||
'Bienvenue',
|
|
||||||
'Willkommen',
|
|
||||||
'Bienvenido'
|
|
||||||
];
|
|
||||||
function next() {
|
|
||||||
var n = welcomes.shift();
|
|
||||||
E.showMessage(n);
|
|
||||||
g.drawImage(c([0,8,12,14,255,14,12,8]),d,116);
|
|
||||||
welcomes.push(n);
|
|
||||||
}
|
|
||||||
return new Promise((res) => {
|
|
||||||
next();
|
|
||||||
var i = setInterval(next, 2000);
|
|
||||||
setWatch(() => {
|
|
||||||
clearInterval(i);
|
|
||||||
clearWatch();
|
|
||||||
E.showMessage('Loading...');
|
|
||||||
res();
|
|
||||||
}, BTN2, {repeat:false});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function logos() {
|
function logos() {
|
||||||
var logos = [
|
var logos = [
|
||||||
['nfr', 20, 90, ()=>{}],
|
['nfr', 20, 90, ()=>{}],
|
||||||
|
@ -183,51 +115,18 @@ function info() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
welcome()
|
function cleanup() {
|
||||||
.then(logos)
|
E.showMessage('Loading...');
|
||||||
.then(info)
|
var s = require('Storage');
|
||||||
.then(()=>E.showMessage('done'));
|
s.erase('*nfr');
|
||||||
|
s.erase('*nceu');
|
||||||
|
s.erase('*bangle');
|
||||||
});
|
s.erase('*nodew');
|
||||||
}
|
s.erase('*tf');
|
||||||
|
s.erase('+start');
|
||||||
function info() {
|
s.erase('-start');
|
||||||
var slides = [
|
s.erase('*start');
|
||||||
() => {
|
return Promise.resolve();
|
||||||
g.clear();
|
|
||||||
g.setFont('6x8',2);
|
|
||||||
g.setColor(1,1,1);
|
|
||||||
g.drawString('Visit', 120, 80);
|
|
||||||
g.drawString('nodewatch.dev', 120, 110);
|
|
||||||
g.drawString('for info', 115, 140);
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
g.clear();
|
|
||||||
g.setFont('6x8',2);
|
|
||||||
g.setColor(1,1,1);
|
|
||||||
g.drawString('Remember', 120, 80);
|
|
||||||
g.drawString('to charge', 120, 110);
|
|
||||||
g.drawString('your watch!', 125, 140);
|
|
||||||
},
|
|
||||||
() => {
|
|
||||||
}
|
|
||||||
];
|
|
||||||
function next() {
|
|
||||||
var n = slides.shift();
|
|
||||||
n();
|
|
||||||
g.drawImage(c([0,8,12,14,255,14,12,8]),d,116);
|
|
||||||
slides.push(n);
|
|
||||||
}
|
|
||||||
return new Promise((res) => {
|
|
||||||
next();
|
|
||||||
var i = setInterval(next, 2000);
|
|
||||||
setWatch(()=>{
|
|
||||||
clearInterval(i);
|
|
||||||
clearWatch();
|
|
||||||
res();
|
|
||||||
}, BTN2, {repeat:false});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
welcome()
|
welcome()
|
||||||
|
@ -235,4 +134,3 @@ welcome()
|
||||||
.then(info)
|
.then(info)
|
||||||
.then(cleanup)
|
.then(cleanup)
|
||||||
.then(load);
|
.then(load);
|
||||||
|
|
||||||
|
|
|
@ -2,12 +2,5 @@
|
||||||
"name": "Start",
|
"name": "Start",
|
||||||
"type": "app",
|
"type": "app",
|
||||||
"icon": "*start",
|
"icon": "*start",
|
||||||
"src": "-start",
|
"src": "-start"
|
||||||
"files": [
|
|
||||||
"*bangle",
|
|
||||||
"*nceu",
|
|
||||||
"*nfr",
|
|
||||||
"*nodew",
|
|
||||||
"*tf"
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue