Skip to content

Commit 3b7a89c

Browse files
authored
Fix monotonic percentage
1 parent 1a84fdf commit 3b7a89c

File tree

1 file changed

+28
-12
lines changed

1 file changed

+28
-12
lines changed

apps/powermanager/boot.js

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
21
(function() {
32
var settings = Object.assign(
43
require('Storage').readJSON("powermanager.default.json", true) || {},
54
require('Storage').readJSON("powermanager.json", true) || {}
65
);
7-
6+
87
if (settings.log) {
98
let logFile = require('Storage').open("powermanager.log","a");
109
let def = require('Storage').readJSON("powermanager.def.json", true) || {};
@@ -29,7 +28,9 @@
2928
require('Storage').writeJSON("powermanager.hw.json", hw);
3029
}
3130
}
32-
31+
32+
33+
3334
setInterval(save, saveEvery);
3435

3536
E.on("kill", ()=>{
@@ -75,7 +76,8 @@
7576
return result;
7677
})(Bangle[functionName]);
7778
}
78-
/* exported functions */
79+
80+
let functions = {};
7981
let wrapDeferred = ((o,t) => (a) => {
8082
if (a == eval || typeof a == "string") {
8183
return o.apply(this, arguments);
@@ -131,15 +133,30 @@
131133
handleCharging(Bangle.isCharging());
132134
}
133135

136+
var savedBatPercent=E.getBattery();
134137
if (settings.forceMonoPercentage){
135-
var p = (E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/4;
136-
var op = E.getBattery;
138+
var newPercent =Math.round((E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery()+E.getBattery())/6);
139+
137140
E.getBattery = function() {
138-
var current = Math.round((op()+op()+op()+op())/4);
139-
if (Bangle.isCharging() && current > p) p = current;
140-
if (!Bangle.isCharging() && current < p) p = current;
141-
return Math.round(p);
142-
};
141+
var percentToReturn;
142+
if(Bangle.isCharging()){
143+
//only go up
144+
if(newPercent>savedBatPercent){
145+
percentToReturn=newPercent;
146+
savedBatPercent=newPercent;
147+
}else{
148+
percentToReturn=savedBatPercent;
149+
}
150+
}else{
151+
if(newPercent<savedBatPercent){
152+
percentToReturn=newPercent;
153+
savedBatPercent=newPercent;
154+
}else{
155+
percentToReturn=savedBatPercent;
156+
}
157+
}
158+
return percentToReturn;
159+
};
143160
}
144161

145162
if (settings.forceMonoVoltage){
@@ -163,4 +180,3 @@
163180
});
164181
}
165182
})();
166-

0 commit comments

Comments
 (0)