forked from FOSS/BangleApps
SliderInput: add function to auto progress
making it possible to track progress in e.g. a song.master
parent
644d23a511
commit
87a8593b04
|
@ -23,6 +23,7 @@ const LAZY = conf.lazy===false?false:true;
|
||||||
const ROUND = conf.rounded?40:0;
|
const ROUND = conf.rounded?40:0;
|
||||||
const PROPAGATE = conf.propagateDrag || false;
|
const PROPAGATE = conf.propagateDrag || false;
|
||||||
const IMMEDIATE_DRAW = conf.immediateDraw || false;
|
const IMMEDIATE_DRAW = conf.immediateDraw || false;
|
||||||
|
const AUTO_PROGRESS = conf.autoProgress || false;
|
||||||
|
|
||||||
const STEP_SIZE = HEIGHT/STEPS;
|
const STEP_SIZE = HEIGHT/STEPS;
|
||||||
|
|
||||||
|
@ -37,8 +38,8 @@ if (ROTATE) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialize the level
|
// Initialize the level
|
||||||
let level;
|
let level = conf.currLevel || STEPS/2;
|
||||||
let prevLevel = conf.currLevel || STEPS/2;
|
let prevLevel;
|
||||||
|
|
||||||
let firstRun = true;
|
let firstRun = true;
|
||||||
let ebLast = 0;
|
let ebLast = 0;
|
||||||
|
@ -90,7 +91,7 @@ let dragSlider = e=>{
|
||||||
else { dy+=32; incr = -1;}
|
else { dy+=32; incr = -1;}
|
||||||
Bangle.buzz(20);
|
Bangle.buzz(20);
|
||||||
|
|
||||||
level = Math.min(Math.max(prevLevel-incr,0),STEPS);
|
level = Math.min(Math.max(level-incr,0),STEPS);
|
||||||
cb("incr",incr);
|
cb("incr",incr);
|
||||||
draw(level);
|
draw(level);
|
||||||
}
|
}
|
||||||
|
@ -133,7 +134,18 @@ if (TIMEOUT) timeout = setTimeout(remove, 1000*TIMEOUT);
|
||||||
let dy = 0;
|
let dy = 0;
|
||||||
g.reset();
|
g.reset();
|
||||||
Bangle.prependListener('drag', dragSlider);
|
Bangle.prependListener('drag', dragSlider);
|
||||||
if (IMMEDIATE_DRAW) draw(prevLevel);
|
if (IMMEDIATE_DRAW) draw(level);
|
||||||
|
|
||||||
|
if (AUTO_PROGRESS) {
|
||||||
|
draw(level);
|
||||||
|
let autoUpdate = ()=>{
|
||||||
|
level = level?level+1:0;
|
||||||
|
draw(level);
|
||||||
|
if (level==STEPS) {clearInterval(autoInterval); return;}
|
||||||
|
};
|
||||||
|
let autoInterval;
|
||||||
|
autoInterval = setInterval(autoUpdate,1000);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
Loading…
Reference in New Issue