MCPcopy Index your code
hub / github.com/ajatkj/scriptable / createOverlay

Function createOverlay

LSWeather.js:463–600  ·  view source on GitHub ↗
(weatherData, calendarData, quotesData)

Source from the content-addressed store, hash-verified

461FUNCTION createOverlay
462------------------------------------------------------------------*/
463async function createOverlay(weatherData, calendarData, quotesData) {
464 try {
465
466 let imgCanvas=new DrawContext();
467 imgCanvas.opaque = false;
468 imgCanvas.size = DEVICE_RESOLUTION;
469
470 // Place elements on wallpaper
471 let x, y, w, h, rect, font, color, iconImage;
472 for (let item in layout){
473 source = layout[item].source;
474 x = layout[item].x;
475 y = layout[item].y;
476 w = layout[item].w;
477 h = layout[item].h;
478 font = layout[item].font;
479 fontSize = layout[item].fontSize;
480 fontName = layout[item].fontName;
481 color = layout[item].color;
482 align = layout[item].align;
483 suffix = layout[item].suffix;
484 prefix = layout[item].prefix;
485 prefixColor = layout[item].prefixColor;
486 hide = layout[item].hide;
487 repeat = false;
488
489 if (source == 'weather') {
490 element = eval(`${`weatherData.${layout[item].key}`}`);
491 } else if (source == 'calendar') {
492 element = eval(`${`calendarData.${layout[item].key}`}`);
493 } else if (source == 'quote') {
494 element = eval(`${`quotesData.${layout[item].key}`}`);
495 } else if (source == 'function') {
496 try {
497 element = eval(`${layout[item].key}`)
498 } catch (error) {
499 errMsg = "getWeatherIcon_" + error.message.replace(/\s/g,"_");
500 writeLOG(errMsg);
501 element = "Invalid Function!";
502 }
503 } else {
504 element = layout[item].key;
505 }
506
507 if (typeof element === 'undefined') {
508 writeLOG(`Invalid item ${layout[item].key}`);
509 continue; // Skip this element
510 } else {
511 if (Array.isArray(element)) repeat = true;
512 }
513 if (hide == 1) {
514 writeLOG(`Hiding item ${item}`);
515 continue;
516 } else writeLOG(`Processing item ${item} with value ${element}`);
517
518 rect = new Rect(x,y,w,h)
519
520 imgCanvas.setTextColor(new Color(color));

Callers 1

LSWeather.jsFile · 0.70

Calls 5

getWeatherIconFunction · 0.85
getTextWidthFunction · 0.85
getRelativeFontFunction · 0.85
placeDataElementFunction · 0.85
writeLOGFunction · 0.70

Tested by

no test coverage detected