From 6cfe9c340b54555939823061b1e060cee76e649f Mon Sep 17 00:00:00 2001 From: Gordon Williams Date: Fri, 28 Feb 2020 17:02:26 +0000 Subject: [PATCH] Take advantage of recent nonbreaking change that stops readJSON from causing errors --- README.md | 5 +++++ apps/about/app.js | 2 +- apps/alarm/alarm.js | 2 +- apps/alarm/app.js | 2 +- apps/alarm/widget.js | 2 +- apps/boot/boot0.js | 4 ++-- apps/boot/bootloader.js | 8 ++------ apps/files/files.js | 2 +- apps/gpsrec/app.js | 2 +- apps/gpsrec/widget.js | 2 +- apps/hidbkbd/hid-binary-keyboard.js | 2 +- apps/hidkbd/hid-keyboard.js | 2 +- apps/hidmsic/hid-music.js | 2 +- apps/launch/app.js | 5 +---- apps/ncstart/start.js | 8 +++----- apps/sclock/clock-simple.js | 2 +- apps/setting/settings.js | 4 +--- apps/welcome/app.js | 8 +++----- apps/widpedom/widget.js | 2 +- comms.js | 4 ++-- 20 files changed, 31 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 45643d6df..fbe7e2522 100644 --- a/README.md +++ b/README.md @@ -306,6 +306,11 @@ See [apps/gpsrec/interface.html](the GPS Recorder) for a full example. - 'Welcome' apps define a file called `welcome.js` which the booloader picks up. This then chain-loads the welcome app itself. +- 'Alarm' apps define a file called `alarm.js` which handles the actual alarm window. + +- Locale is handled by `require("locale")`. An app may create a `locale` file in Storage which is +a module that overwrites Bangle.js's default locale. + ### Graphic areas diff --git a/apps/about/app.js b/apps/about/app.js index 35ea07828..634a23b71 100644 --- a/apps/about/app.js +++ b/apps/about/app.js @@ -11,7 +11,7 @@ g.drawString("Powered by Espruino",0,y+=4+h); g.drawString("Version "+ENV.VERSION,0,y+=h); g.drawString("Commit "+ENV.GIT_COMMIT,0,y+=h); function getVersion(name,file) { - var j = s.readJSON(file); + var j = s.readJSON(file,1); var v = ("object"==typeof j)?j.version:false; g.drawString(v?(name+" "+(v?"v"+v:"Unknown")):"NO "+name,0,y+=h); } diff --git a/apps/alarm/alarm.js b/apps/alarm/alarm.js index 70dc75b49..78dd23482 100644 --- a/apps/alarm/alarm.js +++ b/apps/alarm/alarm.js @@ -48,7 +48,7 @@ function showAlarm(alarm) { // Check for alarms var day = (new Date()).getDate(); var hr = getCurrentHr(); -var alarms = require("Storage").readJSON("alarm.json")||[]; +var alarms = require("Storage").readJSON("alarm.json",1)||[]; var active = alarms.filter(a=>a.on&&(a.hr { - var alarms = require('Storage').readJSON('alarm.json')||[]; + var alarms = require('Storage').readJSON('alarm.json',1)||[]; alarms = alarms.filter(alarm=>alarm.on); if (!alarms.length) return; delete alarms; diff --git a/apps/boot/boot0.js b/apps/boot/boot0.js index 7741dd376..cdfa03a73 100644 --- a/apps/boot/boot0.js +++ b/apps/boot/boot0.js @@ -1,7 +1,7 @@ // This ALWAYS runs at boot E.setFlags({pretokenise:1}); // Load settings... -var s = require('Storage').readJSON('setting.json')||{}; +var s = require('Storage').readJSON('setting.json',1)||{}; if (s.ble!==false) { if (s.HID) { // Human interface device Bangle.HID = E.toUint8Array(atob("BQEJBqEBhQIFBxngKecVACUBdQGVCIEClQF1CIEBlQV1AQUIGQEpBZEClQF1A5EBlQZ1CBUAJXMFBxkAKXOBAAkFFQAm/wB1CJUCsQLABQwJAaEBhQEVACUBdQGVAQm1gQIJtoECCbeBAgm4gQIJzYECCeKBAgnpgQIJ6oECwA==")); @@ -26,7 +26,7 @@ E.setTimeZone(s.timezone); delete s; // check for alarms function checkAlarm() { - var alarms = require('Storage').readJSON('alarm.json')||[]; + var alarms = require('Storage').readJSON('alarm.json',1)||[]; var time = new Date(); var active = alarms.filter(a=>a.on&&(a.last!=time.getDate())); if (active.length) { diff --git a/apps/boot/bootloader.js b/apps/boot/bootloader.js index 07a1623eb..fca89d23a 100644 --- a/apps/boot/bootloader.js +++ b/apps/boot/bootloader.js @@ -1,6 +1,5 @@ // This runs after a 'fresh' boot -var settings={}; -try { settings = require("Storage").readJSON('setting.json'); } catch (e) {} +var settings=require("Storage").readJSON('setting.json',1)||{}; if (!settings.welcomed && require("Storage").read("welcome.js")!==undefined) { setTimeout(()=>load("welcome.js")); } else { @@ -8,10 +7,7 @@ if (!settings.welcomed && require("Storage").read("welcome.js")!==undefined) { var clockApp = settings.clock; if (clockApp) clockApp = require("Storage").read(clockApp) if (!clockApp) { - var clockApps = require("Storage").list(/\.info$/).map(app=>{ - try { return require("Storage").readJSON(app); } - catch (e) {} - }).filter(app=>app.type=="clock").sort((a, b) => a.sortorder - b.sortorder); + var clockApps = require("Storage").list(/\.info$/).map(app=>require("Storage").readJSON(app,1)||{}).filter(app=>app.type=="clock").sort((a, b) => a.sortorder - b.sortorder); if (clockApps && clockApps.length > 0) clockApp = require("Storage").read(clockApps[0].src); delete clockApps; diff --git a/apps/files/files.js b/apps/files/files.js index ab8324b43..31353cf96 100644 --- a/apps/files/files.js +++ b/apps/files/files.js @@ -69,7 +69,7 @@ function showApps() { var list = storage.list(/\.info$/).filter((a)=> { return a !== 'setting.info'; }).sort().map((app) => { - var ret = storage.readJSON(app); + var ret = storage.readJSON(app,1)||{}; ret[''] = app; return ret; }); diff --git a/apps/gpsrec/app.js b/apps/gpsrec/app.js index bac7e92f8..58b4295a6 100644 --- a/apps/gpsrec/app.js +++ b/apps/gpsrec/app.js @@ -1,7 +1,7 @@ Bangle.loadWidgets(); Bangle.drawWidgets(); -var settings = require("Storage").readJSON("gpsrec.json")||{}; +var settings = require("Storage").readJSON("gpsrec.json",1)||{}; function getFN(n) { return ".gpsrc"+n.toString(36); diff --git a/apps/gpsrec/widget.js b/apps/gpsrec/widget.js index 7e25a92ad..5c120dcbb 100644 --- a/apps/gpsrec/widget.js +++ b/apps/gpsrec/widget.js @@ -55,7 +55,7 @@ // Called by the GPS app to reload settings and decide what's function reload() { - settings = require("Storage").readJSON("gpsrec.json")||{}; + settings = require("Storage").readJSON("gpsrec.json",1)||{}; settings.period = settings.period||1; settings.file |= 0; diff --git a/apps/hidbkbd/hid-binary-keyboard.js b/apps/hidbkbd/hid-binary-keyboard.js index d48d97b47..fa1017714 100644 --- a/apps/hidbkbd/hid-binary-keyboard.js +++ b/apps/hidbkbd/hid-binary-keyboard.js @@ -5,7 +5,7 @@ the touchscreen var storage = require('Storage'); -const settings = storage.readJSON('setting.json') || { HID: false }; +const settings = storage.readJSON('setting.json',1) || { HID: false }; const KEY = { A : 4 , B : 5 , diff --git a/apps/hidkbd/hid-keyboard.js b/apps/hidkbd/hid-keyboard.js index fe850024e..ed406e093 100644 --- a/apps/hidkbd/hid-keyboard.js +++ b/apps/hidkbd/hid-keyboard.js @@ -1,6 +1,6 @@ var storage = require('Storage'); -const settings = storage.readJSON('setting.json') || { HID: false }; +const settings = storage.readJSON('setting.json',1) || { HID: false }; var sendHid, next, prev, toggle, up, down, profile; diff --git a/apps/hidmsic/hid-music.js b/apps/hidmsic/hid-music.js index afee7ade9..034bbd231 100644 --- a/apps/hidmsic/hid-music.js +++ b/apps/hidmsic/hid-music.js @@ -1,6 +1,6 @@ var storage = require('Storage'); -const settings = storage.readJSON('setting.json') || { HID: false }; +const settings = storage.readJSON('setting.json',1) || { HID: false }; var sendHid, next, prev, toggle, up, down, profile; diff --git a/apps/launch/app.js b/apps/launch/app.js index e93c2a330..682122f82 100644 --- a/apps/launch/app.js +++ b/apps/launch/app.js @@ -1,8 +1,5 @@ var s = require("Storage"); -var apps = s.list(/\.info$/).map(app=>{ - try { return s.readJSON(app); } - catch (e) { return {name:"DEAD: "+app.substr(1)} } -}).filter(app=>app.type=="app" || app.type=="clock" || !app.type); +var apps = s.list(/\.info$/).map(app=>s.readJSON(app,1)||{name:"DEAD: "+app.substr(1)}).filter(app=>app.type=="app" || app.type=="clock" || !app.type); apps.sort((a,b)=>{ var n=(0|a.sortorder)-(0|b.sortorder); if (n) return n; // do sortorder first diff --git a/apps/ncstart/start.js b/apps/ncstart/start.js index 208c554fd..f1d8fb52e 100644 --- a/apps/ncstart/start.js +++ b/apps/ncstart/start.js @@ -115,11 +115,9 @@ function info() { } function cleanup() { - try { - var settings = require("Storage").readJSON('setting.json'); - settings.welcomed = true; - require("Storage").write('setting.json',settings); - } catch (e) {} + var settings = require("Storage").readJSON('setting.json',1)||{}; + settings.welcomed = true; + require("Storage").write('setting.json',settings); return Promise.resolve(); } diff --git a/apps/sclock/clock-simple.js b/apps/sclock/clock-simple.js index 9bedbc2d0..dc0eb159c 100644 --- a/apps/sclock/clock-simple.js +++ b/apps/sclock/clock-simple.js @@ -11,7 +11,7 @@ const yposYear = 175; const yposGMT = 220; // Check settings for what type our clock should be -var is12Hour = (require("Storage").readJSON("setting.json")||{})["12hour"]; +var is12Hour = (require("Storage").readJSON("setting.json",1)||{})["12hour"]; function drawSimpleClock() { // get date diff --git a/apps/setting/settings.js b/apps/setting/settings.js index 568a64047..94a2a2d94 100644 --- a/apps/setting/settings.js +++ b/apps/setting/settings.js @@ -27,9 +27,7 @@ function resetSettings() { updateSettings(); } -try { - settings = storage.readJSON('setting.json'); -} catch (e) {} +settings = storage.readJSON('setting.json',1); if (!settings) resetSettings(); const boolFormat = v => v ? "On" : "Off"; diff --git a/apps/welcome/app.js b/apps/welcome/app.js index 79a085b14..688dd2cd3 100644 --- a/apps/welcome/app.js +++ b/apps/welcome/app.js @@ -283,11 +283,9 @@ setWatch(()=>move(1), BTN3, {repeat:true}); setWatch(()=>{ // If we're on the last page if (sceneNumber == scenes.length-1) { - try { - var settings = require("Storage").readJSON('setting.json'); - settings.welcomed = true; - require("Storage").write('setting.json',settings); - } catch (e) {} + var settings = require("Storage").readJSON('setting.json'); + settings.welcomed = true; + require("Storage").write('setting.json',settings); load(); } }, BTN2, {repeat:true,edge:"rising"}); diff --git a/apps/widpedom/widget.js b/apps/widpedom/widget.js index 84a4bb211..e827702c9 100644 --- a/apps/widpedom/widget.js +++ b/apps/widpedom/widget.js @@ -57,7 +57,7 @@ // add your widget WIDGETS["wpedom"]={draw:draw}; // Load data at startup - let pedomData = require("Storage").readJSON(PEDOMFILE); + let pedomData = require("Storage").readJSON(PEDOMFILE,1); if (pedomData) { if (pedomData.lastUpdate) lastUpdate = new Date(pedomData.lastUpdate); diff --git a/comms.js b/comms.js index 9f685500e..74b0b6049 100644 --- a/comms.js +++ b/comms.js @@ -32,7 +32,7 @@ getInstalledApps : () => { return new Promise((resolve,reject) => { Puck.write("\x03",(result) => { if (result===null) return reject(""); - Puck.eval('require("Storage").list(/\.info$/).map(f=>{var j=require("Storage").readJSON(f)||{};j.id=f.slice(0,-5);return j})', (appList,err) => { + Puck.eval('require("Storage").list(/\.info$/).map(f=>{var j=require("Storage").readJSON(f,1)||{};j.id=f.slice(0,-5);return j})', (appList,err) => { if (appList===null) return reject(err || ""); console.log("getInstalledApps", appList); resolve(appList); @@ -68,7 +68,7 @@ setTime : () => { var cmd = '\x03\x10setTime('+(d.getTime()/1000)+');'; // in 1v93 we have timezones too cmd += 'E.setTimeZone('+tz+');'; - cmd += "(s=>{s&&(s.timezone="+tz+")&&require('Storage').write('setting.json',s);})(require('Storage').readJSON('setting.json'))\n"; + cmd += "(s=>{s&&(s.timezone="+tz+")&&require('Storage').write('setting.json',s);})(require('Storage').readJSON('setting.json',1))\n"; Puck.write(cmd, (result) => { if (result===null) return reject(""); resolve();