Add settings to configure prompt

pull/2974/head
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.02: Add prompt before shutdown
0.03: Add settings to configure prompt

View File

@ -1,14 +1,19 @@
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',
buttons: { Yes: true, No: false },
}).then((confirm) => {
}).then((confirm) => {
if (!confirm) {
setTimeout(load, 100);
return;
}
}
g.setFont("6x8",2).setFontAlign(0,0);
var x = g.getWidth()/2;
var y = g.getHeight()/2 + 10;

View File

@ -1,7 +1,7 @@
{ "id": "poweroff",
"name": "Poweroff",
"shortName":"Poweroff",
"version":"0.02",
"version":"0.03",
"description": "Simple app to power off your Bangle.js",
"icon": "app.png",
"tags": "tool, poweroff, shutdown",
@ -10,6 +10,10 @@
"allow_emulator": true,
"storage": [
{"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);
});