2022-06-27 17:04:45 +00:00
|
|
|
(function(back) {
|
|
|
|
const PREFERENCE_FILE = "slidingtext.settings.json";
|
2022-07-01 14:41:41 +00:00
|
|
|
var settings = Object.assign({},
|
|
|
|
require('Storage').readJSON(PREFERENCE_FILE, true) || {});
|
|
|
|
// the screen controls are defaulted on for a bangle 1 and off for a bangle 2
|
2022-06-28 13:25:51 +00:00
|
|
|
if(settings.enable_live_controls == null){
|
|
|
|
settings.enable_live_controls = (g.getHeight()> 200);
|
|
|
|
}
|
2022-06-27 17:04:45 +00:00
|
|
|
console.log("loaded:" + JSON.stringify(settings));
|
2022-07-31 22:42:09 +00:00
|
|
|
var locale_mappings = {
|
|
|
|
'English Time':'en',
|
|
|
|
'English Date + Time': 'en3',
|
|
|
|
'English Time (Trad)': 'en2',
|
|
|
|
'French': 'fr',
|
|
|
|
'German': 'de',
|
|
|
|
'Spanish': 'es',
|
|
|
|
'Japanese': 'jp',
|
2022-06-27 17:04:45 +00:00
|
|
|
}
|
2022-07-31 22:42:09 +00:00
|
|
|
var locales = Object.keys(locale_mappings);
|
2022-06-27 17:04:45 +00:00
|
|
|
|
|
|
|
function writeSettings() {
|
2022-06-28 13:25:51 +00:00
|
|
|
console.log("saving:" + JSON.stringify(settings));
|
2022-06-27 17:04:45 +00:00
|
|
|
require('Storage').writeJSON(PREFERENCE_FILE, settings);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Helper method which uses int-based menu item for set of string values
|
2022-07-31 22:42:09 +00:00
|
|
|
function stringItems(startvalue, writer, values, value_mapping) {
|
2022-06-27 17:04:45 +00:00
|
|
|
return {
|
|
|
|
value: (startvalue === undefined ? 0 : values.indexOf(startvalue)),
|
|
|
|
format: v => values[v],
|
|
|
|
min: 0,
|
|
|
|
max: values.length - 1,
|
|
|
|
wrap: true,
|
|
|
|
step: 1,
|
|
|
|
onchange: v => {
|
2022-07-31 22:42:09 +00:00
|
|
|
var write_value = (value_mapping == null)? values[v] : value_mapping(values[v]);
|
|
|
|
writer(write_value);
|
2022-06-27 17:04:45 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Show the menu
|
|
|
|
E.showMenu({
|
|
|
|
"" : { "title" : "Sliding Text" },
|
|
|
|
"< Back" : () => back(),
|
|
|
|
"Colour": stringInSettings("color_scheme", ["white", "black", "red","grey","purple","blue"]),
|
2022-07-31 22:42:09 +00:00
|
|
|
"Languages": stringInSettings("date_format", locales, (l)=>locale_mappings[l] ),
|
2022-06-27 17:04:45 +00:00
|
|
|
"Live Control": {
|
|
|
|
value: (settings.enable_live_controls !== undefined ? settings.enable_live_controls : true),
|
|
|
|
format: v => v ? "On" : "Off",
|
|
|
|
onchange: v => {
|
2022-06-28 13:25:51 +00:00
|
|
|
settings.enable_live_controls = v;
|
2022-06-27 17:04:45 +00:00
|
|
|
writeSettings();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
});
|
|
|
|
})
|