commit
14df398bb6
51
apps.json
51
apps.json
|
|
@ -78,7 +78,7 @@
|
||||||
{ "id": "welcome",
|
{ "id": "welcome",
|
||||||
"name": "Welcome",
|
"name": "Welcome",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.07",
|
"version":"0.08",
|
||||||
"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,8 +86,10 @@
|
||||||
{"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}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"welcome.json"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "gbridge",
|
{ "id": "gbridge",
|
||||||
|
|
@ -120,13 +122,12 @@
|
||||||
{ "id": "setting",
|
{ "id": "setting",
|
||||||
"name": "Settings",
|
"name": "Settings",
|
||||||
"icon": "settings.png",
|
"icon": "settings.png",
|
||||||
"version":"0.17",
|
"version":"0.18",
|
||||||
"description": "A menu for setting up Bangle.js",
|
"description": "A menu for setting up Bangle.js",
|
||||||
"tags": "tool,system",
|
"tags": "tool,system",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"setting.app.js","url":"settings.js"},
|
{"name":"setting.app.js","url":"settings.js"},
|
||||||
{"name":"setting.boot.js","url":"boot.js"},
|
{"name":"setting.boot.js","url":"boot.js"},
|
||||||
{"name":"setting.json","url":"settings-default.json","evaluate":true},
|
|
||||||
{"name":"setting.img","url":"settings-icon.js","evaluate":true}
|
{"name":"setting.img","url":"settings-icon.js","evaluate":true}
|
||||||
],
|
],
|
||||||
"sortorder" : -2
|
"sortorder" : -2
|
||||||
|
|
@ -135,16 +136,18 @@
|
||||||
"name": "Default Alarm",
|
"name": "Default Alarm",
|
||||||
"shortName":"Alarms",
|
"shortName":"Alarms",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.06",
|
"version":"0.07",
|
||||||
"description": "Set and respond to alarms",
|
"description": "Set and respond to alarms",
|
||||||
"tags": "tool,alarm,widget",
|
"tags": "tool,alarm,widget",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"alarm.app.js","url":"app.js"},
|
{"name":"alarm.app.js","url":"app.js"},
|
||||||
{"name":"alarm.boot.js","url":"boot.js"},
|
{"name":"alarm.boot.js","url":"boot.js"},
|
||||||
{"name":"alarm.js","url":"alarm.js"},
|
{"name":"alarm.js","url":"alarm.js"},
|
||||||
{"name":"alarm.json","content":"[]"},
|
|
||||||
{"name":"alarm.img","url":"app-icon.js","evaluate":true},
|
{"name":"alarm.img","url":"app-icon.js","evaluate":true},
|
||||||
{"name":"alarm.wid.js","url":"widget.js"}
|
{"name":"alarm.wid.js","url":"widget.js"}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"alarm.json"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "wclock",
|
{ "id": "wclock",
|
||||||
|
|
@ -280,15 +283,18 @@
|
||||||
{ "id": "gpsrec",
|
{ "id": "gpsrec",
|
||||||
"name": "GPS Recorder",
|
"name": "GPS Recorder",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.07",
|
"version":"0.08",
|
||||||
"interface": "interface.html",
|
"interface": "interface.html",
|
||||||
"description": "Application that allows you to record a GPS track. Can run in background",
|
"description": "Application that allows you to record a GPS track. Can run in background",
|
||||||
"tags": "tool,outdoors,gps,widget",
|
"tags": "tool,outdoors,gps,widget",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"gpsrec.app.js","url":"app.js"},
|
{"name":"gpsrec.app.js","url":"app.js"},
|
||||||
{"name":"gpsrec.json","url":"app-settings.json","evaluate":true},
|
|
||||||
{"name":"gpsrec.img","url":"app-icon.js","evaluate":true},
|
{"name":"gpsrec.img","url":"app-icon.js","evaluate":true},
|
||||||
{"name":"gpsrec.wid.js","url":"widget.js"}
|
{"name":"gpsrec.wid.js","url":"widget.js"}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"gpsrec.json"},
|
||||||
|
{"wildcard":".gpsrc?","storageFile": true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "gpsnav",
|
{ "id": "gpsnav",
|
||||||
|
|
@ -306,15 +312,18 @@
|
||||||
{ "id": "heart",
|
{ "id": "heart",
|
||||||
"name": "Heart Rate Recorder",
|
"name": "Heart Rate Recorder",
|
||||||
"icon": "app.png",
|
"icon": "app.png",
|
||||||
"version":"0.01",
|
"version":"0.02",
|
||||||
"interface": "interface.html",
|
"interface": "interface.html",
|
||||||
"description": "Application that allows you to record your heart rate. Can run in background",
|
"description": "Application that allows you to record your heart rate. Can run in background",
|
||||||
"tags": "tool,health,widget",
|
"tags": "tool,health,widget",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"heart.app.js","url":"app.js"},
|
{"name":"heart.app.js","url":"app.js"},
|
||||||
{"name":"heart.json","url":"app-settings.json","evaluate":true},
|
|
||||||
{"name":"heart.img","url":"app-icon.js","evaluate":true},
|
{"name":"heart.img","url":"app-icon.js","evaluate":true},
|
||||||
{"name":"heart.wid.js","url":"widget.js"}
|
{"name":"heart.wid.js","url":"widget.js"}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"heart.json"},
|
||||||
|
{"wildcard":".heart?","storageFile": true}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "slevel",
|
{ "id": "slevel",
|
||||||
|
|
@ -354,14 +363,16 @@
|
||||||
"name": "Battery Level Widget (with percentage)",
|
"name": "Battery Level Widget (with percentage)",
|
||||||
"shortName": "Battery Widget",
|
"shortName": "Battery Widget",
|
||||||
"icon": "widget.png",
|
"icon": "widget.png",
|
||||||
"version":"0.10",
|
"version":"0.11",
|
||||||
"description": "Show the current battery level and charging status in the top right of the clock, with charge percentage",
|
"description": "Show the current battery level and charging status in the top right of the clock, with charge percentage",
|
||||||
"tags": "widget,battery",
|
"tags": "widget,battery",
|
||||||
"type":"widget",
|
"type":"widget",
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"widbatpc.wid.js","url":"widget.js"},
|
{"name":"widbatpc.wid.js","url":"widget.js"},
|
||||||
{"name":"widbatpc.settings.js","url":"settings.js"},
|
{"name":"widbatpc.settings.js","url":"settings.js"}
|
||||||
{"name":"widbatpc.settings.json","content": "{}"}
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"widbatpc.json"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "widbt",
|
{ "id": "widbt",
|
||||||
|
|
@ -529,20 +540,22 @@
|
||||||
"id": "ncstart",
|
"id": "ncstart",
|
||||||
"name": "NCEU Startup",
|
"name": "NCEU Startup",
|
||||||
"icon": "start.png",
|
"icon": "start.png",
|
||||||
"version":"0.04",
|
"version":"0.05",
|
||||||
"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},
|
||||||
{"name":"nc-nfr.img","url":"start-nfr.js","evaluate":true},
|
{"name":"nc-nfr.img","url":"start-nfr.js","evaluate":true},
|
||||||
{"name":"nc-nodew.img","url":"start-nodew.js","evaluate":true},
|
{"name":"nc-nodew.img","url":"start-nodew.js","evaluate":true},
|
||||||
{"name":"nc-tf.img","url":"start-tf.js","evaluate":true}
|
{"name":"nc-tf.img","url":"start-tf.js","evaluate":true}
|
||||||
|
],
|
||||||
|
"data": [
|
||||||
|
{"name":"ncstart.json"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "ncfrun",
|
{ "id": "ncfrun",
|
||||||
|
|
@ -1234,7 +1247,7 @@
|
||||||
"name": "Numerals Clock",
|
"name": "Numerals Clock",
|
||||||
"shortName": "Numerals Clock",
|
"shortName": "Numerals Clock",
|
||||||
"icon": "numerals.png",
|
"icon": "numerals.png",
|
||||||
"version":"0.03",
|
"version":"0.04",
|
||||||
"description": "A simple big numerals clock",
|
"description": "A simple big numerals clock",
|
||||||
"tags": "numerals,clock",
|
"tags": "numerals,clock",
|
||||||
"type":"clock",
|
"type":"clock",
|
||||||
|
|
@ -1242,8 +1255,10 @@
|
||||||
"storage": [
|
"storage": [
|
||||||
{"name":"numerals.app.js","url":"numerals.app.js"},
|
{"name":"numerals.app.js","url":"numerals.app.js"},
|
||||||
{"name":"numerals.img","url":"numerals-icon.js","evaluate":true},
|
{"name":"numerals.img","url":"numerals-icon.js","evaluate":true},
|
||||||
{"name":"numerals.settings.js","url":"numerals.settings.js"},
|
{"name":"numerals.settings.js","url":"numerals.settings.js"}
|
||||||
{"name":"numerals.json","url":"numerals-default.json","evaluate":true}
|
],
|
||||||
|
"data":[
|
||||||
|
{"name":"numerals.json"}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ "id": "bledetect",
|
{ "id": "bledetect",
|
||||||
|
|
|
||||||
|
|
@ -4,3 +4,4 @@
|
||||||
0.04: Tweaks for variable size widget system
|
0.04: Tweaks for variable size widget system
|
||||||
0.05: Add alarm.boot.js and move code from the bootloader
|
0.05: Add alarm.boot.js and move code from the bootloader
|
||||||
0.06: Change 'New Alarm' to 'Save', allow Deletion of Alarms
|
0.06: Change 'New Alarm' to 'Save', allow Deletion of Alarms
|
||||||
|
0.07: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,5 @@
|
||||||
0.05: Tweaks for variable size widget system
|
0.05: Tweaks for variable size widget system
|
||||||
0.06: Ensure widget update itself (fix #118) and change to using icons
|
0.06: Ensure widget update itself (fix #118) and change to using icons
|
||||||
0.07: Added @jeffmer's awesome track viewer
|
0.07: Added @jeffmer's awesome track viewer
|
||||||
|
0.08: Don't overwrite existing settings on app update
|
||||||
|
Clean up recorded tracks on app removal
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,3 @@
|
||||||
0.01: New App!
|
0.01: New App!
|
||||||
|
0.02: Don't overwrite existing settings on app update
|
||||||
|
Clean up recordings on app removal
|
||||||
|
|
|
||||||
|
|
@ -5,3 +5,4 @@
|
||||||
0.04: Run again when updated
|
0.04: Run again when updated
|
||||||
Don't run again when settings app is updated (or absent)
|
Don't run again when settings app is updated (or absent)
|
||||||
Add "Run Now" option to settings
|
Add "Run Now" option to settings
|
||||||
|
0.05: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
(function() {
|
(function() {
|
||||||
let s = require('Storage').readJSON('ncstart.settings.json', 1)
|
let s = require('Storage').readJSON('ncstart.json', 1)
|
||||||
|| require('Storage').readJSON('setting.json', 1)
|
|| require('Storage').readJSON('setting.json', 1)
|
||||||
|| {welcomed: true} // do NOT run if global settings are also absent
|
|| {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('ncstart.settings.json', s)
|
require('Storage').write('ncstart.json', s)
|
||||||
load('ncstart.app.js')
|
load('ncstart.app.js')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"welcomed": false
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
// The welcome app is special, and gets to use global settings
|
|
||||||
(function(back) {
|
(function(back) {
|
||||||
let settings = require('Storage').readJSON('ncstart.settings.json', 1)
|
let settings = require('Storage').readJSON('ncstart.json', 1)
|
||||||
|| require('Storage').readJSON('setting.json', 1) || {}
|
|| require('Storage').readJSON('setting.json', 1) || {}
|
||||||
E.showMenu({
|
E.showMenu({
|
||||||
'': { 'title': 'NCEU Startup' },
|
'': { 'title': 'NCEU Startup' },
|
||||||
'Run on Next Boot': {
|
'Run on Next Boot': {
|
||||||
value: !settings.welcomed,
|
value: !settings.welcomed,
|
||||||
format: v => v ? 'OK' : 'No',
|
format: v => v ? 'OK' : 'No',
|
||||||
onchange: v => require('Storage').write('ncstart.settings.json', {welcomed: !v}),
|
onchange: v => require('Storage').write('ncstart.json', {welcomed: !v}),
|
||||||
},
|
},
|
||||||
'Run Now': () => load('ncstart.app.js'),
|
'Run Now': () => load('ncstart.app.js'),
|
||||||
'< Back': back,
|
'< Back': back,
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
0.01: New App!
|
0.01: New App!
|
||||||
0.02: Use BTN2 for settings menu like other clocks
|
0.02: Use BTN2 for settings menu like other clocks
|
||||||
0.03: maximize numerals, make menu button configurable, change icon to mac palette, add default settings file, respect 12hour setting
|
0.03: maximize numerals, make menu button configurable, change icon to mac palette, add default settings file, respect 12hour setting
|
||||||
|
0.04: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
color:0,
|
|
||||||
drawMode:"fill",
|
|
||||||
menuButton:22
|
|
||||||
}
|
|
||||||
|
|
@ -19,3 +19,4 @@
|
||||||
0.15: Reduce memory usage when running default clock chooser (#294)
|
0.15: Reduce memory usage when running default clock chooser (#294)
|
||||||
0.16: Reduce memory usage further when running app settings page
|
0.16: Reduce memory usage further when running app settings page
|
||||||
0.17: Remove need for "settings" in appid.info
|
0.17: Remove need for "settings" in appid.info
|
||||||
|
0.18: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
ble: true, // Bluetooth enabled by default
|
|
||||||
blerepl: true, // Is REPL on Bluetooth - can Espruino IDE be used?
|
|
||||||
log: false, // Do log messages appear on screen?
|
|
||||||
timeout: 10, // Default LCD timeout in seconds
|
|
||||||
vibrate: true, // Vibration enabled by default. App must support
|
|
||||||
beep: "vib", // Beep enabled by default. App must support
|
|
||||||
timezone: 0, // Set the timezone for the device
|
|
||||||
HID : false, // BLE HID mode, off by default
|
|
||||||
clock: null, // a string for the default clock's name
|
|
||||||
"12hour" : false, // 12 or 24 hour clock?
|
|
||||||
// welcomed : undefined/true (whether welcome app should show)
|
|
||||||
brightness: 1, // LCD brightness from 0 to 1
|
|
||||||
options: {
|
|
||||||
wakeOnBTN1: true,
|
|
||||||
wakeOnBTN2: true,
|
|
||||||
wakeOnBTN3: true,
|
|
||||||
wakeOnFaceUp: false,
|
|
||||||
wakeOnTouch: false,
|
|
||||||
wakeOnTwist: true,
|
|
||||||
twistThreshold: 819.2,
|
|
||||||
twistMaxY: -800,
|
|
||||||
twistTimeout: 1000
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
@ -7,3 +7,4 @@
|
||||||
0.07: Run again when updated
|
0.07: Run again when updated
|
||||||
Don't run again when settings app is updated (or absent)
|
Don't run again when settings app is updated (or absent)
|
||||||
Add "Run Now" option to settings
|
Add "Run Now" option to settings
|
||||||
|
0.08: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
(function() {
|
(function() {
|
||||||
let s = require('Storage').readJSON('welcome.settings.json', 1)
|
let s = require('Storage').readJSON('welcome.json', 1)
|
||||||
|| require('Storage').readJSON('setting.json', 1)
|
|| require('Storage').readJSON('setting.json', 1)
|
||||||
|| {welcomed: true} // do NOT run if global settings are also absent
|
|| {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('welcome.settings.json', {welcomed: "yes"})
|
require('Storage').write('welcome.json', {welcomed: "yes"})
|
||||||
load('welcome.app.js')
|
load('welcome.app.js')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"welcomed": false
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +1,12 @@
|
||||||
// The welcome app is special, and gets to use global settings
|
|
||||||
(function(back) {
|
(function(back) {
|
||||||
let settings = require('Storage').readJSON('welcome.settings.json', 1)
|
let settings = require('Storage').readJSON('welcome.json', 1)
|
||||||
|| require('Storage').readJSON('setting.json', 1) || {}
|
|| require('Storage').readJSON('setting.json', 1) || {}
|
||||||
E.showMenu({
|
E.showMenu({
|
||||||
'': { 'title': 'Welcome App' },
|
'': { 'title': 'Welcome App' },
|
||||||
'Run on Next Boot': {
|
'Run on Next Boot': {
|
||||||
value: !settings.welcomed,
|
value: !settings.welcomed,
|
||||||
format: v => v ? 'OK' : 'No',
|
format: v => v ? 'OK' : 'No',
|
||||||
onchange: v => require('Storage').write('welcome.settings.json', {welcomed: !v}),
|
onchange: v => require('Storage').write('welcome.json', {welcomed: !v}),
|
||||||
},
|
},
|
||||||
'Run Now': () => load('welcome.app.js'),
|
'Run Now': () => load('welcome.app.js'),
|
||||||
'< Back': back,
|
'< Back': back,
|
||||||
|
|
|
||||||
|
|
@ -7,3 +7,4 @@
|
||||||
0.08: Draw percentage as inverted on monochrome battery
|
0.08: Draw percentage as inverted on monochrome battery
|
||||||
0.09: Fix regression stopping correct widget updates
|
0.09: Fix regression stopping correct widget updates
|
||||||
0.10: Add 'hide if charge greater than'
|
0.10: Add 'hide if charge greater than'
|
||||||
|
0.11: Don't overwrite existing settings on app update
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
* @param {function} back Use back() to return to settings menu
|
* @param {function} back Use back() to return to settings menu
|
||||||
*/
|
*/
|
||||||
(function(back) {
|
(function(back) {
|
||||||
const SETTINGS_FILE = 'widbatpc.settings.json'
|
const SETTINGS_FILE = 'widbatpc.json'
|
||||||
const COLORS = ['By Level', 'Green', 'Monochrome']
|
const COLORS = ['By Level', 'Green', 'Monochrome']
|
||||||
|
|
||||||
// initialize with default settings...
|
// initialize with default settings...
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ const COLORS = {
|
||||||
'ok': 0xFD20, // "Orange"
|
'ok': 0xFD20, // "Orange"
|
||||||
'low':0xF800, // "Red"
|
'low':0xF800, // "Red"
|
||||||
}
|
}
|
||||||
const SETTINGS_FILE = 'widbatpc.settings.json'
|
const SETTINGS_FILE = 'widbatpc.json'
|
||||||
|
|
||||||
let settings
|
let settings
|
||||||
function loadSettings() {
|
function loadSettings() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue