1
0
Fork 0

Add settings to configure prompt

master
Dennis Kueper 2023-08-16 08:44:25 +02:00
parent 656b8a275c
commit f0304b5b43
4 changed files with 62 additions and 6 deletions

View File

@ -1,2 +1,3 @@
0.01: New app! 0.01: New app!
0.02: Add prompt before shutdown 0.02: Add prompt before shutdown
0.03: Add settings to configure prompt

View File

@ -1,14 +1,19 @@
g.clear(); g.clear();
E.showPrompt('Are you sure?', { let settings = require('Storage').readJSON("poweroff.json", true) || {};
let showPrompt;
showPrompt = def(settings.showPrompt, true);
if (showPrompt) {
E.showPrompt('Are you sure?', {
title: 'Power off', title: 'Power off',
buttons: { Yes: true, No: false }, buttons: { Yes: true, No: false },
}).then((confirm) => { }).then((confirm) => {
if (!confirm) { if (!confirm) {
setTimeout(load, 100); setTimeout(load, 100);
return; return;
} }
}
g.setFont("6x8",2).setFontAlign(0,0); g.setFont("6x8",2).setFontAlign(0,0);
var x = g.getWidth()/2; var x = g.getWidth()/2;
var y = g.getHeight()/2 + 10; var y = g.getHeight()/2 + 10;

View File

@ -1,7 +1,7 @@
{ "id": "poweroff", { "id": "poweroff",
"name": "Poweroff", "name": "Poweroff",
"shortName":"Poweroff", "shortName":"Poweroff",
"version":"0.02", "version":"0.03",
"description": "Simple app to power off your Bangle.js", "description": "Simple app to power off your Bangle.js",
"icon": "app.png", "icon": "app.png",
"tags": "tool, poweroff, shutdown", "tags": "tool, poweroff, shutdown",
@ -10,6 +10,10 @@
"allow_emulator": true, "allow_emulator": true,
"storage": [ "storage": [
{"name":"poweroff.app.js","url":"app.js"}, {"name":"poweroff.app.js","url":"app.js"},
{"name":"poweroff.img","url":"app-icon.js","evaluate":true} {"name":"poweroff.img","url":"app-icon.js","evaluate":true},
] {"name":"poweroff.settings.js","url":"settings.js"}
],
"data": [
{"name":"poweroff.json"}
]
} }

46
apps/poweroff/settings.js Normal file
View File

@ -0,0 +1,46 @@
(function(back) {
var FILE = "poweroff.json";
var settings = Object.assign({
secondsOnUnlock: false,
}, require('Storage').readJSON(FILE, true) || {});
function writeSettings() {
require('Storage').writeJSON(FILE, settings);
}
// Helper method which uses int-based menu item for set of string values
function stringItems(startvalue, writer, values) {
return {
value: (startvalue === undefined ? 0 : values.indexOf(startvalue)),
format: v => values[v],
min: 0,
max: values.length - 1,
wrap: true,
step: 1,
onchange: v => {
writer(values[v]);
writeSettings();
}
};
}
// Helper method which breaks string set settings down to local settings object
function stringInSettings(name, values) {
return stringItems(settings[name], v => settings[name] = v, values);
}
var mainmenu = {
"": {
"title": "Poweroff"
},
"< Back": () => back(),
"Show prompt": {
value: (settings.showPrompt !== undefined ? settings.showPrompt : true),
onchange: v => {
settings.showPrompt = v;
writeSettings();
}
}
};
E.showMenu(mainmenu);
});