diff --git a/apps/imageclock/app.js b/apps/imageclock/app.js index 4a027fa9e..72f12943a 100644 --- a/apps/imageclock/app.js +++ b/apps/imageclock/app.js @@ -1,6 +1,7 @@ var watchface = require("Storage").readJSON("imageclock.face.json"); var watchfaceResources = require("Storage").readJSON("imageclock.resources.json"); var precompiledJs = eval(require("Storage").read("imageclock.draw.js")); +var settings = require('Storage').readJSON("imageclock.json", true) || {}; var performanceLog = {}; @@ -12,7 +13,7 @@ var resetPerfLog = () => {performanceLog = {};}; var p0 = g; var p1; -if (false){ +if (settings.perflog){ startPerfLog = function(name){ var time = getTime(); if (!performanceLog.start) performanceLog.start={}; @@ -467,7 +468,7 @@ numbers.MonthTens = () => { return Math.floor((new Date().getMonth() + 1)/10); } numbers.MonthOnes = () => { return Math.floor((new Date().getMonth() + 1)%10); }; numbers.Pulse = () => { return pulse; }; numbers.Steps = () => { return Bangle.getHealthStatus ? Bangle.getHealthStatus("day").steps : undefined; }; -numbers.StepsGoal = () => { return stepsgoal; }; +numbers.StepsGoal = () => { return settings.stepsgoal || 10000; }; numbers.Temperature = () => { return temp; }; numbers.Pressure = () => { return press; }; numbers.Altitude = () => { return alt; }; @@ -490,7 +491,7 @@ multistates.Compass = () => { return Bangle.isCompassOn() ? "on" : "off"; }; multistates.GPS = () => { return Bangle.isGPSOn() ? "on" : "off"; }; multistates.WeatherTemperatureNegative = () => { return getWeatherTemperature().value ? getWeatherTemperature().value : 0 < 0; }; multistates.WeatherTemperatureUnit = () => { return getWeatherTemperature().unit; }; -multistates.StepsGoal = () => { return (numbers.Steps() >= stepsgoal) ? "on": "off"; }; +multistates.StepsGoal = () => { return (numbers.Steps() >= (settings.stepsgoal || 10000)) ? "on": "off"; }; function drawMultiState(graphics, resources, element){ startPerfLog("drawMultiState"); @@ -615,8 +616,6 @@ var redrawEvents = getByPath(watchface, ["Properties","Redraw","Events"]); var clearOnRedraw = getByPath(watchface, ["Properties","Redraw","Clear"]); var events = getByPath(watchface, ["Properties","Events"]); -var stepsgoal = 2000; - //print("events", events); //print("redrawEvents", redrawEvents); diff --git a/apps/imageclock/metadata.json b/apps/imageclock/metadata.json index cc227e977..a2594653e 100644 --- a/apps/imageclock/metadata.json +++ b/apps/imageclock/metadata.json @@ -13,6 +13,7 @@ "readme": "README.md", "storage": [ {"name":"imageclock.app.js","url":"app.js"}, + {"name":"imageclock.settings.js","url":"settings.js"}, {"name":"imageclock.img","url":"app-icon.js","evaluate":true} ] } diff --git a/apps/imageclock/settings.js b/apps/imageclock/settings.js new file mode 100644 index 000000000..a86901b9e --- /dev/null +++ b/apps/imageclock/settings.js @@ -0,0 +1,35 @@ +(function(back) { + var FILE = "imageclock.json"; + + var settings = Object.assign({ + stepsgoal: 10000, + perflog: false + }, require('Storage').readJSON(FILE, true) || {}); + + function writeSettings() { + require('Storage').writeJSON(FILE, settings); + } + + E.showMenu({ + '': { 'title': 'Imageclock' }, + '< Back': back, + 'Steps goal': { + value: settings.stepsgoal, + min: 0, + step: 500, + max: 50000, + onchange: v => { + settings.stepsgoal = v; + writeSettings(); + } + }, + 'Performance log': { + value: !!settings.perflog, + format: v => settings.perflog ? "On" : "Off", + onchange: v => { + settings.perflog = v; + writeSettings(); + } + } + }); +})