Red torch: like torch but red :D
parent
d62dec7dcb
commit
c341947e7d
13
apps.json
13
apps.json
|
|
@ -1244,6 +1244,19 @@
|
||||||
{"name":"torch.img","url":"app-icon.js","evaluate":true}
|
{"name":"torch.img","url":"app-icon.js","evaluate":true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{ "id": "rtorch",
|
||||||
|
"name": "Red Torch",
|
||||||
|
"shortName":"RedTorch",
|
||||||
|
"icon": "app.png",
|
||||||
|
"version":"0.01",
|
||||||
|
"description": "Turns screen RED to help you see in the dark without breaking your night vision. Select from the launcher or press BTN3,BTN1,BTN3,BTN1 quickly to start when in any app that shows widgets",
|
||||||
|
"tags": "tool,torch",
|
||||||
|
"storage": [
|
||||||
|
{"name":"rtorch.app.js","url":"app.js"},
|
||||||
|
{"name":"rtorch.wid.js","url":"widget.js"},
|
||||||
|
{"name":"rtorch.img","url":"app-icon.js","evaluate":true}
|
||||||
|
]
|
||||||
|
},
|
||||||
{ "id": "wohrm",
|
{ "id": "wohrm",
|
||||||
"name": "Workout HRM",
|
"name": "Workout HRM",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
0.01: Cloning torch and making it red :D
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
require("heatshrink").decompress(atob("mEw4UA///oP4gH+t9TCQ1VAAYLpgILunoLK/4LJgf/6oLIh//+oLK/oLIhapBBZEqBYIwDBYu/GAgLE1WvGAgLF1YwEBQcC1WqGAgLGGAgLDhQLBGAdQBYwwCBQgLDGASlFlQLC3/8BYoIBGAXwBQkCFgILC4AuFBYeAFw2v/wLBBQqNCBYOgBQp1B1/qCw5dDFoxdEBQwuBAAOoBQykCHI4uXgZPBFxEP/QuJn5/CFw7DBLpILB9QuHEYP//QuHHYP//wuHKYL0HGAoLJn/8BZMP+ALJgfABRA="))
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
Bangle.setLCDPower(1);
|
||||||
|
Bangle.setLCDTimeout(0);
|
||||||
|
g.reset();
|
||||||
|
c = 1;
|
||||||
|
function setColor(delta){
|
||||||
|
c+=delta;
|
||||||
|
c = Math.max(c,0);
|
||||||
|
c = Math.min(c,2);
|
||||||
|
if (c<1){
|
||||||
|
g.setColor(c,0,0);
|
||||||
|
}else{
|
||||||
|
g.setColor(1,c-1,c-1);
|
||||||
|
}
|
||||||
|
g.fillRect(0,0,g.getWidth(),g.getHeight());
|
||||||
|
}
|
||||||
|
setColor(0)
|
||||||
|
// BTN1 light up toward white
|
||||||
|
// BTN3 light down to red
|
||||||
|
// BTN2 to reset
|
||||||
|
setWatch(()=>setColor(0.1), BTN1, { repeat:true, edge:"rising", debounce: 50 });
|
||||||
|
setWatch(()=>load(), BTN2);
|
||||||
|
setWatch(()=>setColor(-0.1), BTN3, { repeat:true, edge:"rising", debounce: 50 });
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
|
|
@ -0,0 +1,26 @@
|
||||||
|
(function() {
|
||||||
|
var clickTimes = [];
|
||||||
|
var clickPattern = "";
|
||||||
|
var TAPS = 4; // number of taps
|
||||||
|
var PERIOD = 1; // seconds
|
||||||
|
|
||||||
|
// we don't actually create/draw a widget here at all...
|
||||||
|
Bangle.on("lcdPower",function(on) {
|
||||||
|
// First click (that turns LCD on) isn't given to
|
||||||
|
// setWatch, so handle it here
|
||||||
|
if (!on) return;
|
||||||
|
clickTimes=[getTime()];
|
||||||
|
clickPattern="x";
|
||||||
|
});
|
||||||
|
function tap(e,c) {
|
||||||
|
clickPattern = clickPattern.substr(-3)+c;
|
||||||
|
while (clickTimes.length>=TAPS) clickTimes.shift();
|
||||||
|
clickTimes.push(e.time);
|
||||||
|
var clickPeriod = e.time-clickTimes[0];
|
||||||
|
if (clickPeriod<PERIOD && clickPattern.match(/.131/)) {
|
||||||
|
load("rtorch.app.js");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setWatch(function(e) { tap(e,"1"); }, BTN1, {repeat:true, edge:"rising"});
|
||||||
|
setWatch(function(e) { tap(e,"3"); }, BTN3, {repeat:true, edge:"rising"});
|
||||||
|
})();
|
||||||
Loading…
Reference in New Issue