(weatherData, calendarData, quotesData)
| 461 | FUNCTION createOverlay |
| 462 | ------------------------------------------------------------------*/ |
| 463 | async 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)); |
no test coverage detected