Fix monotonic percentage

master
RKBoss6 2025-06-25 20:32:09 -04:00 committed by GitHub
parent 1a84fdfd0d
commit 3b7a89c494
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 28 additions and 12 deletions

View File

@ -1,4 +1,3 @@
(function() { (function() {
var settings = Object.assign( var settings = Object.assign(
require('Storage').readJSON("powermanager.default.json", true) || {}, require('Storage').readJSON("powermanager.default.json", true) || {},
@ -30,6 +29,8 @@
} }
} }
setInterval(save, saveEvery); setInterval(save, saveEvery);
E.on("kill", ()=>{ E.on("kill", ()=>{
@ -75,7 +76,8 @@
return result; return result;
})(Bangle[functionName]); })(Bangle[functionName]);
} }
/* exported functions */
let functions = {};
let wrapDeferred = ((o,t) => (a) => { let wrapDeferred = ((o,t) => (a) => {
if (a == eval || typeof a == "string") { if (a == eval || typeof a == "string") {
return o.apply(this, arguments); return o.apply(this, arguments);
@ -131,14 +133,29 @@
handleCharging(Bangle.isCharging()); handleCharging(Bangle.isCharging());
} }
var savedBatPercent=E.getBattery();
if (settings.forceMonoPercentage){ if (settings.forceMonoPercentage){
var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4; var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6);
var op = E.getBattery;
E.getBattery = function() { E.getBattery = function() {
var current = Math.round((op()+op()+op()+op())/4); var percentToReturn;
if (Bangle.isCharging() && current > p) p = current; if(Bangle.isCharging()){
if (!Bangle.isCharging() && current < p) p = current; //only go up
return Math.round(p); if(newPercent>savedBatPercent){
percentToReturn=newPercent;
savedBatPercent=newPercent;
}else{
percentToReturn=savedBatPercent;
}
}else{
if(newPercent<savedBatPercent){
percentToReturn=newPercent;
savedBatPercent=newPercent;
}else{
percentToReturn=savedBatPercent;
}
}
return percentToReturn;
}; };
} }
@ -163,4 +180,3 @@
}); });
} }
})(); })();