mirror of https://github.com/espruino/BangleApps
Merge pull request #302 from rigrig/welcome
Fix welcome apps running during settings updatepull/310/head
commit
ac076f698a
|
@ -78,7 +78,7 @@
|
||||||
{ "id": "welcome",
|
{ "id": "welcome",
|
||||||
"name": "Welcome",
|
"name": "Welcome",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.06",
|
"version":"0.07",
|
||||||
"description": "Appears at first boot and explains how to use Bangle.js",
|
"description": "Appears at first boot and explains how to use Bangle.js",
|
||||||
"tags": "start,welcome",
|
"tags": "start,welcome",
|
||||||
"allow_emulator":true,
|
"allow_emulator":true,
|
||||||
|
@ -86,6 +86,7 @@
|
||||||
{"name":"welcome.boot.js","url":"boot.js"},
|
{"name":"welcome.boot.js","url":"boot.js"},
|
||||||
{"name":"welcome.app.js","url":"app.js"},
|
{"name":"welcome.app.js","url":"app.js"},
|
||||||
{"name":"welcome.settings.js","url":"settings.js"},
|
{"name":"welcome.settings.js","url":"settings.js"},
|
||||||
|
{"name":"welcome.settings.json","url":"settings-default.json","evaluate":true},
|
||||||
{"name":"welcome.img","url":"app-icon.js","evaluate":true}
|
{"name":"welcome.img","url":"app-icon.js","evaluate":true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
@ -504,13 +505,14 @@
|
||||||
"id": "ncstart",
|
"id": "ncstart",
|
||||||
"name": "NCEU Startup",
|
"name": "NCEU Startup",
|
||||||
"icon": "start.png",
|
"icon": "start.png",
|
||||||
"version":"0.03",
|
"version":"0.04",
|
||||||
"description": "NodeConfEU 2019 'First Start' Sequence",
|
"description": "NodeConfEU 2019 'First Start' Sequence",
|
||||||
"tags": "start,welcome",
|
"tags": "start,welcome",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"ncstart.app.js","url":"start.js"},
|
{"name":"ncstart.app.js","url":"start.js"},
|
||||||
{"name":"ncstart.boot.js","url":"boot.js"},
|
{"name":"ncstart.boot.js","url":"boot.js"},
|
||||||
{"name":"ncstart.settings.js","url":"settings.js"},
|
{"name":"ncstart.settings.js","url":"settings.js"},
|
||||||
|
{"name":"ncstart.settings.json","url":"settings-default.json","evaluate":true},
|
||||||
{"name":"ncstart.img","url":"start-icon.js","evaluate":true},
|
{"name":"ncstart.img","url":"start-icon.js","evaluate":true},
|
||||||
{"name":"nc-bangle.img","url":"start-bangle.js","evaluate":true},
|
{"name":"nc-bangle.img","url":"start-bangle.js","evaluate":true},
|
||||||
{"name":"nc-nceu.img","url":"start-nceu.js","evaluate":true},
|
{"name":"nc-nceu.img","url":"start-nceu.js","evaluate":true},
|
||||||
|
|
|
@ -2,3 +2,6 @@
|
||||||
Renamed as nodeconf-specific
|
Renamed as nodeconf-specific
|
||||||
0.03: Move configuration into App/widget settings
|
0.03: Move configuration into App/widget settings
|
||||||
Move loader into welcome.boot.js
|
Move loader into welcome.boot.js
|
||||||
|
0.04: Run again when updated
|
||||||
|
Don't run again when settings app is updated (or absent)
|
||||||
|
Add "Run Now" option to settings
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
(function() {
|
(function() {
|
||||||
let s = require('Storage').readJSON('setting.json', 1) || {}
|
let s = require('Storage').readJSON('ncstart.settings.json', 1)
|
||||||
|
|| require('Storage').readJSON('setting.json', 1)
|
||||||
|
|| {welcomed: true} // do NOT run if global settings are also absent
|
||||||
if (!s.welcomed && require('Storage').read('ncstart.app.js')) {
|
if (!s.welcomed && require('Storage').read('ncstart.app.js')) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
s.welcomed = true
|
s.welcomed = true
|
||||||
require('Storage').write('setting.json', s)
|
require('Storage').write('ncstart.settings.json', s)
|
||||||
load('ncstart.app.js')
|
load('ncstart.app.js')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"welcomed": false
|
||||||
|
}
|
|
@ -1,16 +1,15 @@
|
||||||
// The welcome app is special, and gets to use global settings
|
// The welcome app is special, and gets to use global settings
|
||||||
(function(back) {
|
(function(back) {
|
||||||
let settings = require('Storage').readJSON('setting.json', 1) || {}
|
let settings = require('Storage').readJSON('ncstart.settings.json', 1)
|
||||||
|
|| require('Storage').readJSON('setting.json', 1) || {}
|
||||||
E.showMenu({
|
E.showMenu({
|
||||||
'': { 'title': 'NCEU Startup' },
|
'': { 'title': 'NCEU Startup' },
|
||||||
'Run again': {
|
'Run on Next Boot': {
|
||||||
value: !settings.welcomed,
|
value: !settings.welcomed,
|
||||||
format: v => v ? 'Yes' : 'No',
|
format: v => v ? 'OK' : 'No',
|
||||||
onchange: v => {
|
onchange: v => require('Storage').write('ncstart.settings.json', {welcomed: !v}),
|
||||||
settings.welcomed = v ? undefined : true
|
|
||||||
require('Storage').write('setting.json', settings)
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
'Run Now': () => load('ncstart.app.js'),
|
||||||
'< Back': back,
|
'< Back': back,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,3 +4,6 @@
|
||||||
0.04: Fix regression after tweaks to Storage.readJSON
|
0.04: Fix regression after tweaks to Storage.readJSON
|
||||||
0.05: Move configuration into App/widget settings
|
0.05: Move configuration into App/widget settings
|
||||||
0.06: Move loader into welcome.boot.js
|
0.06: Move loader into welcome.boot.js
|
||||||
|
0.07: Run again when updated
|
||||||
|
Don't run again when settings app is updated (or absent)
|
||||||
|
Add "Run Now" option to settings
|
||||||
|
|
|
@ -288,6 +288,13 @@ setWatch(()=>{
|
||||||
}, BTN2, {repeat:true,edge:"rising"});
|
}, BTN2, {repeat:true,edge:"rising"});
|
||||||
setWatch(()=>move(-1), BTN1, {repeat:true});
|
setWatch(()=>move(-1), BTN1, {repeat:true});
|
||||||
|
|
||||||
|
(function migrateSettings(){
|
||||||
|
let global_settings = require('Storage').readJSON('setting.json', 1)
|
||||||
|
if (global_settings) {
|
||||||
|
delete global_settings.welcomed
|
||||||
|
require('Storage').write('setting.json', global_settings)
|
||||||
|
}
|
||||||
|
})()
|
||||||
|
|
||||||
Bangle.setLCDTimeout(0);
|
Bangle.setLCDTimeout(0);
|
||||||
Bangle.setLCDPower(1);
|
Bangle.setLCDPower(1);
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
(function() {
|
(function() {
|
||||||
let s = require('Storage').readJSON('setting.json', 1) || {}
|
let s = require('Storage').readJSON('welcome.settings.json', 1)
|
||||||
|
|| require('Storage').readJSON('setting.json', 1)
|
||||||
|
|| {welcomed: true} // do NOT run if global settings are also absent
|
||||||
if (!s.welcomed && require('Storage').read('welcome.app.js')) {
|
if (!s.welcomed && require('Storage').read('welcome.app.js')) {
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
s.welcomed = true
|
s.welcomed = true
|
||||||
require('Storage').write('setting.json', s)
|
require('Storage').write('welcome.settings.json', {welcomed: "yes"})
|
||||||
load('welcome.app.js')
|
load('welcome.app.js')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"welcomed": false
|
||||||
|
}
|
|
@ -1,16 +1,15 @@
|
||||||
// The welcome app is special, and gets to use global settings
|
// The welcome app is special, and gets to use global settings
|
||||||
(function(back) {
|
(function(back) {
|
||||||
let settings = require('Storage').readJSON('setting.json', 1) || {}
|
let settings = require('Storage').readJSON('welcome.settings.json', 1)
|
||||||
|
|| require('Storage').readJSON('setting.json', 1) || {}
|
||||||
E.showMenu({
|
E.showMenu({
|
||||||
'': { 'title': 'Welcome App' },
|
'': { 'title': 'Welcome App' },
|
||||||
'Run again': {
|
'Run on Next Boot': {
|
||||||
value: !settings.welcomed,
|
value: !settings.welcomed,
|
||||||
format: v => v ? 'Yes' : 'No',
|
format: v => v ? 'OK' : 'No',
|
||||||
onchange: v => {
|
onchange: v => require('Storage').write('welcome.settings.json', {welcomed: !v}),
|
||||||
settings.welcomed = v ? undefined : true
|
|
||||||
require('Storage').write('setting.json', settings)
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
'Run Now': () => load('welcome.app.js'),
|
||||||
'< Back': back,
|
'< Back': back,
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue