2022-07-02 13:24:32 +00:00
|
|
|
(function(back) {
|
|
|
|
function writeSettings(key, value) {
|
|
|
|
var s = require('Storage').readJSON(FILE, true) || {};
|
|
|
|
s[key] = value;
|
|
|
|
require('Storage').writeJSON(FILE, s);
|
|
|
|
readSettings();
|
|
|
|
}
|
|
|
|
|
|
|
|
function readSettings(){
|
|
|
|
settings = Object.assign(
|
|
|
|
require('Storage').readJSON("owmweather.default.json", true) || {},
|
|
|
|
require('Storage').readJSON(FILE, true) || {}
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
var FILE="owmweather.json";
|
|
|
|
var settings;
|
|
|
|
readSettings();
|
|
|
|
|
|
|
|
function buildMainMenu(){
|
|
|
|
var mainmenu = {
|
|
|
|
'': { 'title': 'OWM weather' },
|
|
|
|
'< Back': back,
|
|
|
|
"Enabled": {
|
|
|
|
value: !!settings.enabled,
|
|
|
|
onchange: v => {
|
|
|
|
writeSettings("enabled", v);
|
|
|
|
}
|
|
|
|
},
|
|
|
|
"Refresh every": {
|
|
|
|
value: settings.refresh / 60,
|
|
|
|
min: 1,
|
|
|
|
max: 48,
|
|
|
|
step: 1,
|
|
|
|
format: v=>v+"h",
|
|
|
|
onchange: v => {
|
|
|
|
writeSettings("refresh",Math.round(v * 60));
|
|
|
|
}
|
|
|
|
},
|
2022-07-02 14:30:34 +00:00
|
|
|
"Force refresh": ()=>{
|
2022-07-02 20:49:09 +00:00
|
|
|
if (!Bangle.pullOwmWeather){
|
|
|
|
E.showAlert("Reload watch after enabling","Hint").then(()=>{
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
E.showMessage("Reloading weather");
|
|
|
|
Bangle.pullOwmWeather(true, (e)=>{
|
|
|
|
if (e) {
|
|
|
|
E.showAlert(e,"Error").then(()=>{
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
E.showAlert("Success").then(()=>{
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2022-07-02 14:30:34 +00:00
|
|
|
}
|
2022-07-02 13:24:32 +00:00
|
|
|
};
|
|
|
|
|
2022-07-02 14:10:42 +00:00
|
|
|
mainmenu["API key"] = function (){
|
|
|
|
if (require("textinput")){
|
2022-07-02 13:24:32 +00:00
|
|
|
require("textinput").input({text:settings.apikey}).then(result => {
|
|
|
|
if (result != "") {
|
2022-07-02 14:10:42 +00:00
|
|
|
print("Result is", result);
|
2022-07-02 13:24:32 +00:00
|
|
|
settings.apikey = result;
|
|
|
|
writeSettings("apikey",result);
|
|
|
|
}
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|
2022-07-02 14:10:42 +00:00
|
|
|
} else {
|
|
|
|
E.showPrompt("Install a text input lib"),then(()=>{
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-07-02 13:24:32 +00:00
|
|
|
|
|
|
|
return mainmenu;
|
|
|
|
}
|
|
|
|
|
|
|
|
E.showMenu(buildMainMenu());
|
|
|
|
});
|