diff --git a/apps/powersave/ChangeLog b/apps/powersave/ChangeLog new file mode 100644 index 000000000..a0e6da646 --- /dev/null +++ b/apps/powersave/ChangeLog @@ -0,0 +1,2 @@ +0.01: Initial release +0.02: Removed accelerometer poll interval adjustment, fixed a few issues with detecting the current app \ No newline at end of file diff --git a/apps/powersave/README.md b/apps/powersave/README.md index 5be5e32b5..51ba044e1 100644 --- a/apps/powersave/README.md +++ b/apps/powersave/README.md @@ -6,7 +6,6 @@ Save your watch's battery power by halting foreground app execution while the sc - Stops foreground app processes - Background processes still run - Clears screen -- Decreases accelerometer polls - Foreground app is returned to when screen is turned back on (app state is not preserved) ## Controls @@ -14,7 +13,6 @@ Save your watch's battery power by halting foreground app execution while the sc - Deactivates when screen is turned back on ## Warnings -- Due to an Espruino bug, this does not take affect immediately when installed. Switch apps for these features to take affect. - This is not compatible with apps that need to run in the foreground even while the screen is off, such as most stopwatch apps and some health trackers. - If you check your watch super often (like multiple times per minute), this may end of costing you more power than it saves since the app you are using will have to restart everytime you check it. diff --git a/apps/powersave/boot.js b/apps/powersave/boot.js index d170e9d59..b8c2c3f78 100644 --- a/apps/powersave/boot.js +++ b/apps/powersave/boot.js @@ -1,15 +1,15 @@ var Storage = Storage || require("Storage"); Bangle.on("lock", locked => { if(locked){ - g.clear().reset(); - Bangle.setLCDBrightness(0); - Bangle.setPollInterval(1000); load("powersave.screen.js"); }else{ - load(Storage.read("resumeaftersleep") || JSON.parse(Storage.read("setting.json")).clock); + const data = JSON.parse(Storage.read("powersave.json") || Storage.read("setting.json")); + load(data.app || data.clock); } }); E.on("init", () => { - if(__FILE__ && __FILE__ !== "powersave.screen.js") - Storage.write("resumeaftersleep", __FILE__); + if("__FILE__" in global && __FILE__ !== "powersave.screen.js") + Storage.write("powersave.json", { + app: __FILE__ + }); }); \ No newline at end of file diff --git a/apps/powersave/metadata.json b/apps/powersave/metadata.json index 50603b2c2..cb2ad9456 100644 --- a/apps/powersave/metadata.json +++ b/apps/powersave/metadata.json @@ -1,7 +1,7 @@ { "id": "powersave", "name": "Power Save", - "version": "0.01", + "version": "0.02", "description": "Halts foreground app execution while screen is off while still allowing background processes.", "readme": "README.md", "icon": "powersave.png", @@ -11,5 +11,8 @@ "storage": [ {"name":"powersave.boot.js","url":"boot.js"}, {"name":"powersave.screen.js","url":"boot.js"} + ], + "data": [ + {"name": "powersave.json"} ] } \ No newline at end of file diff --git a/apps/powersave/screen.js b/apps/powersave/screen.js index f987f0bbb..c920b205d 100644 --- a/apps/powersave/screen.js +++ b/apps/powersave/screen.js @@ -1,7 +1,7 @@ -var Storage = Storage || require("Storage"); g.clear(); Bangle.setLCDBrightness(0); -Bangle.setPollInterval(1000); if(!Bangle.isLocked()){ - load(Storage.read("resumeaftersleep") || JSON.parse(Storage.read("setting.json")).clock); + var Storage = Storage || require("Storage"); + const data = JSON.parse(Storage.read("powersave.json") || Storage.read("setting.json")); + load(data.app || data.clock); } \ No newline at end of file