mirror of https://github.com/espruino/BangleApps
Widgets can now be made visible by swiping down (#2196)
parent
0a285a80f1
commit
d90959d2f9
|
@ -1,3 +1,4 @@
|
||||||
0.01: AdvCasio first version
|
0.01: AdvCasio first version
|
||||||
0.02: Remove un-needed fonts to improve memory usage
|
0.02: Remove un-needed fonts to improve memory usage
|
||||||
0.03: Tell clock widgets to hide.
|
0.03: Tell clock widgets to hide.
|
||||||
|
0.04: Swipe down to see widgets, step counter now just uses getHealthStatus
|
||||||
|
|
|
@ -1,304 +1,160 @@
|
||||||
const storage = require('Storage');
|
const storage = require('Storage');
|
||||||
|
|
||||||
|
require("Font6x12").add(Graphics);
|
||||||
require("Font8x12").add(Graphics);
|
require("Font8x12").add(Graphics);
|
||||||
require("Font7x11Numeric7Seg").add(Graphics);
|
require("Font7x11Numeric7Seg").add(Graphics);
|
||||||
|
|
||||||
function bigThenSmall(big, small, x, y) {
|
function bigThenSmall(big, small, x, y) {
|
||||||
g.setFont("7x11Numeric7Seg", 2);
|
g.setFont("7x11Numeric7Seg", 2);
|
||||||
g.drawString(big, x, y);
|
g.drawString(big, x, y);
|
||||||
x += g.stringWidth(big);
|
x += g.stringWidth(big);
|
||||||
g.setFont("8x12");
|
g.setFont("8x12");
|
||||||
g.drawString(small, x, y);
|
g.drawString(small, x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getClockBg() {
|
|
||||||
return require("heatshrink").decompress(atob("icVgf/ABv8v4DBx4CB+PH8F+nAGB48fwEHBwXjxwqBuPH//+nAGBBwIjCAwI2D/wGBgIyDI4QGDwAGBHYX/4AGBn4UFEYQpCEYYpCAAMfMhP4FIgABwJ8OEBIA=="));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// sun, cloud, rain, thunder
|
|
||||||
var iconsWeather = [
|
|
||||||
require("heatshrink").decompress(atob("i8Ugf/ACcfA434BA/AAwsAv0/8F/BAcDwEHHIpECFI3wn4GC/gOC+PAGoXggEH/+ODQgXBGQv/wAbBBAnguEACIn4gfxI4JXFwJmG/kPBA3jSynw")), require("heatshrink").decompress(atob("i0Ugf/AEXggIGE/0A/kPBAmBCIN/A4Y8CgAICwEHBYoUE/ACCj4sDn4CBC4YyDwBrDCgYA3A")), require("heatshrink").decompress(atob("h8Rgf/AAuBAgf8h4FDCwM/AgPA/gFC/0HgEBBQPwnEfDoWAg4jC/gOCAoQmBAQXjFIV//8f//4IQP4j/+gAIB4EcHII4CAoI+DLQJXF/AA==")), require("heatshrink").decompress(atob("h0Pgf/AA8fAYX+g4EC8EBAgXADAeAgAECgAOC/wrCDQIOBBYfwgAaC/kAn4EB/EAv4aDHAeBIg38"))
|
|
||||||
];
|
|
||||||
|
|
||||||
|
|
||||||
function getBackgroundImage() {
|
function getBackgroundImage() {
|
||||||
return require("heatshrink").decompress(atob("2GwghC/AH4A/AH4AMl////wAwURiQECgUzmcxBQQCBiYUBBARW+LAcCAgcPBYgFBkAIFG7kQiAKIiIKBgISOAAJBD//zKQfxK4vyAoMQCgn/ERBhBBYR5BAwR1DB4Y2DgYPCGIQRCCQcP+EfGJI0FEgRSCGAQCCX4JXCkAhDn4lI+HyK4YWBFIPzJYJXHAIMSK4cwJ4I3CAYMzA4cfcRMBdwytBK4i6FK4IUCMgYAEGIITBK4cCaAPwgJXB+fzK4sAgYtCK5EfA4pXR+AmBaIZYCK6KcCAwSjDEYXx/8vK5QRCK4kPK6cDkJREBIMBfgIrDK5svUAIQBAwIaCK4w+DK4YGBK7IaBboIuCK4gFCJwYBBiBCCCgQhHHYgGDgArBK5IGDAYMgJ4Xwn53BGgLVDmBXKAAinDLpJXCAAYhHR4YODn/wJIPyTYZXDE4RXD+ECNILIDAIPwj4xIAAYNCR4fyVIYLFA4KEBBAglKAGUCmcykEAiMQBIURBYM/BgIUEgcz+bTKAH4A/AH4A/AHP/AGY1d+BWCh5X/LCpW1K74fgG/5X/AH5X/K9Bg/K63wK/5XWgBX/K6pWBK/5XU+BWBh5J/K6auCK/5XTVwRfFAH5XOKwRX/K6auDh5I/K6SuDWP5XSVwYADWX6vXK/5XQWQpW/K6auDJP5XWV35XT+Cu/K7Ku/K65H/K6hW/K7EPI35XWIv5XWAH5X/K/4A/K/5X/K/4A/K9cAAH4A/AFzz/AHRX/K/5X/AH5X/K/5X/AH5X/K/4A/K/5X/K/4A/K/5X/K/4A/K/5X/AH5X/K/5X/AH5X/K/5X/AH5X/K/4A/K/5X/K/4A/K/5X/K/4A/K/5X/AH5X/K/5X/AH5X/K/5X/AH5X/K/4A/K/5X/K/4A/K/5X/K/4A/K/5X/AH5X/K/5X/AH5X/K/5X/AH5X/K/4A/K/5X/K/4A/K/5X/K/4A/K/5X/AH5X/K/5X/AH5X/K/40VAH4A/AFzLb+EPDm4AdK/5X/K+PwgEAHy5X9HgMAK/5XXH6xX/H65X/K/5X/K98AK7sAgBX3DjBWFO644DSTHwGzJXED4RXaDoLqcK7weWDIQcXK8I6YK77KXK4o8DPbY6ZK7qvDDy6vdR7JXDh60EDyw5BAIRXYSwjMbAgIhUDwJZCHwJX0GwjRWNwIAEHSwBCDSpXFH4pXzDS5XIEARXVSYbQEDaYzCK+6vcKaxXNDypX9HwQkbHS40COSpXKK2A6CHgRXcPIhX0SwpXYVuQ6EgBX/K644YODBXkSDJX/K/5X/DtRX6gA3YOkRWbLDZX4KwYA/AG8F5vdABncKH4AGhpRJAYXNAgPAKP4AF5vMJwoDBAQIKE6BR/AAvc5vO9wAB7oCB9veAoPcAoPcK+kwh8AgcA98An//gH/+sD//wCISgBJ4IABAYpaC9vdK4UP/9AAQNQr/zgHwEYNQFYQAh+EP+FegH+A4QBCMQIKBAAPNK4yxBA4RXCV4YZBE4IjChwCDmApCK8VdmHggHgFYf0SQJXE5nMK4anCAoYHC5pXCaQJXBop+BqAGEK7f/AAQeEKwQrBqCtDAILjBCQfNK4JTCAYZXF7qvD//gV4S2DgEFFIYAECgIACMC8PKoIBB8n1K4ivF5vc5xOCWYZbBAYavHU4RXCr4pEAEMDfoNQGoMEgEwYQPwAoIBBAAPM5ipC7oDCVIIAE7hXCD4SdBiEP+gGBgihCFYIAz5pXBAAnN7oIB7nc5gOBK4QA/K4pNCWgSpCBInNK/4AGhncKIStC7gCBA4QAC4BR/AAysCABZW/AHwA="));
|
return require("heatshrink").decompress(atob("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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getRocketSequences() {
|
||||||
|
return {
|
||||||
|
1: require("heatshrink").decompress(atob("qFGwkCkQAiiEBEkUgKQhPhE8ogCE8YhCiQoEE7pKEPIgncTQ4neEwpQCPoh1eJYYwCJ7QmHKAh1hZIpOjPAUBJ0ZQCTzEhExZ1lPAZ1kKDQmOJ65O2E65OPOy5O2E64mPOyxO/J2wnPJyx2QJ35O/J2khE0p2POq52PEy4nOiQnlOrEhiSfMJrEggQnLJzB1CPBQmZkInMEzBQDPBImbPBR1ZEoRMCZYImhgQgEE0BzFKAgmaDwLDFKAbqdYQwHBOrcgDgLBFJrsiiRNGYbpLBY4Ymhd4omkkUhE0pQEEwUBJjrHBd4QmCdzoiBDwYrCPLyZHF4QnagQeCE8UgJwYniJwgnIOzwfFO0wJCJzMQE4gyFEzR2FBQombkInDQI4AakAnBTYS+ZE5BMDE0LEES7YnLE0R3FAEQA=")),
|
||||||
|
2: require("heatshrink").decompress(atob("qFGwkCkQAikMAgIliKYon/AA0gEAQniEwIhCAgYndEIjqBE8CaGKogmgKAp1fKAgncExBQBBQR1gKAp7BJ0IndExR4CE0idaOpYnbExqeYJxxPYEx0BJ0x2XExx2XJ20QE6xONJi5OPGwJOlBwLFkLoLFlBwJOkOwJOlE4JOkTjBOOE/52Pdi5OPEy7FnE5wmXE5xOZT5gmYEoMiiB1lgR4KTLAkDPBJ1WIAYDDKA4mWJwchDwYEDTjQiDJQh4GYLAhHFosSJy6OCTIxaEEywbBKYwjEEzMgUQxQFBogAURwZOGOjTKJdTYnOEryfHE0JQEfIpQgYQMAgJLeAgrtfTI4ndgSaFE4h0bdQkSZQpOfEAgIBO0AnEdrh2FJAb1EdbInEBIpObOwhOEEzYnFXzZ2HE4QlhE4QlDFMKcDYooniO0QnDT0YnCE0ciA")),
|
||||||
|
3: require("heatshrink").decompress(atob("qFGwkEogAjiMUEkVAKYgnhPYolgOQIniOYZ4FOcLqBE8CaGKojpgKAomhEYUQE7gmHKAIxCE0QkCPYR1gZIgnZExR4CJ0idmE7ZONYzImNgEUJ0p3YJRh2ZJJwnXOpQhBdkpaETsMEGQhOhE7jFLUYpOfTzgmKE4hOiE4hOigEUJ0rvCEywnPEqx2OTjBOOE7ImOTsqeZE5zFYoJOmT5kBJzEAih4LdK5mBAQInKOqoYDEgR4JEypHDEYbxJOq5ABdgZ7CEzZOEJQgnGihOYEIzJFTionCKYxWGEy9ADAYnGUIYmWog/EdBFAEy7KIKAwnjKwLqWE5pMeT48CVQpQfgMjKEtEiAnfEQJQCgJSCTcB6FJzkEdYcUE8FAdQghDOzonKTjh2EZAidcDoInHJzodBOwx/BE8JxcOwsAOwQmhJgSXDObwnFEwUUO0LFGE8aeiE4YmiokQE0tE")),
|
||||||
|
4: require("heatshrink").decompress(atob("qFGwkCkQAjiMSEkRTFE/4AGkMAgQCBE8MgEIYEDE7whDdQIngTQxVEE0ChFTjxQFE7jnFKAgxCOsBQFZgJ1gE7wmKPAROkTrTEHGAwnYiBHJFAaeXOoyXBEQZPac5AsFgJOhAoh2XJwwnFKoROdE4J9GJzwnIiQmVkInPAC0QE5AJFE64mHY5DFdE4SBEYr5JDJ0hKDJ0jCZJxoACgInmKLAmOTq5OOEy5OPTsxOYE5wmXO5wlYkAnMOqshiRNCgR4LOC8CkJCCEzxHDAgYnJOqpAEDoZ4HEyodDEQpQHdCsQOwwFHEyzoCPYzJGEy0gEwaZGA4acVEQSjHKAomXkQYEYAwlZeRKYDE8gjCYa7zJEwcCkImfKAb4FAD0hdTh4LgRSBOcR0CJz0gYYrrgN4QnEYrxOEE4bEeiAnGF4J2idL6VDE8ohBE0gnFE0J0BE4QGBiROgdIQABgJ2hJoTtjYgZSEE8ScgE4omikUQTcQADA=")),
|
||||||
|
5: require("heatshrink").decompress(atob("qFGwkCkQAikMAgIliKYonhiAnjkEATIIniEwIhCAgYndEIhQFYUZVEE0BQFOr5QEeQQmiKAL1DOr5QEE7ROCDgZVEAoInZDwchFQQoDPAJOdEQYrBdrZFDOYwncEJDsDVIpOXgJxEE4pObEAgGFgJOaE48BaIhOZJ5ZObY5ROcE441CE6xOGPAwtCJzpGCJ0hHDkI1DJzwoEJzInLFg52dUo5O/J35OzE54mWOx4mXJxx1XE54mXkUhExkSJzCfMOrAlBPBiZXgQDBAQQmgJgh4JOqoYEFYwmaDoZzEFgh1YDgkiiAFEKAroXJJAGFiQmVkCNDTIz5EJy57HKAomXkQYEJoqaYeRadEJrAnJEQUAgJPiAoYmeT4cCkAnBE0BKCJkT1EkDCeJYYiDOkLDFFL5wBE4guCPDhEBEwQiDY70CkInDiQnCJzkhOwhKDdzp2Idb4nEE0B0Bdo4niE0J0CeYhOhgESUYYnidsgnEE0KeCE0gnDE0ciA")),
|
||||||
|
6: require("heatshrink").decompress(atob("qFGwkCkQA/ABEgKQZPhEwgABEsAoGJkBxBE8JKEAowAbJIhQEgLDiPooAdKA4ncTZAndSwhQEFoInaJQkSKAwlZdgwnfSgYADE4h1ZDwInlcggnIOzAdCE8i7EY5J3XDgYhGd4pOZEI52bSYwGCOAJ2bYIodEOzZOFFAjFcEwwAIE6xOHABBO/J34ndEyx2PJ00BJ00SJ0p1XE54mXOxxO/J5wmYgQnMOrB2BPBgkWiJ1CPBbBYAYR4KiTAXRwIrFTjgZDJYZ4IEyoiEIwrDcEJJQFOqwiBDARxFFwgmXkAYDEogsBF4QmXEQJ7GUYYkBEzDKJAgYmdEQbKFEzonEKYgngJwgmfZggmjKQghgiBRGkBzeTgUikJRgc47LDErTnDEAkQJzkCJwYnEJzonEJIaddOwhJEJzgdBE4hYEJzieJADgnEE0KUCXzoAGkJLEiB2hOgQDBT0TsDT0YmlE4YmjkQ=")),
|
||||||
|
7: require("heatshrink").decompress(atob("qFGwkCkQAhkIpBiQlhkBSEJ8InlEIIoFE7whEE8pQFE7giBJQoneI4MCTYhQDE7YdCYYondEQYnEPwZ1bE5BQCJzonHkR2ZEAkBE4pNBE7zHFYrYhFUgonaXAQeEEwruZEYcgiROHJ7AfDAwxOeAAURiAmHE65HIOzwmOJ35OPE6xOPO35O/J35O/J1gnPEyx2PEy5OOOq5OnE5xOYO5omZgJQMJrQnLiQnagR4JOq5nCDgZ1fEYRLDE5DoZkUQNoZ4GOrJKGAoomXOw7lCAwYmYDgJSEAAUBA4QDBJzB6FOQrDXJwTJFdLjJKE9jDYZRAmkKAwmhKAgmiKAYmBkApdJIgjCKYIncOQYvJYTovGE84lagR2DE4xOakBOEgJXFOjYnEJAbtdOwggEkAmbDgInDE0B0BE4QgcE5AkiXYbpCOLonGYo4nhPMYnCUEgnBY0kiA==")),
|
||||||
|
8: require("heatshrink").decompress(atob("qFGwkCkQA/ABBSEJ8MgE4kBEsBPFE7xMCOIJ3hOYgFEE7rCGE70gE4pQBiAndYQwjBUohOZD4ZQFE7YkBE5AICYbZ2GE7sggJRCAA8iYzZOITroALE7EhExh4CAC0QExpPXOponZExx2XJ24nWdh52XdhzF/Yu5O/J35O0E55OXOx5O/J2omXE5x1XO54mYgQnMJrR4LOrciiAmiJgR4KEzIjDPBAlYiAiEeI51YkEBE4J5CD4KceTQQcBJgRQFdTZDCJIjDcNIqhGdTQmCkByFTTInDKgoAEE7ZEEJwhPdE1R1FE0InEE0R3DEwTGcDwomEE7hKFPYqafE8ROCE5DJbE5B/IEqh2ED4gnCJrMCJwgnEiB2bE4qeFEzUggQmIBQLEaEQImHLIImaE4YfcOw4lEFMLECS7onJO8wmkE4QljAAIA==")),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
let rocketSequence = 1;
|
||||||
|
let settings = storage.readJSON("cassioWatch.settings.json", true) || {};
|
||||||
|
let rocketSpeed = settings.rocketSpeed || 700;
|
||||||
|
delete settings;
|
||||||
|
|
||||||
// schedule a draw for the next minute
|
// schedule a draw for the next minute
|
||||||
let rocketInterval;
|
let rocketInterval;
|
||||||
var drawTimeout;
|
var drawTimeout;
|
||||||
function queueDraw() {
|
function queueDraw() {
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = setTimeout(function() {
|
drawTimeout = setTimeout(function() {
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
draw();
|
draw();
|
||||||
}, 60000 - (Date.now() % 60000));
|
}, 60000 - (Date.now() % 60000));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function clearIntervals() {
|
function clearIntervals() {
|
||||||
if (rocketInterval) clearInterval(rocketInterval);
|
if (rocketInterval) clearInterval(rocketInterval);
|
||||||
rocketInterval = undefined;
|
rocketInterval = undefined;
|
||||||
if (drawTimeout) clearTimeout(drawTimeout);
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
drawTimeout = undefined;
|
drawTimeout = undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////
|
|
||||||
// TIMER FUNC
|
|
||||||
//
|
|
||||||
var timer_time = 0;
|
|
||||||
var alreadyListenTouch = false;
|
|
||||||
function initTouchTimer () {
|
|
||||||
if (alreadyListenTouch) return;
|
|
||||||
alreadyListenTouch = true;
|
|
||||||
|
|
||||||
Bangle.on('swipe', function(dirX,dirY) {
|
|
||||||
if (canTouch === false) return;
|
|
||||||
var njson = getDataJson();
|
|
||||||
if (!njson) return;
|
|
||||||
|
|
||||||
if (dirX === -1) {
|
|
||||||
timer_time = 0;
|
|
||||||
delete njson.timer;
|
|
||||||
setDataJson(njson);
|
|
||||||
}
|
|
||||||
else if (dirX === 1) {
|
|
||||||
var now = new Date().getTime();
|
|
||||||
njson.timer = now + (timer_time * 1000 * 60);
|
|
||||||
Bangle.setLocked(true);
|
|
||||||
setDataJson(njson);
|
|
||||||
Bangle.buzz(200, 0);
|
|
||||||
timer_time = 0;
|
|
||||||
}
|
|
||||||
else if (dirY === -1) {
|
|
||||||
if (canTouch === false || njson.timer) return;
|
|
||||||
timer_time = timer_time + 5;
|
|
||||||
}
|
|
||||||
else if (dirY === 1) {
|
|
||||||
if (canTouch === false || njson.timer) return;
|
|
||||||
timer_time = timer_time - 5;
|
|
||||||
}
|
|
||||||
draw();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
setTimeout(() => {
|
|
||||||
initTouchTimer ();
|
|
||||||
});
|
|
||||||
|
|
||||||
function getTimerTime() {
|
|
||||||
// if timer_time !== -1, take it
|
|
||||||
if (timer_time !== 0) {
|
|
||||||
return timer_time + "m";
|
|
||||||
} else {
|
|
||||||
// else, show diff between njsontime and now
|
|
||||||
var njson = getDataJson();
|
|
||||||
if (!njson) return false;
|
|
||||||
var now = new Date().getTime();
|
|
||||||
var diff = Math.round((njson.timer - now) / (1000 * 60));
|
|
||||||
//console.log(123, njson, diff, now, njson.timer - now);
|
|
||||||
if (diff > 0) return diff + "m";
|
|
||||||
else if (njson.timer) {
|
|
||||||
Bangle.buzz(1000, 1);
|
|
||||||
console.log("END OF TIMER");
|
|
||||||
delete njson.timer;
|
|
||||||
setDataJson(njson);
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// if diff is <0, delete timer from json
|
|
||||||
}
|
|
||||||
}
|
|
||||||
function drawTimer() {
|
|
||||||
//g.drawString(getTimerTime(), 100, 100);
|
|
||||||
g.setFont("8x12", 2);
|
|
||||||
var t = 97;
|
|
||||||
var l = 105;
|
|
||||||
var time = getTimerTime();
|
|
||||||
if (time || timer_time !== 0) g.drawString(time, l+5, t+0);
|
|
||||||
if (time && timer_time === 0) g.drawImage(getClockBg(), l-20, t+2, { scale: 1 });
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////
|
|
||||||
// DATA READING
|
|
||||||
//
|
|
||||||
function getDataJson(){
|
|
||||||
var res = {"tasks":"", "weather":[]};
|
|
||||||
try {
|
|
||||||
res = storage.readJSON('advcasio.data.json');
|
|
||||||
} catch(ex) {
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
function setDataJson(resJson){
|
|
||||||
try {
|
|
||||||
res = storage.writeJSON('advcasio.data.json', resJson);
|
|
||||||
} catch(ex) {
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
var dataJson = getDataJson();
|
|
||||||
|
|
||||||
////////////////////////////////////////////
|
|
||||||
// WEATHER!
|
|
||||||
//
|
|
||||||
function drawWeather(arr) {
|
|
||||||
g.setFont("6x8", 1);
|
|
||||||
var p = {l: 8, tText: 40, tIcon:20, decal:25};
|
|
||||||
var today = new Date().getTime();
|
|
||||||
var yesterday = today - (1000 * 60 * 60 * 24);
|
|
||||||
var testday = today + (1000 * 60 * 60 * 24 * 2);
|
|
||||||
//12h auj > 12h hier qui est sup a 0h auj
|
|
||||||
//23h59 hier est sup a 0h auj
|
|
||||||
var j = 0;
|
|
||||||
for(var i = 0; i<arr.length;i++) {
|
|
||||||
if (arr[i][2] > yesterday && j < 4) {
|
|
||||||
g.drawString(arr[i][0], p.l + p.decal*j + 4, p.tText);
|
|
||||||
g.drawImage(iconsWeather[arr[i][1]], p.l + p.decal*j, p.tIcon, { scale: 1 });
|
|
||||||
j++
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////
|
|
||||||
// DRAWING FUNCS
|
|
||||||
//
|
|
||||||
function drawTasks(str) {
|
|
||||||
g.setFont("6x8", 1);
|
|
||||||
var t = 57;
|
|
||||||
var l = 0;
|
|
||||||
g.drawString(str, l+5, t+0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function drawSteps() {
|
|
||||||
g.setFont("8x12", 2);
|
|
||||||
var t = 132;
|
|
||||||
var l = 150;
|
|
||||||
g.drawString(getSteps(), l+5, t+0);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function drawClock() {
|
function drawClock() {
|
||||||
g.setFont("7x11Numeric7Seg", 3);
|
g.setFont("7x11Numeric7Seg", 3);
|
||||||
g.clearRect(80, 57, 170, 96);
|
g.clearRect(80, 57, 170, 96);
|
||||||
g.setColor(255, 255, 255);
|
g.setColor(0, 255, 255);
|
||||||
var l = 77;
|
g.drawRect(80, 57, 170, 96);
|
||||||
var t = 57;
|
g.fillRect(80, 57, 170, 96);
|
||||||
var w = 170;
|
g.setColor(0, 0, 0);
|
||||||
var h = 116;
|
g.drawString(require("locale").time(new Date(), 1), 70, 60);
|
||||||
g.drawRect(l, t, w, h);
|
g.setFont("8x12", 2);
|
||||||
g.fillRect(l, t, w, h);
|
g.drawString(require("locale").dow(new Date(), 2).toUpperCase(), 18, 130);
|
||||||
g.setColor(0, 0, 0);
|
g.setFont("8x12");
|
||||||
g.drawString(require("locale").time(new Date(), 1), 76, 60);
|
g.drawString(require("locale").month(new Date(), 2).toUpperCase(), 80, 126);
|
||||||
|
g.setFont("8x12", 2);
|
||||||
// day
|
const time = new Date().getDate();
|
||||||
//g.setFont("8x12", 1);
|
g.drawString(time < 10 ? "0" + time : time, 78, 137);
|
||||||
//g.setFont("9x18", 1);
|
|
||||||
//g.drawString(require("locale").dow(new Date(), 2).toUpperCase(), 25, 136);
|
|
||||||
g.setFont("8x12", 2);
|
|
||||||
g.drawString(require("locale").dow(new Date(), 2), 18, 130);
|
|
||||||
|
|
||||||
// month
|
|
||||||
g.setFont("8x12");
|
|
||||||
g.drawString(require("locale").month(new Date(), 2).toUpperCase(), 80, 127);
|
|
||||||
|
|
||||||
// day nb
|
|
||||||
g.setFont("8x12", 2);
|
|
||||||
const time = new Date().getDate();
|
|
||||||
g.drawString(time < 10 ? "0" + time : time, 78, 137);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function drawBattery() {
|
function drawBattery() {
|
||||||
bigThenSmall(E.getBattery(), "%", 140, 23);
|
bigThenSmall(E.getBattery(), "%", 135, 21);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function drawRocket() {
|
||||||
|
let Rocket = getRocketSequences();
|
||||||
|
g.clearRect(5, 62, 63, 115);
|
||||||
|
g.setColor(0, 255, 255);
|
||||||
|
g.drawRect(5, 62, 63, 115);
|
||||||
|
g.fillRect(5, 62, 63, 115);
|
||||||
|
g.drawImage(Rocket[rocketSequence], 5, 65, { scale: 0.7 });
|
||||||
|
g.setColor(0, 0, 0);
|
||||||
|
rocketSequence = rocketSequence + 1;
|
||||||
|
if(rocketSequence > 8) rocketSequence = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
function getTemperature(){
|
||||||
|
try {
|
||||||
|
var weatherJson = storage.readJSON('weather.json');
|
||||||
|
var weather = weatherJson.weather;
|
||||||
|
return Math.round(weather.temp-273.15);
|
||||||
|
|
||||||
|
} catch(ex) {
|
||||||
|
print(ex)
|
||||||
|
return "?"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function getSteps() {
|
function getSteps() {
|
||||||
var steps = 0;
|
var steps = Bangle.getHealthStatus("day").steps;
|
||||||
try{
|
steps = Math.round(steps/1000);
|
||||||
if (WIDGETS.wpedom !== undefined) {
|
return steps + "k";
|
||||||
steps = WIDGETS.wpedom.getSteps();
|
|
||||||
} else if (WIDGETS.activepedom !== undefined) {
|
|
||||||
steps = WIDGETS.activepedom.getSteps();
|
|
||||||
} else {
|
|
||||||
steps = Bangle.getHealthStatus("day").steps;
|
|
||||||
}
|
|
||||||
} catch(ex) {
|
|
||||||
// In case we failed, we can only show 0 steps.
|
|
||||||
return "? k";
|
|
||||||
}
|
|
||||||
|
|
||||||
steps = Math.round(steps/1000);
|
|
||||||
return steps + "k";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function draw() {
|
function draw() {
|
||||||
|
queueDraw();
|
||||||
|
|
||||||
queueDraw();
|
g.clear(1);
|
||||||
|
g.setColor(0, 255, 255);
|
||||||
|
g.fillRect(0, 0, g.getWidth(), g.getHeight());
|
||||||
|
let background = getBackgroundImage();
|
||||||
|
g.drawImage(background, 0, 0, { scale: 1 });
|
||||||
|
g.setColor(0, 0, 0);
|
||||||
|
g.setFont("6x12");
|
||||||
|
g.drawString("Launching Process", 30, 20);
|
||||||
|
g.setFont("8x12");
|
||||||
|
g.drawString("ACTIVATE", 40, 35);
|
||||||
|
|
||||||
g.reset();
|
g.setFontAlign(0,-1);
|
||||||
g.clear();
|
g.setFont("8x12", 2);
|
||||||
g.setColor(255, 255, 255);
|
g.drawString(getTemperature(), 155, 132);
|
||||||
g.fillRect(0, 0, g.getWidth(), g.getHeight());
|
g.drawString(Math.round(Bangle.getHealthStatus("last").bpm), 109, 98);
|
||||||
let background = getBackgroundImage();
|
g.drawString(getSteps(), 158, 98);
|
||||||
g.drawImage(background, 0, 0, { scale: 1 });
|
|
||||||
|
|
||||||
|
g.setFontAlign(-1,-1);
|
||||||
|
drawClock();
|
||||||
|
drawRocket();
|
||||||
|
drawBattery();
|
||||||
|
|
||||||
g.setColor(0, 0, 0);
|
// Hide widgets
|
||||||
if(dataJson && dataJson.weather) drawWeather(dataJson.weather);
|
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
|
||||||
if(dataJson && dataJson.tasks) drawTasks(dataJson.tasks);
|
|
||||||
|
|
||||||
|
|
||||||
g.setFontAlign(0,-1);
|
|
||||||
g.setFont("8x12", 2);
|
|
||||||
|
|
||||||
drawSteps();
|
|
||||||
g.setFontAlign(-1,-1);
|
|
||||||
drawClock();
|
|
||||||
drawBattery();
|
|
||||||
drawTimer();
|
|
||||||
// Hide widgets
|
|
||||||
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// save batt power, does not seem to work although...
|
|
||||||
var canTouch = true;
|
|
||||||
Bangle.on("lcdPower", (on) => {
|
Bangle.on("lcdPower", (on) => {
|
||||||
if (on) {
|
if (on) {
|
||||||
draw();
|
draw();
|
||||||
} else {
|
} else {
|
||||||
canTouch = false;
|
clearIntervals();
|
||||||
clearIntervals();
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Bangle.on("lock", (locked) => {
|
Bangle.on("lock", (locked) => {
|
||||||
clearIntervals();
|
clearIntervals();
|
||||||
draw();
|
draw();
|
||||||
if (!locked) {
|
if (!locked) {
|
||||||
canTouch = true;
|
rocketInterval = setInterval(drawRocket, rocketSpeed);
|
||||||
} else {
|
}
|
||||||
canTouch = false;
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Bangle.setUI("clock");
|
Bangle.setUI("clock");
|
||||||
|
|
||||||
// Load widgets, but don't show them
|
// Load widgets, but don't show them
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
||||||
g.reset();
|
g.clear(1);
|
||||||
g.clear();
|
|
||||||
draw();
|
draw();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{ "id": "advcasio",
|
{ "id": "advcasio",
|
||||||
"name": "Advanced Casio Clock",
|
"name": "Advanced Casio Clock",
|
||||||
"shortName":"advcasio",
|
"shortName":"advcasio",
|
||||||
"version":"0.03",
|
"version":"0.04",
|
||||||
"description": "An over-engineered clock inspired by Casio watches. It has a 4 days weather, a timer using swipe and a scratchpad. Can be updated using a dedicated webapp.",
|
"description": "An over-engineered clock inspired by Casio watches. It has a 4 days weather, a timer using swipe and a scratchpad. Can be updated using a dedicated webapp.",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
|
|
|
@ -10,3 +10,4 @@
|
||||||
0.9: Remove ESLint spaces
|
0.9: Remove ESLint spaces
|
||||||
0.10: Show daily steps, heartrate and the temperature if weather information is available.
|
0.10: Show daily steps, heartrate and the temperature if weather information is available.
|
||||||
0.11: Tell clock widgets to hide.
|
0.11: Tell clock widgets to hide.
|
||||||
|
0.12: Swipe down to see widgets, step counter now just uses getHealthStatus
|
||||||
|
|
|
@ -8,4 +8,5 @@ It displays current temperature,day,steps,battery.heartbeat and weather.
|
||||||
|
|
||||||
|
|
||||||
**To-do**:
|
**To-do**:
|
||||||
Align and change size of some elements.
|
|
||||||
|
* Align and change size of some elements
|
||||||
|
|
|
@ -91,7 +91,6 @@ function getTemperature(){
|
||||||
var weatherJson = storage.readJSON('weather.json');
|
var weatherJson = storage.readJSON('weather.json');
|
||||||
var weather = weatherJson.weather;
|
var weather = weatherJson.weather;
|
||||||
return Math.round(weather.temp-273.15);
|
return Math.round(weather.temp-273.15);
|
||||||
|
|
||||||
} catch(ex) {
|
} catch(ex) {
|
||||||
print(ex)
|
print(ex)
|
||||||
return "?"
|
return "?"
|
||||||
|
@ -99,20 +98,7 @@ function getTemperature(){
|
||||||
}
|
}
|
||||||
|
|
||||||
function getSteps() {
|
function getSteps() {
|
||||||
var steps = 0;
|
var steps = Bangle.getHealthStatus("day").steps;
|
||||||
try{
|
|
||||||
if (WIDGETS.wpedom !== undefined) {
|
|
||||||
steps = WIDGETS.wpedom.getSteps();
|
|
||||||
} else if (WIDGETS.activepedom !== undefined) {
|
|
||||||
steps = WIDGETS.activepedom.getSteps();
|
|
||||||
} else {
|
|
||||||
steps = Bangle.getHealthStatus("day").steps;
|
|
||||||
}
|
|
||||||
} catch(ex) {
|
|
||||||
// In case we failed, we can only show 0 steps.
|
|
||||||
return "? k";
|
|
||||||
}
|
|
||||||
|
|
||||||
steps = Math.round(steps/1000);
|
steps = Math.round(steps/1000);
|
||||||
return steps + "k";
|
return steps + "k";
|
||||||
}
|
}
|
||||||
|
@ -121,8 +107,7 @@ function getSteps() {
|
||||||
function draw() {
|
function draw() {
|
||||||
queueDraw();
|
queueDraw();
|
||||||
|
|
||||||
g.reset();
|
g.clear(1);
|
||||||
g.clear();
|
|
||||||
g.setColor(0, 255, 255);
|
g.setColor(0, 255, 255);
|
||||||
g.fillRect(0, 0, g.getWidth(), g.getHeight());
|
g.fillRect(0, 0, g.getWidth(), g.getHeight());
|
||||||
let background = getBackgroundImage();
|
let background = getBackgroundImage();
|
||||||
|
@ -143,9 +128,6 @@ function draw() {
|
||||||
drawClock();
|
drawClock();
|
||||||
drawRocket();
|
drawRocket();
|
||||||
drawBattery();
|
drawBattery();
|
||||||
|
|
||||||
// Hide widgets
|
|
||||||
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Bangle.on("lcdPower", (on) => {
|
Bangle.on("lcdPower", (on) => {
|
||||||
|
@ -169,7 +151,6 @@ Bangle.setUI("clock");
|
||||||
|
|
||||||
// Load widgets, but don't show them
|
// Load widgets, but don't show them
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
||||||
g.reset();
|
g.clear(1);
|
||||||
g.clear();
|
|
||||||
draw();
|
draw();
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
"description": "Animated Clock with Space Cassio Watch Style",
|
"description": "Animated Clock with Space Cassio Watch Style",
|
||||||
"screenshots": [{ "url": "screens/screen_night.png" },{ "url": "screens/screen_day.png" }],
|
"screenshots": [{ "url": "screens/screen_night.png" },{ "url": "screens/screen_day.png" }],
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version": "0.11",
|
"version": "0.12",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock, weather, cassio, retro",
|
"tags": "clock, weather, cassio, retro",
|
||||||
"supports": ["BANGLEJS2"],
|
"supports": ["BANGLEJS2"],
|
||||||
|
|
|
@ -3,3 +3,4 @@
|
||||||
0.03: Incorporated improvements from Peer David for accuracy, fix dark mode, widgets run in background
|
0.03: Incorporated improvements from Peer David for accuracy, fix dark mode, widgets run in background
|
||||||
0.04: Changed clock to use 12/24 hour format based on locale
|
0.04: Changed clock to use 12/24 hour format based on locale
|
||||||
0.05: Tell clock widgets to hide.
|
0.05: Tell clock widgets to hide.
|
||||||
|
0.06: Widgets can now be made visible by swiping down (#2196)
|
||||||
|
|
|
@ -41,9 +41,6 @@ function draw() {
|
||||||
yy = ("0"+((new Date()).getFullYear())).substr(-2);
|
yy = ("0"+((new Date()).getFullYear())).substr(-2);
|
||||||
g.setFontCustom(font, 48, 8, 521);
|
g.setFontCustom(font, 48, 8, 521);
|
||||||
g.drawString(dd + ':' + mo + ':' + yy, 88, 120, true);
|
g.drawString(dd + ':' + mo + ':' + yy, 88, 120, true);
|
||||||
|
|
||||||
// Hide widgets
|
|
||||||
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -61,4 +58,5 @@ Bangle.setUI("clock");
|
||||||
|
|
||||||
// Load widgets but hide them
|
// Load widgets but hide them
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
||||||
draw();
|
draw();
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"name": "MacWatch2",
|
"name": "MacWatch2",
|
||||||
"shortName":"MacWatch2",
|
"shortName":"MacWatch2",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.05",
|
"version":"0.06",
|
||||||
"description": "Classic Mac Finder clock",
|
"description": "Classic Mac Finder clock",
|
||||||
"type": "clock",
|
"type": "clock",
|
||||||
"tags": "clock",
|
"tags": "clock",
|
||||||
|
|
|
@ -9,3 +9,5 @@
|
||||||
0.09: Add support for internationalization (LANG placeholders + "locale" module)
|
0.09: Add support for internationalization (LANG placeholders + "locale" module)
|
||||||
Get steps from built-in step counter (widpedom no more needed, fix #1697)
|
Get steps from built-in step counter (widpedom no more needed, fix #1697)
|
||||||
0.10: Tell clock widgets to hide.
|
0.10: Tell clock widgets to hide.
|
||||||
|
0.11: Swipe down to see widgets
|
||||||
|
Support for fast loading
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"id": "pebble",
|
"id": "pebble",
|
||||||
"name": "Pebble Clock",
|
"name": "Pebble Clock",
|
||||||
"shortName": "Pebble",
|
"shortName": "Pebble",
|
||||||
"version": "0.10",
|
"version": "0.11",
|
||||||
"description": "A pebble style clock to keep the rebellion going",
|
"description": "A pebble style clock to keep the rebellion going",
|
||||||
"readme": "README.md",
|
"readme": "README.md",
|
||||||
"icon": "pebble.png",
|
"icon": "pebble.png",
|
||||||
|
|
|
@ -1,22 +1,24 @@
|
||||||
Graphics.prototype.setFontLECO1976Regular42 = function(scale) {
|
Graphics.prototype.setFontLECO1976Regular42 = function(scale) {
|
||||||
// Actual height 42 (41 - 0)
|
// Actual height 42 (41 - 0)
|
||||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAA/AAAAAAAAH/AAAAAAAA//AAAAAAAP//AAAAAAB///AAAAAAP///AAAAAB////AAAAAf////AAAAD////4AAAAf////AAAAH////4AAAA////+AAAAA////wAAAAA///+AAAAAA///gAAAAAA//8AAAAAAA//gAAAAAAA/4AAAAAAAA/AAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////gD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4B/gH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAH+AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), 46, atob("ERkmHyYmJiYmJCYmEQ=="), 60+(scale<<8)+(1<<16));
|
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAA/AAAAAAAAH/AAAAAAAA//AAAAAAAP//AAAAAAB///AAAAAAP///AAAAAB////AAAAAf////AAAAD////4AAAAf////AAAAH////4AAAA////+AAAAA////wAAAAA///+AAAAAA///gAAAAAA//8AAAAAAA//gAAAAAAA/4AAAAAAAA/AAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAH/AAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA//h////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////gD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4AAAH/AAA/4B/gH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAA////wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAAAAB/wAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA////x//AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/4B////AAA/wB////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA//gAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA/4AAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA////wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA/4B/wH/AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAA///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAP+AAH/AAAAH+AAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), 46, atob("ERkmHyYmJiYmJCYmEQ=="), 60+(scale<<8)+(1<<16));
|
||||||
}
|
};
|
||||||
|
|
||||||
Graphics.prototype.setFontLECO1976Regular22 = function(scale) {
|
Graphics.prototype.setFontLECO1976Regular22 = function(scale) {
|
||||||
// Actual height 22 (21 - 0)
|
// Actual height 22 (21 - 0)
|
||||||
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nA/+cD/5wP/nAAAAAAAAPwAA/gAD+AAPwAAAAAD+AAP4AA/gAAAAAAAAAAAAAcOAP//A//8D//wP//AHDgAcOAP//A//8D//wP//AHDgAAAAAAAAH/jgf+OB/44H/jj8OP/w4//Dj/8OPxw/4HD/gcP+Bw/4AAAAAAAP+AA/8AD/wQOHHA4c8D//wP/8A//gAD4AAfAAH/8A//wP//A84cDjhwIP/AA/8AB/wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8ABwAAAAAAAAD8AAP4AA/gAD8AAAAAAAAAAAEAAD+AB//A///v/D//gB/wABwAAAAAADgAA/wAf/4P8///wf/4AP8AAOAAAAAAAAAyAAHcAAPwAD/gAP/AA/8AA/AAH8AAMwAAAAAAAAAAAAADgAAOAAA4AAf8AD/wAP/AA/8AAOAAA4AADgAAAAAAAAAAD8AAfwAB/AAD8AAAAAAAADgAAOAAA4AADgAAOAAA4AADgAAAAAAAAAADgAAOAAA4AADgAAAAAAAAABwAB/AA/8A//gP/gA/wADwAAIAAAAAAD//wP//A//8D//wOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA4AcDgBwOAHA//8D//wP//A//8AABwAAHAAAcAAAAAAAA+f8D5/wPn/A+f8DhxwOHHA4ccDhxwP/HA/8cD/xwP/HAAAAAAAAOAHA4AcDhxwOHHA4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/wAP/AA/8AD/wAAHAAAcAABwAAHAA//8D//wP//A//8AAAAAAAA/98D/3wP/fA/98DhxwOHHA4ccDhxwOH/A4f8Dh/wOH/AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccDh/wOH/A4f8Dh/wAAAAAAAD4AAPgAA+AADgAAOAAA4AADgAAP//A//8D//wP//AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA//8D//wP//A//8AAAAAAAAOA4A4DgDgOAOA4AAAAAAAAOA/A4H8DgfwOA/AAAAAAAAB4AAPwAA/AAD8AAf4ABzgAPPAA8cAHh4AAAAAAAAAAAAHHAAccABxwAHHAAccABxwAHHAAccABxwAHHAAAAAAAAAOHAA4cADzwAPPAAf4AB/gAD8AAPwAAeAAB4AAAAAAAAA+AAD4AAPgAA+ecDh9wOH3A4fcDhwAP/AA/8AD/wAP/AAAAAAAAAP//4///j//+P//44ADjn/OOf845/zjnHOP8c4//zj//OP/84AAAAAAAP//A//8D//wP//A4cADhwAOHAA4cAD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA//8D//wP9/A/j8AAAAAAAA//8D//wP//A//8DgBwOAHA4AcDgBwOAHA4AcDgBwOAHAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA8A8D//wH/+AP/wAf+AAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4ccDhxwOAHA4AcAAAAAAAA//8D//wP//A//8DhwAOHAA4cADhwAOHAA4cADgAAOAAAAAAD//wP//A//8D//wOAHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA//8D//wP//A//8ABwAAHAAAcAABwAP//A//8D//wP//AAAAAAAAP//A//8D//wP//AAAAAAAAOAHA4AcDgBwOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA//8D//wP//A//8AHwAA/AAP8AB/wAPn/A8f8DB/wIH/AAAAAAAAP//A//8D//wP//AAAcAABwAAHAAAcAABwAAHAAAAAAAAP//A//8D//wP//Af8AAP+AAH/AAD8AAHwAD/AB/wAf8AP+AA//8D//wP//AAAAAAAAP//A//8D//wP//AfwAAfwAAfwAAfwAAfwP//A//8D//wAAAAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHAA4cADhwAOHAA/8AD/wAP/AA/8AAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//+P//4///j//+AAA4AADgAAAP//A//8D//wP//A4eADh+AOH8A4f4D/3wP/HA/8MD/wQAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA4AADgAAOAAA//8D//wP//A//8DgAAOAAA4AADgAAAAAA//8D//wP//A//8AABwAAHAAAcAABwP//A//8D//wP//AAAADAAAPgAA/wAD/4AB/8AA/8AAfwAB/AA/8Af+AP/AA/wAD4AAMAAA4AAD+AAP/gA//8AH/wAB/AAf8Af/wP/4A/4AD/gAP/4AH/8AB/wAB/AB/8D//wP/gA/gADgAAIABA4AcDwDwPw/Afn4Af+AA/wAD/AA//AH5+A/D8DwDwOAHAgAEAAAAP/AA/8AD/wAP/AAAf8AB/wAH/AAf8D/wAP/AA/8AD/wAAAAAAAADh/wOH/A4f8Dh/wOHHA4ccDhxwOHHA/8cD/xwP/HA/8cAAAAAAAAf//9///3///f//9wAA3AADcAAMAAAOAAA/gAD/wAH/8AB/8AA/wAAPAAAEAAAAHAADcAANwAB3///f//9///wAA"), 32, atob("BwYLDg4UDwYJCQwMBgkGCQ4MDg4ODg4NDg4GBgwMDA4PDg4ODg4NDg4GDQ4MEg8ODQ8ODgwODhQODg4ICQg="), 22+(scale<<8)+(1<<16));
|
g.setFontCustom(atob("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/nA/+cD/5wP/nAAAAAAAAPwAA/gAD+AAPwAAAAAD+AAP4AA/gAAAAAAAAAAAAAcOAP//A//8D//wP//AHDgAcOAP//A//8D//wP//AHDgAAAAAAAAH/jgf+OB/44H/jj8OP/w4//Dj/8OPxw/4HD/gcP+Bw/4AAAAAAAP+AA/8AD/wQOHHA4c8D//wP/8A//gAD4AAfAAH/8A//wP//A84cDjhwIP/AA/8AB/wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8ABwAAAAAAAAD8AAP4AA/gAD8AAAAAAAAAAAEAAD+AB//A///v/D//gB/wABwAAAAAADgAA/wAf/4P8///wf/4AP8AAOAAAAAAAAAyAAHcAAPwAD/gAP/AA/8AA/AAH8AAMwAAAAAAAAAAAAADgAAOAAA4AAf8AD/wAP/AA/8AAOAAA4AADgAAAAAAAAAAD8AAfwAB/AAD8AAAAAAAADgAAOAAA4AADgAAOAAA4AADgAAAAAAAAAADgAAOAAA4AADgAAAAAAAAABwAB/AA/8A//gP/gA/wADwAAIAAAAAAD//wP//A//8D//wOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA4AcDgBwOAHA//8D//wP//A//8AABwAAHAAAcAAAAAAAA+f8D5/wPn/A+f8DhxwOHHA4ccDhxwP/HA/8cD/xwP/HAAAAAAAAOAHA4AcDhxwOHHA4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/wAP/AA/8AD/wAAHAAAcAABwAAHAA//8D//wP//A//8AAAAAAAA/98D/3wP/fA/98DhxwOHHA4ccDhxwOH/A4f8Dh/wOH/AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccDh/wOH/A4f8Dh/wAAAAAAAD4AAPgAA+AADgAAOAAA4AADgAAP//A//8D//wP//AAAAAAAAP//A//8D//wP//A4ccDhxwOHHA4ccD//wP//A//8D//wAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA//8D//wP//A//8AAAAAAAAOA4A4DgDgOAOA4AAAAAAAAOA/A4H8DgfwOA/AAAAAAAAB4AAPwAA/AAD8AAf4ABzgAPPAA8cAHh4AAAAAAAAAAAAHHAAccABxwAHHAAccABxwAHHAAccABxwAHHAAAAAAAAAOHAA4cADzwAPPAAf4AB/gAD8AAPwAAeAAB4AAAAAAAAA+AAD4AAPgAA+ecDh9wOH3A4fcDhwAP/AA/8AD/wAP/AAAAAAAAAP//4///j//+P//44ADjn/OOf845/zjnHOP8c4//zj//OP/84AAAAAAAP//A//8D//wP//A4cADhwAOHAA4cAD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA//8D//wP9/A/j8AAAAAAAA//8D//wP//A//8DgBwOAHA4AcDgBwOAHA4AcDgBwOAHAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA8A8D//wH/+AP/wAf+AAAAAAAAD//wP//A//8D//wOHHA4ccDhxwOHHA4ccDhxwOAHA4AcAAAAAAAA//8D//wP//A//8DhwAOHAA4cADhwAOHAA4cADgAAOAAAAAAD//wP//A//8D//wOAHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA//8D//wP//A//8ABwAAHAAAcAABwAP//A//8D//wP//AAAAAAAAP//A//8D//wP//AAAAAAAAOAHA4AcDgBwOAHA4AcDgBwOAHA//8D//wP//A//8AAAAAAAA//8D//wP//A//8AHwAA/AAP8AB/wAPn/A8f8DB/wIH/AAAAAAAAP//A//8D//wP//AAAcAABwAAHAAAcAABwAAHAAAAAAAAP//A//8D//wP//Af8AAP+AAH/AAD8AAHwAD/AB/wAf8AP+AA//8D//wP//AAAAAAAAP//A//8D//wP//AfwAAfwAAfwAAfwAAfwP//A//8D//wAAAAAAAAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//wP//A//8D//wAAAAAAAD//wP//A//8D//wOHAA4cADhwAOHAA/8AD/wAP/AA/8AAAAAP//A//8D//wP//A4AcDgBwOAHA4AcD//+P//4///j//+AAA4AADgAAAP//A//8D//wP//A4eADh+AOH8A4f4D/3wP/HA/8MD/wQAAAAAAAD/xwP/HA/8cD/xwOHHA4ccDhxwOHHA4f8Dh/wOH/A4f8AAAAAAAA4AADgAAOAAA//8D//wP//A//8DgAAOAAA4AADgAAAAAA//8D//wP//A//8AABwAAHAAAcAABwP//A//8D//wP//AAAADAAAPgAA/wAD/4AB/8AA/8AAfwAB/AA/8Af+AP/AA/wAD4AAMAAA4AAD+AAP/gA//8AH/wAB/AAf8Af/wP/4A/4AD/gAP/4AH/8AB/wAB/AB/8D//wP/gA/gADgAAIABA4AcDwDwPw/Afn4Af+AA/wAD/AA//AH5+A/D8DwDwOAHAgAEAAAAP/AA/8AD/wAP/AAAf8AB/wAH/AAf8D/wAP/AA/8AD/wAAAAAAAADh/wOH/A4f8Dh/wOHHA4ccDhxwOHHA/8cD/xwP/HA/8cAAAAAAAAf//9///3///f//9wAA3AADcAAMAAAOAAA/gAD/wAH/8AB/8AA/wAAPAAAEAAAAHAADcAANwAB3///f//9///wAA"), 32, atob("BwYLDg4UDwYJCQwMBgkGCQ4MDg4ODg4NDg4GBgwMDA4PDg4ODg4NDg4GDQ4MEg8ODQ8ODgwODhQODg4ICQg="), 22+(scale<<8)+(1<<16));
|
||||||
}
|
};
|
||||||
|
|
||||||
|
{
|
||||||
const SETTINGS_FILE = "pebble.json";
|
const SETTINGS_FILE = "pebble.json";
|
||||||
let settings;
|
let settings;
|
||||||
let theme;
|
let theme;
|
||||||
|
let drawTimeout;
|
||||||
|
|
||||||
function loadSettings() {
|
let loadSettings = function() {
|
||||||
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green', 'theme':'System', 'showlock':false};
|
settings = require("Storage").readJSON(SETTINGS_FILE,1)|| {'bg': '#0f0', 'color': 'Green', 'theme':'System', 'showlock':false};
|
||||||
}
|
};
|
||||||
|
|
||||||
var img = require("heatshrink").decompress(atob("oFAwkEogA/AH4A/AH4A/AH4A/AE8AAAoeXoAfeDQUBmcyD7A+Dh///8QD649CiAfaHwUvD4sEHy0DDYIfEICg+Cn4fHICY+DD4nxcgojOHwgfEIAYfRCIQaDD4ZAFD5r7DH4//kAfRCIZ/GAAnwD5p9DX44fTHgYSBf4ofVDAQEBl4fFUAgfOXoQzBgIfFBAIfPP4RAEAoYAB+cRiK/SG4h/WIBAfXIA7CBAAswD55AHn6fUIBMCD65AHl4gCmcziAfQQJqfQQJpiDgk0IDXxQLRAEECaBM+QgRYRYgUIA0CD4ggSQJiDCiAKBICszAAswD55AHABKBVD7BAFABIqBD5pAFABPxD55AOD6BADiIAJQAyxLABwf/gaAPAH4A/AH4ARA=="));
|
const img = require("heatshrink").decompress(atob("oFAwkEogA/AH4A/AH4A/AH4A/AE8AAAoeXoAfeDQUBmcyD7A+Dh///8QD649CiAfaHwUvD4sEHy0DDYIfEICg+Cn4fHICY+DD4nxcgojOHwgfEIAYfRCIQaDD4ZAFD5r7DH4//kAfRCIZ/GAAnwD5p9DX44fTHgYSBf4ofVDAQEBl4fFUAgfOXoQzBgIfFBAIfPP4RAEAoYAB+cRiK/SG4h/WIBAfXIA7CBAAswD55AHn6fUIBMCD65AHl4gCmcziAfQQJqfQQJpiDgk0IDXxQLRAEECaBM+QgRYRYgUIA0CD4ggSQJiDCiAKBICszAAswD55AHABKBVD7BAFABIqBD5pAFABPxD55AOD6BADiIAJQAyxLABwf/gaAPAH4A/AH4ARA=="));
|
||||||
|
|
||||||
const h = g.getHeight();
|
const h = g.getHeight();
|
||||||
const w = g.getWidth();
|
const w = g.getWidth();
|
||||||
|
@ -26,7 +28,7 @@ const h3 = 7*h/8;
|
||||||
|
|
||||||
let batteryWarning = false;
|
let batteryWarning = false;
|
||||||
|
|
||||||
function draw() {
|
let draw = function() {
|
||||||
let locale = require("locale");
|
let locale = require("locale");
|
||||||
let date = new Date();
|
let date = new Date();
|
||||||
let dayOfWeek = locale.dow(date, 1).toUpperCase();
|
let dayOfWeek = locale.dow(date, 1).toUpperCase();
|
||||||
|
@ -81,10 +83,16 @@ function draw() {
|
||||||
drawCalendar(((w/2) - 42)/2, 14, 42, 4, dayOfMonth);
|
drawCalendar(((w/2) - 42)/2, 14, 42, 4, dayOfMonth);
|
||||||
|
|
||||||
drawLock();
|
drawLock();
|
||||||
}
|
// queue next draw
|
||||||
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
drawTimeout = setTimeout(function() {
|
||||||
|
drawTimeout = undefined;
|
||||||
|
draw();
|
||||||
|
}, 60000 - (Date.now() % 60000));
|
||||||
|
};
|
||||||
|
|
||||||
// at x,y width:wi thicknes:th
|
// at x,y width:wi thicknes:th
|
||||||
function drawCalendar(x,y,wi,th,str) {
|
let drawCalendar = function(x,y,wi,th,str) {
|
||||||
g.setColor(theme.fg);
|
g.setColor(theme.fg);
|
||||||
g.fillRect(x, y, x + wi, y + wi);
|
g.fillRect(x, y, x + wi, y + wi);
|
||||||
g.setColor(theme.bg);
|
g.setColor(theme.bg);
|
||||||
|
@ -100,9 +108,9 @@ function drawCalendar(x,y,wi,th,str) {
|
||||||
g.setFontLECO1976Regular22();
|
g.setFontLECO1976Regular22();
|
||||||
g.setFontAlign(0, 0);
|
g.setFontAlign(0, 0);
|
||||||
g.drawString(str, x + wi/2, y + wi/2 + th);
|
g.drawString(str, x + wi/2, y + wi/2 + th);
|
||||||
}
|
};
|
||||||
|
|
||||||
function loadThemeColors() {
|
let loadThemeColors = function() {
|
||||||
theme = {fg: g.theme.fg, bg: g.theme.bg, day: g.toColor(0,0,0)};
|
theme = {fg: g.theme.fg, bg: g.theme.bg, day: g.toColor(0,0,0)};
|
||||||
if (settings.theme === "Dark") {
|
if (settings.theme === "Dark") {
|
||||||
theme.fg = g.toColor(1,1,1);
|
theme.fg = g.toColor(1,1,1);
|
||||||
|
@ -114,9 +122,9 @@ function loadThemeColors() {
|
||||||
// day and steps
|
// day and steps
|
||||||
if (settings.color == 'Blue' || settings.color == 'Red')
|
if (settings.color == 'Blue' || settings.color == 'Red')
|
||||||
theme.day = g.toColor(1,1,1); // white on blue or red best contrast
|
theme.day = g.toColor(1,1,1); // white on blue or red best contrast
|
||||||
}
|
};
|
||||||
|
|
||||||
function drawLock(){
|
let drawLock = function(){
|
||||||
if (settings.showlock) {
|
if (settings.showlock) {
|
||||||
if (Bangle.isLocked()){
|
if (Bangle.isLocked()){
|
||||||
g.setColor(theme.day);
|
g.setColor(theme.day);
|
||||||
|
@ -127,27 +135,28 @@ function drawLock(){
|
||||||
g.fillRect(0, 0, 20, 20);
|
g.fillRect(0, 0, 20, 20);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
Bangle.on('lock', function(on) {
|
Bangle.on('lock', drawLock);
|
||||||
drawLock();
|
|
||||||
});
|
|
||||||
|
|
||||||
Bangle.setUI("clock");
|
// Show launcher when middle button pressed
|
||||||
|
Bangle.setUI({
|
||||||
|
mode : "clock",
|
||||||
|
remove : function() {
|
||||||
|
// Called to unload all of the clock app
|
||||||
|
Bangle.removeListener('lock', drawLock);
|
||||||
|
if (drawTimeout) clearTimeout(drawTimeout);
|
||||||
|
drawTimeout = undefined;
|
||||||
|
delete Graphics.prototype.setFontLECO1976Regular22;
|
||||||
|
delete Graphics.prototype.setFontLECO1976Regular42;
|
||||||
|
require("widget_utils").show(); // re-show widgets
|
||||||
|
}});
|
||||||
|
|
||||||
g.clear();
|
g.clear();
|
||||||
Bangle.loadWidgets();
|
Bangle.loadWidgets();
|
||||||
|
require("widget_utils").swipeOn(); // hide widgets, make them visible with a swipe
|
||||||
// We are not drawing the widgets as we are taking over the whole screen
|
|
||||||
// so we will blank out the draw() functions of each widget and change the
|
|
||||||
// area to the top bar doesn't get cleared.
|
|
||||||
for (let wd of WIDGETS) {
|
|
||||||
wd.draw=()=>{};
|
|
||||||
wd.area="";
|
|
||||||
}
|
|
||||||
|
|
||||||
loadSettings();
|
loadSettings();
|
||||||
loadThemeColors();
|
loadThemeColors();
|
||||||
setInterval(draw, 15000); // refresh every 15s
|
|
||||||
draw();
|
draw();
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue