1
0
Fork 0
BangleApps/apps/sevenmin/app.js

109 lines
3.4 KiB
JavaScript
Raw Permalink Normal View History

2022-11-17 01:27:08 +00:00
/*
'Jumping jacks',
'Wall sit',
'Pushups',
'Crunches',
'Step-up onto chair, alternating legs',
'Squats',
'Triceps dips, using a chair or bench',
'Forearm plank',
'High-knees or running in place',
'Lunges, alternating legs',
'Pushups with rotation, alternating sides',
'Side plank',
Once you've completed all 12 exercises, take a break for 12 minutes and repeat the circuit another 23 times.
*/
{
let R = Bangle.appRect;
let instructions = ['Rest\n\nNext up:\n\n',
'Tap to start!',
'Get ready!\nFirst up:\n',
'Jumping jacks',
'Wall sit',
'Pushups',
'Crunches',
'Step-up onto\nchair,\nalternating legs',
'Squats',
'Triceps dips,\n using\ a\nchair or bench',
'Forearm plank',
'High-knees or\nrunning in place',
'Lunges,\nalternating legs',
'Pushups with\nrotation,\nalternating sides',
'Side plank',
'Workout done!'
];
Bangle.setLCDTimeout(0);
Bangle.setLocked(false);
let draw = function(instruction) {
g.reset();
g.clearRect(R);
g.setFont12x20();
g.setFontAlign(0,0,0);
g.drawString(instruction, R.w/2, R.h/2);
};
let endWorkout = function(interval) {
draw(instructions[instructions.length-1]);
clearInterval(interval);
ongoing = false;
};
let cycle = 40; // standard cycle is 40 seconds
let scaling = cycle/40; // scaling if changing cycle length
let ongoing = false;
let touchHandler = function() {
if (!ongoing) {
Bangle.buzz();
ongoing = true;
// Get ready!
draw(instructions[2]+instructions[3]);
let i = 3;
// buzzes before start
setTimeout(()=>{let j = 0; let buzzes = setInterval(()=>{Bangle.buzz(200*scaling); j++; if (j==5) clearInterval(buzzes);}, 1*1000*scaling);}, 4*1000*scaling);
// timeout till first excercise
2024-03-04 20:34:50 +00:00
setTimeout(()=>{draw(instructions[i]);i++;}, 10*1000*scaling);
2022-11-17 01:27:08 +00:00
// buzzes before first rest
setTimeout(()=>{let j = 0; let buzzes = setInterval(()=>{Bangle.buzz(200*scaling); j++; if (j==5) clearInterval(buzzes);}, 1*1000*scaling);}, 34*1000*scaling);
// interval containing rest and excercises 10+30=40
let interval = setInterval(()=>{
if (i==instructions.length-1) {
endWorkout(interval);
} else {
// draw pause message
draw(instructions[0]+instructions[i]);
// buzzes before next excercise
setTimeout(()=>{let j = 0; let buzzes = setInterval(()=>{Bangle.buzz(200*scaling); j++; if (j==5) clearInterval(buzzes);}, 1*1000*scaling);}, 4*1000*scaling);
// timeout till next excercise
setTimeout(()=>{draw(instructions[i]);i++;}, 10*1000*scaling);
// buzzes before next rest
setTimeout(()=>{let j = 0; let buzzes = setInterval(()=>{Bangle.buzz(200*scaling); j++; if (j==5) clearInterval(buzzes);}, 1*1000*scaling);}, 34*1000*scaling);
}
}, 40*1000*scaling);
}
};
2024-03-04 20:34:50 +00:00
/*
2022-11-17 01:27:08 +00:00
let swipeHandler = function() {
};
2024-03-04 20:34:50 +00:00
*/
2022-11-17 01:27:08 +00:00
let uiMode = {
mode : 'custom',
back : load,
touch : touchHandler,
//swipe : swipeHandler
};
Bangle.setUI(uiMode);
Bangle.loadWidgets();
// Tap to start!
draw(instructions[1]);
}