BangleApps/apps/rebble/rebble.settings.js

86 lines
2.0 KiB
JavaScript
Raw Normal View History

2021-12-11 13:50:02 +00:00
(function(back) {
const SETTINGS_FILE = "rebble.json";
// initialize with default settings...
2024-01-21 22:43:16 +00:00
let localSettings = {'bg': '#0f0', 'color': 'Green', 'autoCycle': true, 'fullScreen': true, 'sideTap':0};
//sideTap 0 = on| 1= sideBar1 | 2 = ...
2021-12-11 13:50:02 +00:00
// ...and overwrite them with any saved values
// This way saved values are preserved if a new version adds more settings
const storage = require('Storage')
let settings = storage.readJSON(SETTINGS_FILE, 1) || localSettings;
2022-05-19 23:26:11 +00:00
2021-12-11 13:50:02 +00:00
const saved = settings || {}
for (const key in saved) {
localSettings[key] = saved[key]
2021-12-11 13:50:02 +00:00
}
let save=function() {
settings = localSettings
2021-12-11 13:50:02 +00:00
storage.write(SETTINGS_FILE, settings)
}
let color_options = ['Green','Orange','Cyan','Purple','Red','Blue'];
let bg_code = ['#0f0','#ff0','#0ff','#f0f','#f00','#00f'];
2021-12-11 13:50:02 +00:00
2022-05-19 23:26:11 +00:00
function showMenu()
{
const menu={
'': { 'title': 'Rebble Clock' },
'< Back': back,
'Colour': {
value: 0 | color_options.indexOf(localSettings.color),
min: 0, max: 5,
format: v => color_options[v],
onchange: v => {
localSettings.color = color_options[v];
localSettings.bg = bg_code[v];
save();
},
2021-12-11 13:50:02 +00:00
},
2024-01-21 22:43:16 +00:00
'Fullscreen': {
value: localSettings.fullScreen,
onchange: (v) => {
localSettings.fullScreen = v;
save();
showMenu();
}
2024-01-21 22:53:59 +00:00
},
2022-05-19 23:26:11 +00:00
'Auto Cycle': {
value: localSettings.autoCycle,
onchange: (v) => {
localSettings.autoCycle = v;
save();
showMenu();
}
}
2022-05-19 23:26:11 +00:00
};
if( !localSettings.autoCycle)
{
menu['Tap to Cycle']= {
2022-05-19 23:26:11 +00:00
value: localSettings.sideTap,
min: 0,
max: 3,
step: 1,
format: v => NumberToSideTap(v),
onchange: v => {
localSettings.sideTap=v
2022-05-19 23:26:11 +00:00
save();
setTimeout(showMenu, 10);
}
2022-05-19 23:26:11 +00:00
};
2021-12-11 13:50:02 +00:00
}
2022-05-19 23:26:11 +00:00
E.showMenu(menu);
}
let NumberToSideTap=function(Number)
2022-05-19 23:26:11 +00:00
{
if(Number==0)
return 'on';
return Number+"";
2022-05-19 23:26:11 +00:00
}
showMenu();
2024-01-21 22:43:16 +00:00
})