diff --git a/apps/runplus/ChangeLog b/apps/runplus/ChangeLog index 6506aace5..645f6cf76 100644 --- a/apps/runplus/ChangeLog +++ b/apps/runplus/ChangeLog @@ -27,4 +27,4 @@ Write to correct settings file, fixing settings not working. 0.24: Add indicators for lock,gps and pulse to karvonen screen 0.25: Fix step count bug when runs are resumed after a long time 0.26: Add ability to zoom in on a single stat by tapping it -0.27: Allow configuration of time after which the user is prompted to resume +0.27: Allow setting to alway resume an activity diff --git a/apps/runplus/app.js b/apps/runplus/app.js index 241df013c..e83112219 100644 --- a/apps/runplus/app.js +++ b/apps/runplus/app.js @@ -1,5 +1,4 @@ let runInterval; -let statusTimeout; let screen = "main"; // main | karvonen | menu | zoom // Run interface wrapped in a function const ExStats = require("exstats"); @@ -27,10 +26,7 @@ let settings = Object.assign({ B5: "step", B6: "caden", paceLength: 1000, - resume: { - promptAfter: 10000, - default: false, - }, + alwaysResume: false, notify: { dist: { value: 0, @@ -54,15 +50,9 @@ let statIDs = [settings.B1,settings.B2,settings.B3,settings.B4,settings.B5,setti let exs = ExStats.getStats(statIDs, settings); // --------------------------- -function inPauseWindow() { - return exs.state.duration <= settings.resume.promptAfter; -} - function setStatus(running) { - const paused = inPauseWindow(); - - layout.button.label = running ? "STOP" : paused ? "RESUME" : "START"; - layout.status.label = running ? "RUN" : paused ? "PAUSE" : "STOP"; + layout.button.label = running ? "STOP" : "START"; + layout.status.label = running ? "RUN" : "STOP"; layout.status.bgCol = running ? "#0f0" : "#f00"; if (screen === "main") layout.render(); } @@ -75,10 +65,10 @@ function onStartStop() { } var running = !exs.state.active; - var shouldResume = settings.resume.default; + var shouldResume = settings.alwaysResume; var promise = Promise.resolve(); - if (running && !inPauseWindow()) { // if more than N seconds of duration, ask if we should resume? + if (!shouldResume && running && exs.state.duration > 10000) { // if more than 10 seconds of duration, ask if we should resume? promise = promise. then(() => { screen = "menu"; @@ -114,8 +104,6 @@ function onStartStop() { } promise.then(() => { - if(statusTimeout) clearTimeout(statusTimeout); - if (running) { if (shouldResume) exs.resume(); @@ -123,12 +111,6 @@ function onStartStop() { exs.start(); } else { exs.stop(); - - // convert start/stop label when pause-window ends - statusTimeout = setTimeout(() => { - statusTimeout = undefined; - setStatus(running); - }, settings.resume.promptAfter); } // if stopping running, don't clear state // so we can at least refer to what we've done diff --git a/apps/runplus/settings.js b/apps/runplus/settings.js index 0d8e48879..77343d6b3 100644 --- a/apps/runplus/settings.js +++ b/apps/runplus/settings.js @@ -17,10 +17,7 @@ B5: "step", B6: "caden", paceLength: 1000, // TODO: Default to either 1km or 1mi based on locale - resume: { - promptAfter: 10000, - default: false, - }, + alwaysResume: false, notify: { dist: { increment: 0, @@ -76,27 +73,17 @@ saveSettings(); } }; + menu[/*LANG*/"Always resume run"] = { + value : settings.alwaysResume, + onchange : v => { + settings.alwaysResume = v; + saveSettings(); + }, + }; var notificationsMenu = { '< Back': function() { E.showMenu(menu) }, } menu[/*LANG*/"Notifications"] = function() { E.showMenu(notificationsMenu)}; - var resumeMenu = { - "Prompt after": { - value : settings.resume.promptAfter / 1000, - onchange : v => { - settings.resume.promptAfter = v * 1000; - saveSettings(); - } - }, - "Resume by default": { - value : settings.resume.default, - onchange : v => { - settings.resume.default = v; - saveSettings(); - }, - }, - }; - menu[/*LANG*/"Resume"] = function() { E.showMenu(resumeMenu) }; ExStats.appendMenuItems(menu, settings, saveSettings); ExStats.appendNotifyMenuItems(notificationsMenu, settings, saveSettings); var vibPatterns = [/*LANG*/"Off", ".", "-", "--", "-.-", "---"];