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

86 lines
2.0 KiB
JavaScript

(function(back) {
const SETTINGS_FILE = "rebble.json";
// initialize with default settings...
let localSettings = {'bg': '#0f0', 'color': 'Green', 'autoCycle': true, 'fullScreen': true, 'sideTap':0};
//sideTap 0 = on| 1= sideBar1 | 2 = ...
// ...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;
const saved = settings || {}
for (const key in saved) {
localSettings[key] = saved[key]
}
let save=function() {
settings = localSettings
storage.write(SETTINGS_FILE, settings)
}
let color_options = ['Green','Orange','Cyan','Purple','Red','Blue'];
let bg_code = ['#0f0','#ff0','#0ff','#f0f','#f00','#00f'];
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();
},
},
'Fullscreen': {
value: localSettings.fullScreen,
onchange: (v) => {
localSettings.fullScreen = v;
save();
showMenu();
}
},
'Auto Cycle': {
value: localSettings.autoCycle,
onchange: (v) => {
localSettings.autoCycle = v;
save();
showMenu();
}
}
};
if( !localSettings.autoCycle)
{
menu['Tap to Cycle']= {
value: localSettings.sideTap,
min: 0,
max: 3,
step: 1,
format: v => NumberToSideTap(v),
onchange: v => {
localSettings.sideTap=v
save();
setTimeout(showMenu, 10);
}
};
}
E.showMenu(menu);
}
let NumberToSideTap=function(Number)
{
if(Number==0)
return 'on';
return Number+"";
}
showMenu();
})