Merge pull request #461 from rigrig/simpletimer

Simpletimer: remember last set time, make BTN2 work
master
Gordon Williams 2020-05-29 08:53:15 +01:00 committed by GitHub
commit c32eccd66a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 3 deletions

View File

@ -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"
}
]
},
{

View File

@ -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

View File

@ -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

View File

@ -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();