2022-06-27 17:04:45 +00:00
|
|
|
(function(back) {
|
|
|
|
const PREFERENCE_FILE = "slidingtext.settings.json";
|
2022-10-06 20:20:42 +00:00
|
|
|
const settings = Object.assign({},
|
2022-07-01 14:41:41 +00:00
|
|
|
require('Storage').readJSON(PREFERENCE_FILE, true) || {});
|
2022-10-08 22:02:18 +00:00
|
|
|
const bangleVersion = (g.getHeight()>200)? 1 : 2;
|
2022-07-01 14:41:41 +00:00
|
|
|
// 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){
|
2022-10-08 22:02:18 +00:00
|
|
|
settings.enable_live_controls = bangleVersion < 2;
|
2022-06-28 13:25:51 +00:00
|
|
|
}
|
2022-06-27 17:04:45 +00:00
|
|
|
console.log("loaded:" + JSON.stringify(settings));
|
2022-10-08 22:02:18 +00:00
|
|
|
const locale_mappings = (bangleVersion > 1)? {
|
2022-10-15 12:07:33 +00:00
|
|
|
'english' : { date_formatter: 'en' },
|
|
|
|
'english alt': {
|
2022-09-29 22:37:42 +00:00
|
|
|
date_formatter: 'en',
|
|
|
|
row_types: {
|
|
|
|
large:{
|
2022-10-02 00:05:17 +00:00
|
|
|
size: 'mlarge',
|
2022-09-30 10:55:02 +00:00
|
|
|
angle_to_horizontal: 90,
|
|
|
|
scroll_off: ['down'],
|
|
|
|
scroll_in: ['up'],
|
2022-10-04 00:11:49 +00:00
|
|
|
speed: 'vslow'
|
2022-09-30 09:37:29 +00:00
|
|
|
},
|
|
|
|
medium: {
|
2022-10-02 00:26:11 +00:00
|
|
|
size: 'msmall',
|
|
|
|
scroll_off: ['right'],
|
|
|
|
scroll_in: ['right'],
|
2022-10-05 15:28:33 +00:00
|
|
|
},
|
|
|
|
small: {
|
|
|
|
scroll_off: ['right'],
|
|
|
|
scroll_in: ['right'],
|
2022-09-29 22:37:42 +00:00
|
|
|
}
|
|
|
|
},
|
|
|
|
row_defs: [
|
|
|
|
{
|
|
|
|
type: 'large',
|
2022-10-02 00:05:17 +00:00
|
|
|
init_coords: [0.05,0.99],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [1.0,0.0],
|
2022-10-02 19:45:30 +00:00
|
|
|
alignment: 'centre-6',
|
2022-09-29 22:37:42 +00:00
|
|
|
rows: 1
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'medium',
|
2022-10-03 11:35:01 +00:00
|
|
|
init_coords: [0.26,0.1],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [0.0,1.0],
|
|
|
|
rows: 2
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'small',
|
2022-10-08 09:02:18 +00:00
|
|
|
init_coords: [0.26,0.65],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [0.0,1.0],
|
2022-10-05 15:28:33 +00:00
|
|
|
rows: 3
|
2022-09-29 22:37:42 +00:00
|
|
|
}
|
|
|
|
]
|
|
|
|
},
|
2022-10-15 12:07:33 +00:00
|
|
|
'english2': { date_formatter: 'en2' },
|
|
|
|
'english2 alt': { date_formatter: 'en2',
|
2022-09-29 22:37:42 +00:00
|
|
|
row_types: {
|
|
|
|
vsmall: {
|
2022-10-05 15:28:33 +00:00
|
|
|
color: 'minor',
|
|
|
|
speed: 'superslow',
|
|
|
|
angle_to_horizontal: 0,
|
2022-10-02 19:59:05 +00:00
|
|
|
scroll_off: ['left'],
|
|
|
|
scroll_in: ['left'],
|
2022-10-06 10:23:26 +00:00
|
|
|
size: 'ssmall'
|
2022-09-29 22:37:42 +00:00
|
|
|
},
|
2022-10-06 05:40:47 +00:00
|
|
|
small: {
|
|
|
|
scroll_off: ['left'],
|
|
|
|
scroll_in: ['left']
|
2022-09-29 22:37:42 +00:00
|
|
|
},
|
|
|
|
large: {
|
2022-10-05 22:53:08 +00:00
|
|
|
size: 'mlarge',
|
2022-09-29 22:37:42 +00:00
|
|
|
angle_to_horizontal: 90,
|
|
|
|
color: 'major',
|
|
|
|
scroll_off: ['down'],
|
|
|
|
scroll_in: ['up']
|
|
|
|
}
|
|
|
|
},
|
|
|
|
row_defs: [
|
|
|
|
{
|
|
|
|
type: 'large',
|
2022-10-04 00:11:49 +00:00
|
|
|
init_coords: [0.8,0.99],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [0.0,1.0],
|
2022-10-02 19:45:30 +00:00
|
|
|
alignment: 'centre-6',
|
2022-09-29 22:37:42 +00:00
|
|
|
rows: 1
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'small',
|
2022-10-06 10:23:26 +00:00
|
|
|
init_coords: [0.05,0.45],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [0.0,1.0],
|
|
|
|
rows: 3
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'large',
|
2022-10-04 00:11:49 +00:00
|
|
|
init_coords: [0.8,0.99],
|
2022-09-29 22:37:42 +00:00
|
|
|
row_direction: [0.0,1.0],
|
2022-10-02 19:45:30 +00:00
|
|
|
alignment: 'centre-6',
|
2022-09-29 22:37:42 +00:00
|
|
|
rows: 1
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: 'vsmall',
|
|
|
|
init_coords: [0.05,0.1],
|
|
|
|
row_direction: [0.0,1.0],
|
2022-10-05 15:28:33 +00:00
|
|
|
rows: 2
|
2022-09-29 22:37:42 +00:00
|
|
|
},
|
|
|
|
]
|
|
|
|
},
|
2022-10-15 12:07:33 +00:00
|
|
|
'french': { date_formatter:'fr'},
|
|
|
|
'german': { date_formatter: 'de'},
|
|
|
|
'german 24h': { date_formatter: 'de2'},
|
|
|
|
'spanish': { date_formatter: 'es'},
|
|
|
|
'japanese': { date_formatter: 'jp'},
|
2022-10-11 20:09:55 +00:00
|
|
|
'hybrid': { date_formatter: 'hyb'},
|
|
|
|
'digits': { date_formatter: 'dgt'},
|
2022-10-08 22:02:18 +00:00
|
|
|
} : {
|
2022-10-15 12:07:33 +00:00
|
|
|
'english' : { date_formatter: 'en' },
|
|
|
|
'french': { date_formatter:'fr'},
|
|
|
|
'german': { date_formatter: 'de'},
|
|
|
|
'spanish': { date_formatter: 'es'},
|
|
|
|
'japanese': { date_formatter: 'jp'},
|
2022-10-11 20:09:55 +00:00
|
|
|
'hybrid': { date_formatter: 'hyb'},
|
|
|
|
'digits': { date_formatter: 'dgt'},
|
2022-06-27 17:04:45 +00:00
|
|
|
}
|
2022-10-08 22:02:18 +00:00
|
|
|
|
2022-10-06 20:20:42 +00:00
|
|
|
const locales = Object.keys(locale_mappings);
|
2022-06-27 17:04:45 +00:00
|
|
|
|
|
|
|
function writeSettings() {
|
2022-09-30 00:34:40 +00:00
|
|
|
if(settings.date_format == null){
|
|
|
|
settings.date_format = 'en';
|
|
|
|
}
|
2022-10-06 20:20:42 +00:00
|
|
|
const styling = locale_mappings[settings.date_format];
|
2022-09-30 00:34:40 +00:00
|
|
|
if(styling.date_formatter != null)
|
|
|
|
settings.date_formatter = styling.date_formatter;
|
|
|
|
|
2022-09-30 08:33:01 +00:00
|
|
|
settings.row_types = {};
|
2022-09-30 00:34:40 +00:00
|
|
|
if(styling.row_types != null)
|
|
|
|
settings.row_types = styling.row_types;
|
|
|
|
|
2022-09-30 09:46:32 +00:00
|
|
|
settings.row_defs = [];
|
2022-09-30 00:34:40 +00:00
|
|
|
if(styling.row_defs != null)
|
|
|
|
settings.row_defs = styling.row_defs;
|
|
|
|
|
2022-06-28 13:25:51 +00:00
|
|
|
console.log("saving:" + JSON.stringify(settings));
|
2022-09-30 00:34:40 +00:00
|
|
|
|
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-10-06 20:20:42 +00:00
|
|
|
const write_value = (value_mapping == null)? values[v] : value_mapping(values[v]);
|
2022-07-31 22:42:09 +00:00
|
|
|
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(),
|
2022-10-09 10:18:13 +00:00
|
|
|
"Colour": stringInSettings("color_scheme", ["black","white", "red","grey","purple","blue"]),
|
2022-09-29 22:37:42 +00:00
|
|
|
"Style": stringInSettings("date_format", locales, (l)=>locale_mappings[l] ),
|
2022-06-27 17:04:45 +00:00
|
|
|
"Live Control": {
|
2023-02-23 11:46:49 +00:00
|
|
|
value: (settings.enable_live_controls !== undefined ? !!settings.enable_live_controls : true),
|
2022-06-27 17:04:45 +00:00
|
|
|
onchange: v => {
|
2022-06-28 13:25:51 +00:00
|
|
|
settings.enable_live_controls = v;
|
2022-06-27 17:04:45 +00:00
|
|
|
writeSettings();
|
|
|
|
}
|
|
|
|
},
|
|
|
|
});
|
2023-02-23 11:46:49 +00:00
|
|
|
})
|