mirror of https://github.com/espruino/BangleApps
widpedom: Fix daily goal, don't store settings in separate file
parent
4f7cbbb1b5
commit
a0fa104078
|
@ -786,7 +786,7 @@
|
|||
{ "id": "widpedom",
|
||||
"name": "Pedometer widget",
|
||||
"icon": "widget.png",
|
||||
"version":"0.09",
|
||||
"version":"0.10",
|
||||
"description": "Daily pedometer widget",
|
||||
"tags": "widget",
|
||||
"type":"widget",
|
||||
|
|
|
@ -6,3 +6,4 @@
|
|||
0.07: Tweaks for variable size widget system
|
||||
0.08: Ensure redrawing works with variable size widget system
|
||||
0.09: Add daily goal
|
||||
0.10: Fix daily goal, don't store settings in separate file
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
(function(back) {
|
||||
const SETTINGS_FILE = 'widpedom.settings.json'
|
||||
const PEDOMFILE = "wpedom.json";
|
||||
|
||||
// initialize with default settings...
|
||||
let s = {
|
||||
|
@ -9,13 +9,15 @@
|
|||
// ...and overwrite them with any saved values
|
||||
// This way saved values are preserved if a new version adds more settings
|
||||
const storage = require('Storage')
|
||||
const saved = storage.readJSON(SETTINGS_FILE, 1) || {}
|
||||
const d = storage.readJSON(PEDOMFILE, 1) || {}
|
||||
const saved = d.settings || {}
|
||||
for (const key in saved) {
|
||||
s[key] = saved[key]
|
||||
}
|
||||
|
||||
function save() {
|
||||
storage.write(SETTINGS_FILE, s)
|
||||
d.settings = s
|
||||
storage.write(PEDOMFILE, d)
|
||||
WIDGETS['wpedom'].reload()
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
(() => {
|
||||
const PEDOMFILE = "wpedom.json"
|
||||
const SETTINGS_FILE = "widpedom.settings.json"
|
||||
const DEFAULTS = {
|
||||
'goal': 10000,
|
||||
'progress': false,
|
||||
|
@ -16,7 +15,8 @@
|
|||
let settings;
|
||||
|
||||
function loadSettings() {
|
||||
settings = require('Storage').readJSON(SETTINGS_FILE, 1) || {};
|
||||
const d = require('Storage').readJSON(PEDOMFILE, 1) || {};
|
||||
settings = d.settings || {};
|
||||
}
|
||||
|
||||
function setting(key) {
|
||||
|
@ -25,7 +25,6 @@
|
|||
}
|
||||
|
||||
function drawProgress(stps) {
|
||||
if (setting('progress')) {
|
||||
const width = 24, half = width/2;
|
||||
const goal = setting('goal'), left = Math.max(goal-stps,0);
|
||||
const c = left ? COLORS.progress : COLORS.done;
|
||||
|
@ -51,7 +50,6 @@
|
|||
g.setColor(0).fillPoly(p);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// draw your widget
|
||||
function draw() {
|
||||
|
@ -62,7 +60,7 @@
|
|||
let stps = stp_today.toString();
|
||||
g.reset();
|
||||
g.clearRect(this.x, this.y, this.x + width, this.y + 23); // erase background
|
||||
drawProgress(stps);
|
||||
if (setting('progress')){ drawProgress.call(this, stps); }
|
||||
g.setColor(COLORS.white);
|
||||
if (stps.length > 3){
|
||||
stps = stps.slice(0,-3) + "," + stps.slice(-3);
|
||||
|
@ -104,9 +102,11 @@
|
|||
});
|
||||
// When unloading, save state
|
||||
E.on('kill', () => {
|
||||
if (!settings) { loadSettings() }
|
||||
let d = {
|
||||
lastUpdate : lastUpdate.toISOString(),
|
||||
stepsToday : stp_today
|
||||
stepsToday : stp_today,
|
||||
settings : settings,
|
||||
};
|
||||
require("Storage").write(PEDOMFILE,d);
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue