mirror of https://github.com/espruino/BangleApps
commit
59f04aae17
|
@ -9,6 +9,7 @@
|
|||
"readme": "README.md",
|
||||
"description": "Simple and slim battery widget with charge status and percentage",
|
||||
"tags": "widget,battery",
|
||||
"provides_widgets" : ["battery"],
|
||||
"storage": [
|
||||
{"name":"hwid_a_battery_widget.wid.js","url":"widget.js"}
|
||||
]
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
"readme": "README.md",
|
||||
"description": "Simple and slim battery widget with charge status and percentage",
|
||||
"tags": "widget,battery",
|
||||
"provides_widgets" : ["battery"],
|
||||
"storage": [
|
||||
{"name":"wid_a_battery_widget.wid.js","url":"widget.js"}
|
||||
]
|
||||
|
|
|
@ -13,3 +13,5 @@
|
|||
0.14: Fix drawing the bar when charging
|
||||
0.15: Added option to always display the icon when charging (useful if 'hide if charge greater than' is enabled)
|
||||
0.16: Increase screen update rate when charging
|
||||
0.17: Add option 'Remove Jitter'='Drop only' to prevent percentage from getting up again when not charging
|
||||
Add option to disable vibration when charger connects
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"id": "widbatpc",
|
||||
"name": "Battery Level Widget (with percentage)",
|
||||
"shortName": "Battery Widget",
|
||||
"version": "0.16",
|
||||
"version": "0.17",
|
||||
"description": "Show the current battery level and charging status in the top right of the clock, with charge percentage",
|
||||
"icon": "widget.png",
|
||||
"type": "widget",
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
(function(back) {
|
||||
const SETTINGS_FILE = 'widbatpc.json'
|
||||
const COLORS = ['By Level', 'Green', 'Monochrome']
|
||||
const RM_JITTER_OPTIONS = [/*LANG*/'Off', /*LANG*/'Drop only'];
|
||||
|
||||
// initialize with default settings...
|
||||
let s = {
|
||||
|
@ -14,6 +15,8 @@
|
|||
'charger': true,
|
||||
'hideifmorethan': 100,
|
||||
'alwaysoncharge': false,
|
||||
'removejitter': 0,
|
||||
'buzzoncharge': true,
|
||||
}
|
||||
// ...and overwrite them with any saved values
|
||||
// This way saved values are preserved if a new version adds more settings
|
||||
|
@ -28,7 +31,9 @@
|
|||
return function (value) {
|
||||
s[key] = value;
|
||||
storage.write(SETTINGS_FILE, s);
|
||||
WIDGETS["batpc"].reload();
|
||||
if ("WIDGETS" in global && WIDGETS["batpc"] !== undefined) {
|
||||
WIDGETS["batpc"].reload();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -36,17 +41,17 @@
|
|||
const menu = {
|
||||
'': { 'title': 'Battery Widget' },
|
||||
'< Back': back,
|
||||
'Percentage': {
|
||||
/*LANG*/'Percentage': {
|
||||
value: s.percentage,
|
||||
format: onOffFormat,
|
||||
onchange: save('percentage'),
|
||||
},
|
||||
'Charging Icon': {
|
||||
/*LANG*/'Charging Icon': {
|
||||
value: s.charger,
|
||||
format: onOffFormat,
|
||||
onchange: save('charger'),
|
||||
},
|
||||
'Color': {
|
||||
/*LANG*/'Color': {
|
||||
format: () => s.color,
|
||||
onchange: function () {
|
||||
// cycles through options
|
||||
|
@ -56,12 +61,12 @@
|
|||
save('color')(s.color)
|
||||
}
|
||||
},
|
||||
'Fill Bar': {
|
||||
/*LANG*/'Fill Bar': {
|
||||
value: s.fillbar,
|
||||
format: onOffFormat,
|
||||
onchange: save('fillbar'),
|
||||
},
|
||||
'Hide if >': {
|
||||
/*LANG*/'Hide if >': {
|
||||
value: s.hideifmorethan||100,
|
||||
min: 10,
|
||||
max : 100,
|
||||
|
@ -69,11 +74,22 @@
|
|||
format: x => x+"%",
|
||||
onchange: save('hideifmorethan'),
|
||||
},
|
||||
'Show on charge': { // Not sure if this is readable enough in the 'big' menu
|
||||
/*LANG*/'Show on charge': { // Not sure if this is readable enough in the 'big' menu
|
||||
value: s.alwaysoncharge,
|
||||
format: onOffFormat,
|
||||
onchange: save('alwaysoncharge'),
|
||||
},
|
||||
/*LANG*/'Buzz on charge': {
|
||||
value: s.buzzoncharge,
|
||||
format: onOffFormat,
|
||||
onchange: save('buzzoncharge'),
|
||||
},
|
||||
/*LANG*/'Remove Jitter': {
|
||||
value: s.removejitter,
|
||||
min: 0, max: 1,
|
||||
format: v => RM_JITTER_OPTIONS[v],
|
||||
onchange: save('removejitter'),
|
||||
},
|
||||
}
|
||||
E.showMenu(menu)
|
||||
})
|
||||
|
|
|
@ -2,6 +2,8 @@
|
|||
const intervalLow = 60000; // update time when not charging
|
||||
const intervalHigh = 2000; // update time when charging
|
||||
|
||||
let prevMin = 100;
|
||||
|
||||
let COLORS = {};
|
||||
|
||||
if (process.env.HWVERSION == 1) {
|
||||
|
@ -33,6 +35,8 @@
|
|||
'charger': true,
|
||||
'hideifmorethan': 100,
|
||||
'alwaysoncharge': false,
|
||||
'removejitter': 0, // 0 == off, 1 == downwards only
|
||||
'buzzoncharge': true,
|
||||
};
|
||||
Object.keys(DEFAULTS).forEach(k=>{
|
||||
if (settings[k]===undefined) settings[k]=DEFAULTS[k];
|
||||
|
@ -88,8 +92,18 @@
|
|||
// else...
|
||||
var s = 39;
|
||||
var x = this.x, y = this.y;
|
||||
const l = E.getBattery(),
|
||||
c = levelColor(l);
|
||||
let l = E.getBattery();
|
||||
if (setting('removejitter') === 1) {
|
||||
// if we have seen a battery percentage that was lower than current, use lower
|
||||
if (Bangle.isCharging()) {
|
||||
prevMin = l; // charging is the only way to increase percentage
|
||||
} else if (prevMin >= l) {
|
||||
prevMin = l;
|
||||
} else {
|
||||
l = prevMin;
|
||||
}
|
||||
}
|
||||
const c = levelColor(l);
|
||||
|
||||
if (Bangle.isCharging() && setting('charger')) {
|
||||
g.setColor(chargerColor()).drawImage(atob(
|
||||
|
@ -148,7 +162,9 @@
|
|||
}
|
||||
|
||||
Bangle.on('charging',function(charging) {
|
||||
if(charging) Bangle.buzz();
|
||||
if (setting('buzzoncharge')) {
|
||||
if(charging) Bangle.buzz();
|
||||
}
|
||||
update();
|
||||
g.flip();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue