imageclock - Use shorter variable names

pull/2305/head
Martin Boonk 2022-11-17 18:22:04 +01:00
parent 7eda9dee49
commit e787560fb3
2 changed files with 65 additions and 62 deletions

View File

@ -1,9 +1,16 @@
let unlockedDrawInterval = [];
let lockedDrawInterval = [];
let showWidgets = false;
let firstDraw = true;
let s = {};
// unlocked draw intervals
s.udi = [];
// locked draw intervals
s.ldi = [];
// show widget state
s.sw = false;
// full draw
s.fd = true;
// performance log
s.pl = {};
{
{
let x = g.getWidth()/2;
let y = g.getHeight()/2;
g.setColor(g.theme.bg);
@ -21,12 +28,10 @@ let firstDraw = true;
let precompiledJs = eval(require("Storage").read("imageclock.draw.js"));
let settings = require('Storage').readJSON("imageclock.json", true) || {};
let performanceLog = {};
let startPerfLog = () => {};
let endPerfLog = () => {};
Bangle.printPerfLog = () => {print("Deactivated");};
Bangle.resetPerfLog = () => {performanceLog = {};};
Bangle.resetPerfLog = () => {s.pl = {};};
let colormap={
"#000":0,
@ -64,35 +69,37 @@ let firstDraw = true;
if (settings.perflog){
startPerfLog = function(name){
let time = getTime();
if (!performanceLog.start) performanceLog.start={};
performanceLog.start[name] = time;
if (!s.pl.start) s.pl.start={};
s.pl.start[name] = time;
};
endPerfLog = function (name){
endPerfLog = function (name, once){
let time = getTime();
if (!performanceLog.last) performanceLog.last={};
let duration = time - performanceLog.start[name];
performanceLog.last[name] = duration;
if (!performanceLog.cum) performanceLog.cum={};
if (!performanceLog.cum[name]) performanceLog.cum[name] = 0;
performanceLog.cum[name] += duration;
if (!performanceLog.count) performanceLog.count={};
if (!performanceLog.count[name]) performanceLog.count[name] = 0;
performanceLog.count[name]++;
if (!s.pl.start[name]) return;
if (!s.pl.last) s.pl.last={};
let duration = time - s.pl.start[name];
s.pl.last[name] = duration;
if (!s.pl.cum) s.pl.cum={};
if (!s.pl.cum[name]) s.pl.cum[name] = 0;
s.pl.cum[name] += duration;
if (!s.pl.count) s.pl.count={};
if (!s.pl.count[name]) s.pl.count[name] = 0;
s.pl.count[name]++;
if (once){s.pl.start[name] = undefined}
};
Bangle.printPerfLog = function(){
let result = "";
let keys = [];
for (let c in performanceLog.cum){
for (let c in s.pl.cum){
keys.push(c);
}
keys.sort();
for (let k of keys){
print(k, "last:", (performanceLog.last[k] * 1000).toFixed(0), "average:", (performanceLog.cum[k]/performanceLog.count[k]*1000).toFixed(0), "count:", performanceLog.count[k], "total:", (performanceLog.cum[k] * 1000).toFixed(0));
print(k, "last:", (s.pl.last[k] * 1000).toFixed(0), "average:", (s.pl.cum[k]/s.pl.count[k]*1000).toFixed(0), "count:", s.pl.count[k], "total:", (s.pl.cum[k] * 1000).toFixed(0));
}
};
}
startPerfLog("fullDraw");
startPerfLog("loadFunctions");
let delayTimeouts = {};
@ -609,14 +616,15 @@ let firstDraw = true;
promise.then(()=>{
let currentDrawingTime = Date.now();
if (showWidgets){
if (s.sw){
restoreWidgetDraw();
}
lastDrawTime = Date.now() - start;
isDrawing=false;
firstDraw=false;
s.fd=false;
requestRefresh = false;
endPerfLog("initialDraw");
endPerfLog("fullDraw", true);
if (!Bangle.uiRemove) setUi();
}).catch((e)=>{
print("Error during drawing", e);
@ -701,16 +709,16 @@ let firstDraw = true;
let handleLock = function(isLocked, forceRedraw){
//print("isLocked", Bangle.isLocked());
for (let i of unlockedDrawInterval){
for (let i of s.udi){
//print("Clearing unlocked", i);
clearInterval(i);
}
for (let i of lockedDrawInterval){
for (let i of s.ldi){
//print("Clearing locked", i);
clearInterval(i);
}
unlockedDrawInterval = [];
lockedDrawInterval = [];
s.udi = [];
s.ldi = [];
if (!isLocked){
if (forceRedraw || !redrawEvents || (redrawEvents.includes("unlock"))){
@ -726,7 +734,7 @@ let firstDraw = true;
initialDraw(watchfaceResources, watchface);
},unlockedRedraw, (v)=>{
//print("New matched unlocked interval", v);
unlockedDrawInterval.push(v);
s.udi.push(v);
}, lastDrawTime);
if (!events || events.includes("HRM")) Bangle.setHRMPower(1, "imageclock");
if (!events || events.includes("pressure")) Bangle.setBarometerPower(1, 'imageclock');
@ -744,7 +752,7 @@ let firstDraw = true;
initialDraw(watchfaceResources, watchface);
},lockedRedraw, (v)=>{
//print("New matched locked interval", v);
lockedDrawInterval.push(v);
s.ldi.push(v);
}, lastDrawTime);
Bangle.setHRMPower(0, "imageclock");
Bangle.setBarometerPower(0, 'imageclock');
@ -760,21 +768,21 @@ let firstDraw = true;
};
let handleSwipe = function(lr, ud){
if (!showWidgets && ud == 1){
if (!s.sw && ud == 1){
//print("Enable widgets");
restoreWidgetDraw();
showWidgetsChanged = true;
}
if (showWidgets && ud == -1){
if (s.sw && ud == -1){
//print("Disable widgets");
clearWidgetsDraw();
firstDraw = true;
s.fd = true;
showWidgetsChanged = true;
}
if (showWidgetsChanged){
showWidgetsChanged = false;
//print("Draw after widget change");
showWidgets = ud == 1;
s.sw = ud == 1;
initialDraw();
}
};
@ -829,23 +837,18 @@ let firstDraw = true;
if (initialDrawTimeoutUnlocked) clearTimeout(initialDrawTimeoutUnlocked);
if (initialDrawTimeoutLocked) clearTimeout(initialDrawTimeoutLocked);
for (let i of global.unlockedDrawInterval){
for (let i of global.s.udi){
//print("Clearing unlocked", i);
clearInterval(i);
}
delete global.unlockedDrawInterval;
for (let i of global.lockedDrawInterval){
for (let i of global.s.ldi){
//print("Clearing locked", i);
clearInterval(i);
}
delete global.lockedDrawInterval;
delete global.showWidgets;
delete global.firstDraw;
delete Bangle.printPerfLog;
if (settings.perflog){
delete Bangle.resetPerfLog;
delete performanceLog;
}
cleanupDelays();

View File

@ -43,7 +43,7 @@
<a href="simpleanalog.zip">simpleanalog.zip</a></br>
</p>
<script>
<script>
var result = "";
var resultJson = {};
var infoJson;
@ -167,7 +167,7 @@
}
promise.then(()=>{
document.getElementById('btnUpload').disabled = true;
document.getElementById('btnUpload').disabled = true;
});
console.log("After moves", resultJson);
return promise;
@ -304,7 +304,7 @@
}
if (weather.Temperature && weather.Temperature.Today){
if (!result.Temperature) result.Temperature = {};
if (!result.Temperature) result.Temperature = {};
if (weather.Temperature.Today.Separate){
if (weather.Temperature.Today.Separate.Day){
result.Temperature.Day = convertAmazfitTemperature(weather.Temperature.Today.Separate.Day);
@ -581,10 +581,10 @@
return result;
}
function convertToCode(elements, properties, wrapInTimeouts, forceUseOrigPlane){
function convertToCode(elements, properties, wrapInTimeouts, forceUseOrigPlane){
var code = "(function (wr, wf) {\n";
code += "var lc;\n";
code += "var p = Promise.resolve();\n";
code += "var p = Promise.resolve();\n";
//get mapped by layer
var counter = 0;
@ -656,7 +656,7 @@
var checkcode = "";
if (!(properties.Redraw && properties.Redraw.Clear)){
checkcode = 'firstDraw';
checkcode = 's.fd';
for (var i = 0; i< layerElements.length; i++){
var layerElement = layerElements[i];
var referencedElement = elements[layerElements[i].index];
@ -664,9 +664,9 @@
console.log("Check for change:", layerElement, referencedElement);
if (layerElement.element.Value){
if (elementType == "MultiState" && layerElement.element.Value) {
checkcode += '| isChangedMultistate(wf.Collapsed[' + layerElement.index + '].value)';
checkcode += '| isChangedMultistate(wf.c[' + layerElement.index + '].value)';
} else {
checkcode += '| isChangedNumber(wf.Collapsed[' + layerElement.index + '].value)';
checkcode += '| isChangedNumber(wf.c[' + layerElement.index + '].value)';
}
checkForLayerChange = true;
}
@ -693,7 +693,7 @@
if (c.value.Type == "Once"){
if (condition.length > 0) condition += " && ";
condition += "firstDraw";
condition += "s.fd";
}
var planeName = "p" + plane;
@ -719,10 +719,10 @@
code += "p = p.then(()=>delay(0)).then(()=>{\n";
} else {
code += "p = p.then(()=>{\n";
}
}
code += "" + colorsetting;
if (addDebug()) code += 'print("Drawing element ' + elementIndex + ' with type ' + c.type + ' on plane ' + planeName + '");' + "\n";
code += "draw" + c.type + "(" + planeName + ", wr, wf.Collapsed[" + elementIndex + "].value);\n";
code += "draw" + c.type + "(" + planeName + ", wr, wf.c[" + elementIndex + "].value);\n";
code += "});\n";
code += (condition.length > 0 ? "}\n" : "");
@ -743,10 +743,10 @@
moveData(resultJson);
console.log("Created data file", resourceDataString, resourceDataOffset, resultJson);
var properties = faceJson.Properties;
faceJson = { Properties: properties, Collapsed: collapseTree(faceJson,{X:0,Y:0})};
var properties = faceJson.Properties;
faceJson = { Properties: properties, c: collapseTree(faceJson,{X:0,Y:0})};
console.log("After collapsing", faceJson);
precompiledJs = convertToCode(faceJson.Collapsed, properties, document.getElementById('timeoutwrap').checked, document.getElementById('forceOrigPlane').checked);
precompiledJs = convertToCode(faceJson.c, properties, document.getElementById('timeoutwrap').checked, document.getElementById('forceOrigPlane').checked);
console.log("After precompiling", precompiledJs);
}
@ -783,7 +783,7 @@
console.log("Loaded image has path", this.path);
var jsonPath = this.path.split("/");
var forcedTransparentColorMatch = jsonPath[jsonPath.length-1].match(/.*\.t([^.]+)\..*/)
var forcedTransparentColorMatch = jsonPath[jsonPath.length-1].match(/.*\.t([^.]+)\..*/)
var forcedTransparentColor;
if (jsonPath[jsonPath.length-1].includes(".t.")){
@ -913,7 +913,7 @@
img.path = this.path;
img.onload = imageLoaded;
img.src = event.target.result;
};
};
reader.readAsDataURL(current);
}
}
@ -1004,7 +1004,7 @@
document.getElementById("btnSave").addEventListener("click", function() {
var h = document.createElement('a');
h.href = 'data:text/json;charset=utf-8,' + encodeURI(JSON.stringify(resultJson));
h.href = 'data:text/json;charset=utf-8,' + encodeURI(JSON.stringify(resultJson));
h.target = '_blank';
h.download = "imageclock.resources.json";
h.click();
@ -1025,7 +1025,7 @@
appDef.storage.push({name:"imageclock.draw.js", content: precompiledJs.length > 0 ? precompiledJs : "//empty"});
appDef.storage.push({name:"imageclock.face.json", content: JSON.stringify(faceJson)});
console.log("Uploading app:", appDef);
console.log("Uploading app:", appDef);
sendCustomizedApp(appDef);
});
@ -1079,7 +1079,7 @@
img.path = this.path;
img.onload = imageLoaded;
img.src = event.target.result;
};
};
reader.readAsDataURL(blob);
}));
}
@ -1116,7 +1116,7 @@
document.getElementById("btnSaveFace").addEventListener("click", function() {
var h = document.createElement('a');
h.href = 'data:text/json;charset=utf-8,' + encodeURI(JSON.stringify(faceJson));
h.href = 'data:text/json;charset=utf-8,' + encodeURI(JSON.stringify(faceJson));
h.target = '_blank';
h.download = "face.json";
h.click();