welcome 0.10: Tweaks to reduce memory usage

pull/756/head
Gordon Williams 2021-05-28 14:47:17 +01:00
parent 2f2bd423dd
commit 48c4b79026
3 changed files with 35 additions and 31 deletions

View File

@ -105,7 +105,7 @@
{ "id": "welcome", { "id": "welcome",
"name": "Welcome", "name": "Welcome",
"icon": "app.png", "icon": "app.png",
"version":"0.09", "version":"0.10",
"description": "Appears at first boot and explains how to use Bangle.js", "description": "Appears at first boot and explains how to use Bangle.js",
"tags": "start,welcome", "tags": "start,welcome",
"allow_emulator":true, "allow_emulator":true,

View File

@ -11,3 +11,4 @@
0.09: Allow welcome to run after a fresh install 0.09: Allow welcome to run after a fresh install
More useful app menu More useful app menu
BTN2 now goes to menu on release BTN2 now goes to menu on release
0.10: Tweaks to reduce memory usage

View File

@ -11,7 +11,7 @@ function animate(seq,period) {
// Fade in to FG color with angled lines // Fade in to FG color with angled lines
function fade(callback) { function fade(callback) {
var n = 0; var n = 0;
function f() { function f() {"ram"
for (var i=n;i<240;i+=10) { for (var i=n;i<240;i+=10) {
g.drawLine(i,0,0,i); g.drawLine(i,0,0,i);
g.drawLine(i,240,240,i); g.drawLine(i,240,240,i);
@ -24,16 +24,17 @@ function fade(callback) {
f(); f();
} }
var SCENE_COUNT=11;
var scenes = [ function getScene(n) {
function() { if (n==0) return function() {
g.clear(1); g.clear(1);
g.setFont("4x6",2); g.setFont("4x6",2);
var n=0; var n=0;
var l = Bangle.getLogo();
var i = setInterval(function() { var i = setInterval(function() {
n+=0.04; n+=0.04;
g.setColor(n,n,n); g.setColor(n,n,n);
g.drawImage(Bangle.getLogo(),(240-222)/2,(240-100)/2); g.drawImage(l,(240-222)/2,(240-100)/2);
if (n>=1) { if (n>=1) {
clearInterval(i); clearInterval(i);
setTimeout(()=>g.drawString("Open",34,144), 500); setTimeout(()=>g.drawString("Open",34,144), 500);
@ -41,7 +42,8 @@ var scenes = [
setTimeout(()=>g.drawString("Smart Watch",34,168), 1500); setTimeout(()=>g.drawString("Smart Watch",34,168), 1500);
} }
},50); },50);
},function() { };
if (n==1) return function() {
var img = require("heatshrink").decompress(atob("ptRxH+qYAfvl70mj5gAC0ekvd8FkAAdz3HJAYAH4+eJXWkJJYAF0hK2vfNJaIAB5t7S3fN5/V6wAD6vOTg9SumXy2W3QAB3eXul2JdnO63XAApPEVYvAJQIACJoRQDzBLoJQ3W5/NIwr4GJohMFAAROgJYvVJQiPGABZNN3bsdvYyESwnWJSIAC3RNM3V1JjZAES4nVJSYAB4xMNJrbkE56WD5xLVdB5NbFofNJbgABJh26qREPrFXrlbAAWjFgfWJgRLaTQhMLy5KNJINhsJLDrYrD5xLC6pLa5nGTR7oLq9bJQJMKTAXWJbbnR3RLJSoRMHv4pC5rkec6SaIrBLGw2r2XW1epcoqYeJiOXJYziEsOH2RBBw7lF56Yg5nGc6FScZOGJQPX2TmDFIfVTEBMSc4hLEw5KB6+rsJMH63X6pMf5hMQzBLCq5LD1ZLEJhTlfJiWXTA2GJYpMIcwPNc2O6TAuGRIPX1igDJg/PJmyYDcgXWwxMH1ApC53XcsHAJiVYcg2HJYZME0YpC5vWJkhLNJgLlDTAeFJhF/FQfVJkG6JiGXcomyJgOrJYhMErYqD53NJj7lRzBMDcoeGJhzoBJb3GJiN1qZBCJgWyJYpNF1LigAAXAJiNSJgzlGJgt/JkZLRy9TJgeHJhznFcuSZGw5MHJomjcuhLBqdcJiSaiTChMV1CYxy5LCqdXIAWy6+rJhCalTCN2JgdYH4WHJiGpTF7kDc43W2RMJTUZLQzBLFc4mr6+GJh2jTFmXJYyaEwuyc5Sag4xLZTQmG2WFJhxNaJYZMLJZSaEJoOHTR9/Ja+6JbdTqRNETRRNF1JLV4BLcAANYI5ToK1BLYJhWYJZwABq5NoJZ91JaAABdAZNS0ZLey9SJaRNYv5KM426JZmXuxKUJrKcL0lTzBLKzBKYJrVXvfGSol7EYWXJI27zF1JLQADq5NUrgYB4wAEEIV0comXI7wAFrCcPJgYWBTIIAETIN2JYmWuhMkdSdYCgOeJgueqRLFyzhfTi9bq4TC45MF49TuuXJlpONcogAC0hKB0gHDvZMEqRMpAANSq9crlbJAYADqwRDxGk0mIA4eCTQOeveXJdYAHqxNFdAeIAAQGCrOI0oHEAGVXTRJMGvgGCwRM7TAZMHwQGCvhM1rBMERIhMGAwdZJmtSqVTwNcwJEDJg19cvIADa4d9JhANDJnSLHJgrl6AAhFFAwpZDegjn7vhMGcvwABrJAFJgjl/TQpBBI4jl/AAN8TQhHDcv4ADcJBMDvpM+IYaeDAAhL+qd9SgycEJn7iEAA18Jf7nEcv4AIrJLIcv6aMcv4ADvhMHrJJ/AAbl/c6ZM/AAt9cv7nSIv7nLcv4AHrLl/TRpJBvgnjA==")); var img = require("heatshrink").decompress(atob("ptRxH+qYAfvl70mj5gAC0ekvd8FkAAdz3HJAYAH4+eJXWkJJYAF0hK2vfNJaIAB5t7S3fN5/V6wAD6vOTg9SumXy2W3QAB3eXul2JdnO63XAApPEVYvAJQIACJoRQDzBLoJQ3W5/NIwr4GJohMFAAROgJYvVJQiPGABZNN3bsdvYyESwnWJSIAC3RNM3V1JjZAES4nVJSYAB4xMNJrbkE56WD5xLVdB5NbFofNJbgABJh26qREPrFXrlbAAWjFgfWJgRLaTQhMLy5KNJINhsJLDrYrD5xLC6pLa5nGTR7oLq9bJQJMKTAXWJbbnR3RLJSoRMHv4pC5rkec6SaIrBLGw2r2XW1epcoqYeJiOXJYziEsOH2RBBw7lF56Yg5nGc6FScZOGJQPX2TmDFIfVTEBMSc4hLEw5KB6+rsJMH63X6pMf5hMQzBLCq5LD1ZLEJhTlfJiWXTA2GJYpMIcwPNc2O6TAuGRIPX1igDJg/PJmyYDcgXWwxMH1ApC53XcsHAJiVYcg2HJYZME0YpC5vWJkhLNJgLlDTAeFJhF/FQfVJkG6JiGXcomyJgOrJYhMErYqD53NJj7lRzBMDcoeGJhzoBJb3GJiN1qZBCJgWyJYpNF1LigAAXAJiNSJgzlGJgt/JkZLRy9TJgeHJhznFcuSZGw5MHJomjcuhLBqdcJiSaiTChMV1CYxy5LCqdXIAWy6+rJhCalTCN2JgdYH4WHJiGpTF7kDc43W2RMJTUZLQzBLFc4mr6+GJh2jTFmXJYyaEwuyc5Sag4xLZTQmG2WFJhxNaJYZMLJZSaEJoOHTR9/Ja+6JbdTqRNETRRNF1JLV4BLcAANYI5ToK1BLYJhWYJZwABq5NoJZ91JaAABdAZNS0ZLey9SJaRNYv5KM426JZmXuxKUJrKcL0lTzBLKzBKYJrVXvfGSol7EYWXJI27zF1JLQADq5NUrgYB4wAEEIV0comXI7wAFrCcPJgYWBTIIAETIN2JYmWuhMkdSdYCgOeJgueqRLFyzhfTi9bq4TC45MF49TuuXJlpONcogAC0hKB0gHDvZMEqRMpAANSq9crlbJAYADqwRDxGk0mIA4eCTQOeveXJdYAHqxNFdAeIAAQGCrOI0oHEAGVXTRJMGvgGCwRM7TAZMHwQGCvhM1rBMERIhMGAwdZJmtSqVTwNcwJEDJg19cvIADa4d9JhANDJnSLHJgrl6AAhFFAwpZDegjn7vhMGcvwABrJAFJgjl/TQpBBI4jl/AAN8TQhHDcv4ADcJBMDvpM+IYaeDAAhL+qd9SgycEJn7iEAA18Jf7nEcv4AIrJLIcv6aMcv4ADvhMHrJJ/AAbl/c6ZM/AAt9cv7nSIv7nLcv4AHrLl/TRpJBvgnjA=="));
g.reset(); g.reset();
g.setColor("#6633ff"); g.setColor("#6633ff");
@ -73,7 +75,8 @@ var scenes = [
},20); },20);
},3500); },3500);
},function() { };
if (n==2) return function() {
g.reset(); g.reset();
g.setBgColor("#ffa800");g.clear(); g.setBgColor("#ffa800");g.clear();
g.setFont("6x8",2); g.setFont("6x8",2);
@ -88,8 +91,8 @@ var scenes = [
()=>g.drawString("2",200,120), ()=>g.drawString("2",200,120),
()=>g.drawString("3",200,200) ()=>g.drawString("3",200,200)
],200); ],200);
}, };
function() { if (n==3) return function() {
g.reset(); g.reset();
g.setBgColor("#00a8ff");g.clear(); g.setBgColor("#00a8ff");g.clear();
g.setFontAlign(0,0); g.setFontAlign(0,0);
@ -98,8 +101,8 @@ var scenes = [
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.setFont("6x8",2); g.setFont("6x8",2);
g.drawString("Move up\nin menus\n\nTurn Bangle.js on\nif it was off", 20,40); g.drawString("Move up\nin menus\n\nTurn Bangle.js on\nif it was off", 20,40);
}, };
function() { if (n==4) return function() {
g.reset(); g.reset();
g.setBgColor("#00a8ff");g.clear(); g.setBgColor("#00a8ff");g.clear();
g.setFontAlign(0,0); g.setFontAlign(0,0);
@ -108,8 +111,8 @@ var scenes = [
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.setFont("6x8",2); g.setFont("6x8",2);
g.drawString("Select menu\nitem\n\nLaunch app\nwhen watch\nis showing", 20,70); g.drawString("Select menu\nitem\n\nLaunch app\nwhen watch\nis showing", 20,70);
}, };
function() { if (n==5) return function() {
g.reset(); g.reset();
g.setBgColor("#00a8ff");g.clear(); g.setBgColor("#00a8ff");g.clear();
g.setFontAlign(0,0); g.setFontAlign(0,0);
@ -118,8 +121,8 @@ var scenes = [
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.setFont("6x8",2); g.setFont("6x8",2);
g.drawString("Move down\nin menus\n\nLong press\nto exit app\nand go back\nto clock", 20,100); g.drawString("Move down\nin menus\n\nLong press\nto exit app\nand go back\nto clock", 20,100);
}, };
function() { if (n==6) return function() {
g.reset(); g.reset();
g.setBgColor("#ff3300");g.clear(); g.setBgColor("#ff3300");g.clear();
g.setFontAlign(0,0); g.setFontAlign(0,0);
@ -129,8 +132,8 @@ var scenes = [
g.setFontAlign(-1,-1); g.setFontAlign(-1,-1);
g.setFont("6x8",2); g.setFont("6x8",2);
g.drawString("If Bangle.js\never stops,\nhold buttons\n1 and 2 for\naround six\nseconds.\n\n\n\nBangle.js will\nthen reboot.", 20,20); g.drawString("If Bangle.js\never stops,\nhold buttons\n1 and 2 for\naround six\nseconds.\n\n\n\nBangle.js will\nthen reboot.", 20,20);
}, };
function() { if (n==7) return function() {
g.reset(); g.reset();
g.setBgColor("#00a8ff");g.clear(); g.setBgColor("#00a8ff");g.clear();
g.setFont("6x8",2); g.setFont("6x8",2);
@ -147,8 +150,8 @@ var scenes = [
g.drawString("work too. Try now",x,y+=h); g.drawString("work too. Try now",x,y+=h);
g.drawString("to change page.",x,y+=h);} g.drawString("to change page.",x,y+=h);}
],300); ],300);
}, };
function() { if (n==8) return function() {
g.reset(); g.reset();
g.setBgColor("#339900");g.clear(); g.setBgColor("#339900");g.clear();
g.setFont("6x8",2); g.setFont("6x8",2);
@ -165,8 +168,8 @@ var scenes = [
g.drawString("with a Bluetooth",x,y+=h); g.drawString("with a Bluetooth",x,y+=h);
g.drawString("capable device",x,y+=h);}, g.drawString("capable device",x,y+=h);},
],400); ],400);
}, };
function() { if (n==9) return function() {
g.reset(); g.reset();
g.setBgColor("#990066");g.clear(); g.setBgColor("#990066");g.clear();
g.setFont("6x8",2); g.setFont("6x8",2);
@ -227,8 +230,8 @@ var scenes = [
} }
setInterval(draw,50); setInterval(draw,50);
}, };
function() { if (n==10) return function() {
g.reset(); g.reset();
g.setBgColor("#660099");g.clear(); g.setBgColor("#660099");g.clear();
g.setFontAlign(0,0); g.setFontAlign(0,0);
@ -245,18 +248,18 @@ var scenes = [
g.drawString("Bangle.js",x,y+=h);} g.drawString("Bangle.js",x,y+=h);}
],400); ],400);
} }
]; }
var sceneNumber = 0; var sceneNumber = 0;
function move(dir) { function move(dir) {
if (dir>0 && sceneNumber+1 == scenes.length) return; // at the end if (dir>0 && sceneNumber+1 == SCENE_COUNT) return; // at the end
sceneNumber = (sceneNumber+dir)%scenes.length; sceneNumber = (sceneNumber+dir)%SCENE_COUNT;
if (sceneNumber<0) sceneNumber=0; if (sceneNumber<0) sceneNumber=0;
clearInterval(); clearInterval();
scenes[sceneNumber](); getScene(sceneNumber)();
if (sceneNumber>1) { if (sceneNumber>1) {
var l = scenes.length; var l = SCENE_COUNT;
for (var i=0;i<l-2;i++) { for (var i=0;i<l-2;i++) {
var x = 120+(i-(l-2)/2)*12; var x = 120+(i-(l-2)/2)*12;
if (i<sceneNumber-1) { if (i<sceneNumber-1) {
@ -270,7 +273,7 @@ function move(dir) {
} }
} }
} }
if (sceneNumber < scenes.length-1) if (sceneNumber < SCENE_COUNT-1)
setTimeout(function() { setTimeout(function() {
move(1); move(1);
}, 5000); }, 5000);
@ -282,7 +285,7 @@ Bangle.on('swipe',move);
setWatch(()=>move(1), BTN3, {repeat:true}); setWatch(()=>move(1), BTN3, {repeat:true});
setWatch(()=>{ setWatch(()=>{
// If we're on the last page // If we're on the last page
if (sceneNumber == scenes.length-1) { if (sceneNumber == SCENE_COUNT-1) {
load(); load();
} }
}, BTN2, {repeat:true,edge:"falling"}); }, BTN2, {repeat:true,edge:"falling"});