Added settings for fullscreen mode

master
David Peer 2022-03-25 16:14:30 +01:00
parent 034026019a
commit 1267860420
5 changed files with 72 additions and 7 deletions

View File

@ -1 +1,2 @@
0.01: New App! 0.01: New App!
0.02: Fullscreen settings.

View File

@ -1,4 +1,13 @@
# 90s Clock # 90s Clock
A watch face in 90s style:
![](screenshot.png) ![](screenshot.png)
# Settings
In the settings you can enable / disable the fullscreen mode.
## Creator
- [David Peer](https://github.com/peerdavid)

View File

@ -1,4 +1,19 @@
const SETTINGS_FILE = "90sclk.setting.json";
const locale = require('locale'); const locale = require('locale');
const storage = require('Storage');
/*
* Load settings
*/
let settings = {
fullscreen: false,
};
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
for (const key in saved_settings) {
settings[key] = saved_settings[key]
}
function getImg() { function getImg() {
@ -60,9 +75,9 @@ function getSteps() {
function draw() { function draw() {
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
var x = g.getWidth()/2; var x = g.getWidth()/2;
var y = g.getHeight()/2-20; var y_offset = settings.fullscreen ? 0 : 10;
var y = g.getHeight()/2-20 + y_offset;
g.reset().clearRect(0,24,g.getWidth(),g.getHeight()); g.reset().clearRect(0,24,g.getWidth(),g.getHeight());
g.drawImage(getImg(),0,0); g.drawImage(getImg(),0,0);
@ -89,6 +104,13 @@ function draw() {
var steps = parseInt(getSteps() / 1000); var steps = parseInt(getSteps() / 1000);
drawBorderString(steps, g.getWidth()-10, g.getHeight()-10, 3, "#f0f"); drawBorderString(steps, g.getWidth()-10, g.getHeight()-10, 3, "#f0f");
// Draw widgets if not fullscreen
if(settings.fullscreen){
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
} else {
Bangle.drawWidgets();
}
// queue draw in one minute // queue draw in one minute
queueDraw(); queueDraw();
} }
@ -96,7 +118,7 @@ function draw() {
Bangle.loadWidgets(); Bangle.loadWidgets();
// Clear the screen once, at startup // Clear the screen once, at startup
g.setTheme({bg:"#fff",fg:"#fff",dark:false}).clear(); g.setTheme({bg:"#000",fg:"#fff",dark:false}).clear();
// draw immediately at first, queue update // draw immediately at first, queue update
draw(); draw();
// Stop updates when LCD is off, restart when on // Stop updates when LCD is off, restart when on

View File

@ -1,8 +1,9 @@
{ {
"id": "90sclk", "id": "90sclk",
"name": "90s Clock", "name": "90s Clock",
"version": "0.01", "version": "0.02",
"description": "A clock in 90s style", "description": "A 90s style watch-face",
"readme": "README.md",
"icon": "app.png", "icon": "app.png",
"screenshots": [{"url":"screenshot.png"}], "screenshots": [{"url":"screenshot.png"}],
"type": "clock", "type": "clock",
@ -11,6 +12,7 @@
"allow_emulator": true, "allow_emulator": true,
"storage": [ "storage": [
{"name":"90sclk.app.js","url":"app.js"}, {"name":"90sclk.app.js","url":"app.js"},
{"name":"90sclk.img","url":"app-icon.js","evaluate":true} {"name":"90sclk.img","url":"app-icon.js","evaluate":true},
{"name":"90sclk.settings.js","url":"settings.js"}
] ]
} }

31
apps/90sclk/settings.js Normal file
View File

@ -0,0 +1,31 @@
(function(back) {
const SETTINGS_FILE = "90sclk.setting.json";
// initialize with default settings...
const storage = require('Storage')
let settings = {
fullscreen: false,
};
let saved_settings = storage.readJSON(SETTINGS_FILE, 1) || settings;
for (const key in saved_settings) {
settings[key] = saved_settings[key]
}
function save() {
storage.write(SETTINGS_FILE, settings)
}
E.showMenu({
'': { 'title': '90s Clock' },
'< Back': back,
'Full Screen': {
value: settings.fullscreen,
format: () => (settings.fullscreen ? 'Yes' : 'No'),
onchange: () => {
settings.fullscreen = !settings.fullscreen;
save();
},
}
});
})