BangleApps/apps/gbmusic/boot.js

38 lines
1.1 KiB
JavaScript
Raw Normal View History

setTimeout( // make other boot code run first, so we override e.g. android.boot.js GB
() => {
const APP = global.__FILE__==="gbmusic.app.js",
a = !!(require("Storage").readJSON("gbmusic.json", 1) || {}).autoStart;
let s, i; // state, info
/**
* Save current song and check if we want to load the gbmusic app
*
* Only runs while other apps are loaded
*/
function check() {
if (s!=="play" || !i || !a || !Bangle.CLOCK) return; // only launch app if we know which song we are playing, and autoLoad is enabled
delete (i.t);
// store info and launch music app
require("Storage").writeJSON("gbmusic.load.json", {
state: s,
info: i,
});
load("gbmusic.app.js");
}
global.GB = (_GB => e => {
// we eat music events!
switch(e.t) {
case "musicinfo":
i = e;
return APP ? info(e) : check();
case "musicstate":
s = e.state;
return APP ? state(e) : check();
default:
// pass on other events
if (_GB) setTimeout(_GB, 0, e);
}
})(global.GB);
}, 1);