Merge pull request #461 from rigrig/simpletimer
Simpletimer: remember last set time, make BTN2 workmaster
commit
c32eccd66a
|
|
@ -1634,7 +1634,7 @@
|
|||
"id": "simpletimer",
|
||||
"name": "Timer",
|
||||
"icon": "app.png",
|
||||
"version": "0.03",
|
||||
"version": "0.04",
|
||||
"description": "Simple timer, useful when playing board games or cooking",
|
||||
"tags": "timer",
|
||||
"readme": "README.md",
|
||||
|
|
@ -1659,6 +1659,11 @@
|
|||
"url": "app-icon.js",
|
||||
"evaluate": true
|
||||
}
|
||||
],
|
||||
"data": [
|
||||
{
|
||||
"name": "simpletimer.json"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
0.01: Initial version
|
||||
0.02: Reset with gesture
|
||||
0.03: BTN2 to open launcher
|
||||
0.04: Remember last set time
|
||||
|
|
@ -15,4 +15,5 @@ Simple timer, useful when playing board games or cooking
|
|||
- Tap on seconds to increase them one by one
|
||||
- Press BTN3 to reset time to 0
|
||||
- Press BTN1 to start the timer or reset to the original time
|
||||
- Press BTN2 to return to the launcher (only while countdown is not running)
|
||||
- When the time is up use the [swipeleft](https://github.com/espruino/BangleApps/tree/master/apps/gesture) gesture to reset the timer
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@ let counter = 0;
|
|||
let setValue = 0;
|
||||
let counterInterval;
|
||||
let state;
|
||||
let saved = require("Storage").readJSON("simpletimer.json",true) || {};
|
||||
|
||||
const DEBOUNCE = 50;
|
||||
|
||||
|
|
@ -61,6 +62,8 @@ function clearIntervals() {
|
|||
function set(delta) {
|
||||
if (state === "started") return;
|
||||
counter += delta;
|
||||
saved.counter = counter;
|
||||
require("Storage").write("simpletimer.json", saved);
|
||||
if (state === "unset") {
|
||||
state = "set";
|
||||
}
|
||||
|
|
@ -111,7 +114,6 @@ function reset(value) {
|
|||
state = value === 0 ? "unset" : "set";
|
||||
}
|
||||
|
||||
setWatch(Bangle.showLauncher, BTN2, { repeat: false, edge: "falling" });
|
||||
function addWatch() {
|
||||
clearWatch();
|
||||
setWatch(changeState, BTN1, {
|
||||
|
|
@ -119,6 +121,16 @@ function addWatch() {
|
|||
repeat: true,
|
||||
edge: "falling"
|
||||
});
|
||||
setWatch(() => {
|
||||
if (state !== "started") {
|
||||
Bangle.showLauncher();
|
||||
}},
|
||||
BTN2,
|
||||
{
|
||||
repeat: false,
|
||||
edge: "falling",
|
||||
},
|
||||
);
|
||||
setWatch(
|
||||
() => {
|
||||
reset(0);
|
||||
|
|
@ -151,5 +163,5 @@ Bangle.on("aiGesture", gesture => {
|
|||
if (gesture === "swipeleft" && state === "stopped") reset(0);
|
||||
});
|
||||
|
||||
reset(0);
|
||||
reset(saved.counter || 0);
|
||||
addWatch();
|
||||
|
|
|
|||
Loading…
Reference in New Issue