1
0
Fork 0
BangleApps/apps/gpsmagcourse/settings.js

76 lines
1.9 KiB
JavaScript
Raw Permalink Normal View History

2023-02-19 10:56:28 +00:00
(function(back) {
var FILE = "gpsmagcourse.json";
// Load settings
const settings = Object.assign({
speed: 6, // when lower then this use direction from compass
compassSrc: 2, // [off, built-in, magnav]
2023-02-19 10:56:28 +00:00
resetCompassOnPwr: true, // reset compass on power on
showWidget: 2, // 0 = never, 1 = when replacing GPS course with compass course, 2 = when GPS is on
}, require("Storage").readJSON(FILE, true) || {});
let magnavInstalled = true;
// Check if magnav is installed
try {
require("magnav");
} catch(err) {
// not installed
magnavInstalled = false;
}
if (!magnavInstalled) {
// adjust settings to work without magnav
if (settings.compassSrc === 2) {
settings.compassSrc = 1;
}
}
2023-02-19 18:15:26 +00:00
const compassSrcOpts = [/*LANG*/"off", /*LANG*/"built-in"];
2023-02-19 10:56:28 +00:00
if (magnavInstalled) {
2023-02-19 18:15:26 +00:00
compassSrcOpts.push(/*LANG*/"magnav");
2023-02-19 10:56:28 +00:00
}
function writeSettings() {
require('Storage').writeJSON(FILE, settings);
}
const menu = {
2023-02-19 18:15:26 +00:00
"" : { "title" : /*LANG*/"GPS/Com.course" },
2023-02-19 10:56:28 +00:00
"< Back" : () => back(),
/*LANG*/'Speed threshold': {
value: settings.speed,
2023-02-19 18:15:26 +00:00
min: 1, max: 20, step: 0.5,
2023-02-19 10:56:28 +00:00
onchange: v => {
settings.speed = v;
writeSettings();
}
},
/*LANG*/'Compass source': {
value: settings.compassSrc,
min: 0, max: compassSrcOpts.length-1,
format: v => compassSrcOpts[v],
onchange: v => {
settings.compassSrc = v;
writeSettings();
}
},
/*LANG*/'Reset compass when powered on': {
value: !!settings.resetCompassOnPwr,
onchange: v => {
settings.resetCompassOnPwr = v;
writeSettings();
}
},
/*LANG*/'Show Widget': {
value: settings.showWidget,
min: 0, max: 2,
2023-02-19 18:15:26 +00:00
format: v => [/*LANG*/"Never", /*LANG*/"Active", /*LANG*/"GPS on"][v],
2023-02-19 10:56:28 +00:00
onchange: v => {
settings.showWidget = v;
writeSettings();
}
},
};
// Show the menu
E.showMenu(menu);
2023-02-19 18:15:26 +00:00
})